Class: Puppet::Settings::ChainedValues

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/settings.rb

Overview

Lookup configuration setting value through a chain of different value sources.

Constant Summary collapse

ENVIRONMENT_SETTING =
"environment"
ENVIRONMENT_INTERPOLATION_ALLOWED =
['config_version'].freeze

Instance Method Summary collapse

Constructor Details

#initialize(mode, environment, value_sets, defaults) ⇒ ChainedValues

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.

Returns a new instance of ChainedValues.

See Also:

  • Puppet::Settings.values


1388
1389
1390
1391
1392
1393
# File 'lib/puppet/settings.rb', line 1388

def initialize(mode, environment, value_sets, defaults)
  @mode = mode
  @environment = environment
  @value_sets = value_sets
  @defaults = defaults
end

Instance Method Details

#interpolate(name) ⇒ Object

Lookup the interpolated value. All instances of $name in the value will be replaced by performing a lookup of name and substituting the text for $name in the original value. This interpolation is only performed if the looked up value is a String.

Parameters:

  • name (Symbol)

    The configuration setting name to look up

Returns:

  • (Object)

    The configuration setting value or nil if the setting is not known



1428
1429
1430
1431
1432
1433
1434
1435
# File 'lib/puppet/settings.rb', line 1428

def interpolate(name)
  setting = @defaults[name]
  return nil unless setting

  lookup_and_convert(name) do |val|
    setting.munge(val)
  end
end

#lookup(name) ⇒ Object

Lookup the uninterpolated value.

Parameters:

  • name (Symbol)

    The configuration setting name to look up

Returns:

  • (Object)

    The configuration setting value or nil if the setting is not known



1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
# File 'lib/puppet/settings.rb', line 1400

def lookup(name)
  set = @value_sets.find do |value_set|
    value_set.include?(name)
  end
  if set
    value = set.lookup(name)
    unless value.nil?
      return value
    end
  end

  setting = @defaults[name]
  if setting.respond_to?(:alias_name)
    val = lookup(setting.alias_name)
    return val if val
  end

  @defaults[name].default
end


1437
1438
1439
1440
1441
1442
1443
1444
# File 'lib/puppet/settings.rb', line 1437

def print(name)
  setting = @defaults[name]
  return nil unless setting

  lookup_and_convert(name) do |val|
    setting.print(val)
  end
end