Class: Puppet::Settings::EnvironmentConf Private
- Defined in:
- lib/puppet/settings/environment_conf.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Configuration settings for a single directory Environment.
Defined Under Namespace
Classes: Static
Constant Summary collapse
- ENVIRONMENT_CONF_ONLY_SETTINGS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
[:modulepath, :manifest, :config_version].freeze
- VALID_SETTINGS =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
(ENVIRONMENT_CONF_ONLY_SETTINGS + [:environment_timeout, :environment_data_provider, :static_catalogs, :rich_data]).freeze
Instance Attribute Summary collapse
- #global_modulepath ⇒ Object readonly private
- #path_to_env ⇒ Object readonly private
- #section ⇒ Object readonly private
Class Method Summary collapse
-
.load_from(path_to_env, global_module_path) ⇒ EnvironmentConf
private
Given a path to a directory environment, attempts to load and parse an environment.conf in ini format, and return an EnvironmentConf instance.
-
.static_for(environment, environment_timeout = 0, static_catalogs = false, rich_data = false) ⇒ Object
private
Provides a configuration object tied directly to the passed environment.
Instance Method Summary collapse
- #config_version ⇒ Object private
- #environment_data_provider ⇒ Object private
- #environment_timeout ⇒ Object private
-
#initialize(path_to_env, section, global_module_path) ⇒ EnvironmentConf
constructor
private
Create through EnvironmentConf.load_from().
- #manifest ⇒ Object private
- #modulepath ⇒ Object private
- #raw_setting(setting_name) ⇒ Object private
- #rich_data ⇒ Object private
- #static_catalogs ⇒ Object private
Constructor Details
#initialize(path_to_env, section, global_module_path) ⇒ EnvironmentConf
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Create through EnvironmentConf.load_from()
50 51 52 53 54 |
# File 'lib/puppet/settings/environment_conf.rb', line 50 def initialize(path_to_env, section, global_module_path) @path_to_env = path_to_env @section = section @global_module_path = global_module_path end |
Instance Attribute Details
#global_modulepath ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
47 48 49 |
# File 'lib/puppet/settings/environment_conf.rb', line 47 def global_modulepath @global_modulepath end |
#path_to_env ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
47 48 49 |
# File 'lib/puppet/settings/environment_conf.rb', line 47 def path_to_env @path_to_env end |
#section ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
47 48 49 |
# File 'lib/puppet/settings/environment_conf.rb', line 47 def section @section end |
Class Method Details
.load_from(path_to_env, global_module_path) ⇒ EnvironmentConf
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
logs warnings if the environment.conf contains any ini sections,
Given a path to a directory environment, attempts to load and parse an environment.conf in ini format, and return an EnvironmentConf instance.
An environment.conf is optional, so if the file itself is missing, or empty, an EnvironmentConf with default values will be returned.
or has settings other than the three handled for directory environments (:manifest, :modulepath, :config_version)
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/puppet/settings/environment_conf.rb', line 23 def self.load_from(path_to_env, global_module_path) path_to_env = File.(path_to_env) conf_file = File.join(path_to_env, 'environment.conf') begin config = Puppet.settings.parse_file(conf_file) validate(conf_file, config) section = config.sections[:main] rescue Errno::ENOENT # environment.conf is an optional file Puppet.debug { "Path to #{path_to_env} does not exist, using default environment.conf" } end new(path_to_env, section, global_module_path) end |
.static_for(environment, environment_timeout = 0, static_catalogs = false, rich_data = false) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Provides a configuration object tied directly to the passed environment. Configuration values are exactly those returned by the environment object, without interpolation. This is a special case for the default configured environment returned by the Puppet::Environments::StaticPrivate loader.
43 44 45 |
# File 'lib/puppet/settings/environment_conf.rb', line 43 def self.static_for(environment, environment_timeout = 0, static_catalogs = false, rich_data = false) Static.new(environment, environment_timeout, static_catalogs, nil, rich_data) end |
Instance Method Details
#config_version ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
122 123 124 125 126 |
# File 'lib/puppet/settings/environment_conf.rb', line 122 def config_version get_setting(:config_version) do |config_version| absolute(config_version) end end |
#environment_data_provider ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
94 95 96 97 98 |
# File 'lib/puppet/settings/environment_conf.rb', line 94 def environment_data_provider get_setting(:environment_data_provider, Puppet.settings.value(:environment_data_provider)) do |value| value end end |
#environment_timeout ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
84 85 86 87 88 89 90 91 92 |
# File 'lib/puppet/settings/environment_conf.rb', line 84 def environment_timeout # gen env specific config or use the default value get_setting(:environment_timeout, Puppet.settings.value(:environment_timeout)) do |ttl| # munges the string form statically without really needed the settings system, only # its ability to munge "4s, 3m, 5d, and 'unlimited' into seconds - if already munged into # numeric form, the TTLSetting handles that. Puppet::Settings::TTLSetting.munge(ttl, 'environment_timeout') end end |
#manifest ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/puppet/settings/environment_conf.rb', line 56 def manifest puppet_conf_manifest = Pathname.new(Puppet.settings.value(:default_manifest)) disable_per_environment_manifest = Puppet.settings.value(:disable_per_environment_manifest) fallback_manifest_directory = if puppet_conf_manifest.absolute? puppet_conf_manifest.to_s else File.join(@path_to_env, puppet_conf_manifest.to_s) end if disable_per_environment_manifest environment_conf_manifest = absolute(raw_setting(:manifest)) if environment_conf_manifest && fallback_manifest_directory != environment_conf_manifest # TRANSLATORS 'disable_per_environment_manifest' is a setting and 'environment.conf' is a file name and should not be translated = _("The 'disable_per_environment_manifest' setting is true, but the environment located at %{path_to_env} has a manifest setting in its environment.conf of '%{environment_conf}' which does not match the default_manifest setting '%{puppet_conf}'.") % { path_to_env: @path_to_env, environment_conf: environment_conf_manifest, puppet_conf: puppet_conf_manifest } += ' ' + _("If this environment is expecting to find modules in '%{environment_conf}', they will not be available!") % { environment_conf: environment_conf_manifest } Puppet.err() end fallback_manifest_directory.to_s else get_setting(:manifest, fallback_manifest_directory) do |manifest| absolute(manifest) end end end |
#modulepath ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
100 101 102 103 104 105 106 107 108 |
# File 'lib/puppet/settings/environment_conf.rb', line 100 def modulepath default_modulepath = [File.join(@path_to_env, "modules")] + @global_module_path get_setting(:modulepath, default_modulepath) do |modulepath| path = modulepath.is_a?(String) ? modulepath.split(File::PATH_SEPARATOR) : modulepath path.map { |p| (absolute(p)) }.flatten.join(File::PATH_SEPARATOR) end end |
#raw_setting(setting_name) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
128 129 130 131 |
# File 'lib/puppet/settings/environment_conf.rb', line 128 def raw_setting(setting_name) setting = section.setting(setting_name) if section setting.value if setting end |
#rich_data ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
110 111 112 113 114 |
# File 'lib/puppet/settings/environment_conf.rb', line 110 def rich_data get_setting(:rich_data, Puppet.settings.value(:rich_data)) do |value| value end end |
#static_catalogs ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
116 117 118 119 120 |
# File 'lib/puppet/settings/environment_conf.rb', line 116 def static_catalogs get_setting(:static_catalogs, Puppet.settings.value(:static_catalogs)) do |value| value end end |