class DefaultsDataSource
Defaults datasource for Tiller
.
Public Instance Methods
global_values()
click to toggle source
# File lib/tiller/data/defaults.rb, line 37 def global_values @defaults_hash.key?('global') ? @defaults_hash['global'] : Hash.new end
setup()
click to toggle source
# File lib/tiller/data/defaults.rb, line 8 def setup defaults_file = File.join(Tiller::config[:tiller_base], 'defaults.yaml') defaults_dir = File.join(Tiller::config[:tiller_base], 'defaults.d') @defaults_hash = Hash.new # First, try and load defaults from v2 config if Tiller::config.has_key?('defaults') Tiller::log.debug("#{self} : Using values from v2 format common.yaml") @defaults_hash.deep_merge!(Tiller::config['defaults']) else # Read defaults in from defaults file if no v2 config # Handle empty files - if YAML didn't parse, it returns false so we skip them if File.file? defaults_file yaml = YAML.load(open(defaults_file)) @defaults_hash.deep_merge!(yaml) if yaml != false end end # If we have YAML files in defaults.d, also merge them # We do this even if the main defaults were loaded from the v2 format config if File.directory? defaults_dir Dir.glob(File.join(defaults_dir,'*.yaml')).sort().each do |d| yaml = YAML.load(open(d)) Tiller::log.debug("Loading defaults from #{d}") @defaults_hash.deep_merge!(yaml) if yaml != false end end end
target_values(template_name)
click to toggle source
# File lib/tiller/data/defaults.rb, line 63 def target_values(template_name) if @defaults_hash.key?(template_name) values = @defaults_hash[template_name] if values.is_a? Hash values.key?('target') ? values : Hash.new else # See comments for values function. Tiller::log.warn("Warning, empty config for #{template_name}") Hash.new end else Hash.new end end
values(template_name)
click to toggle source
# File lib/tiller/data/defaults.rb, line 41 def values(template_name) # Backwards compatibility stuff here. This datasource didn't use to return target_values, so # all values were just stored as top-level keys instead of under a separate config: block # If a config: block exists, we should use that in preference to the top-level keys, but # if not we still return them all so we don't break anything using the old behaviour. if @defaults_hash.key?(template_name) values = @defaults_hash[template_name] if values.is_a? Hash values.key?('config') ? values['config'] : values else # Previous versions of Tiller didn't throw an error when we had an empty # template config definition in a defaults file. Tiller 0.7.3 "broke" this, so while it's arguably the # correct thing to bail out, in the interests of backwards-compatibility, we now instead log a warning and continue. Tiller::log.warn("Warning, empty config for #{template_name}") Hash.new end else Hash.new end end