Configuration settings for a single directory Environment. @api private
# File lib/puppet/settings/environment_conf.rb, line 109 def config_version get_setting(:config_version) do |config_version| absolute(config_version) end end
# File lib/puppet/settings/environment_conf.rb, line 83 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
# File lib/puppet/settings/environment_conf.rb, line 53 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 errmsg = ["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_manifest}' which does not match", "the default_manifest setting '#{puppet_conf_manifest}'. If this", "environment is expecting to find modules in", "'#{environment_conf_manifest}', they will not be available!"] Puppet.err(errmsg.join(' ')) end fallback_manifest_directory.to_s else get_setting(:manifest, fallback_manifest_directory) do |manifest| absolute(manifest) end end end
# File lib/puppet/settings/environment_conf.rb, line 93 def modulepath default_modulepath = [File.join(@path_to_env, "modules")] + @global_module_path get_setting(:modulepath, default_modulepath) do |modulepath| path = modulepath.kind_of?(String) ? modulepath.split(File::PATH_SEPARATOR) : modulepath path.map { |p| absolute(p) }.join(File::PATH_SEPARATOR) end end
# File lib/puppet/settings/environment_conf.rb, line 103 def parser get_setting(:parser, Puppet.settings.value(:parser)) do |value| value end end
# File lib/puppet/settings/environment_conf.rb, line 115 def raw_setting(setting_name) setting = section.setting(setting_name) if section setting.value if setting end
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.
@note logs warnings if the environment.conf contains any ini sections, or has settings other than the three handled for directory environments (:manifest, :modulepath, :#config_version)
@param #path_to_env [String] path to the directory environment @param global_module_path [Array<String>] the installation’s base modulepath
setting, appended to default environment modulepaths
@return [EnvironmentConf] the parsed EnvironmentConf object
# File lib/puppet/settings/environment_conf.rb, line 20 def self.load_from(path_to_env, global_module_path) path_to_env = File.expand_path(path_to_env) conf_file = File.join(path_to_env, 'environment.conf') config = nil 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 end new(path_to_env, section, global_module_path) end
Create through ::load_from
# File lib/puppet/settings/environment_conf.rb, line 47 def initialize(path_to_env, section, global_module_path) @path_to_env = path_to_env @section = section @global_module_path = global_module_path end
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.
# File lib/puppet/settings/environment_conf.rb, line 40 def self.static_for(environment, parser, environment_timeout = 0) Static.new(environment, environment_timeout, parser) end