Class: YamlDir

Inherits:
Object
  • Object
show all
Defined in:
lib/hiera_browser/yamldir.rb

Overview

YamlDir allows you to retrieve information from Puppet’s node cache

Constant Summary collapse

@@node_dir =
if ENV['YAML_DIR']
  ENV['YAML_DIR']
elsif File.directory?('/var/opt/lib/pe-puppet/yaml')
  '/var/opt/lib/pe-puppet/yaml/node'
else
  '/var/lib/puppet/yaml/node'
end

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ YamlDir

Returns a new instance of YamlDir.



14
15
16
17
# File 'lib/hiera_browser/yamldir.rb', line 14

def initialize(args = {})
  @node_dir    = args[:node_dir] || @@node_dir
  raise Exception.new "Can't find your $yamldir: #{@node_dir}" unless File.directory?(@node_dir)
end

Instance Method Details

#collected_parametersObject

Note:

#collected_parameters is preferred over #parameters



42
43
44
45
46
47
48
# File 'lib/hiera_browser/yamldir.rb', line 42

def collected_parameters
  collection = ParameterCollection.new
  load_files.map{|f| f.parameters}.
    each{|params| params.each {|key, value| 
        collection << Parameter.new(:key => key, :value => value) } }
  collection
end

#collected_parameters_hashObject



50
51
52
# File 'lib/hiera_browser/yamldir.rb', line 50

def collected_parameters_hash
  collected_parameters.to_h
end

#environmentsObject



54
55
56
# File 'lib/hiera_browser/yamldir.rb', line 54

def environments
  collected_parameters["environment"]
end

#file_listObject



23
24
25
# File 'lib/hiera_browser/yamldir.rb', line 23

def file_list
  Dir.chdir(@node_dir) { Dir.glob('**/*.yaml') }
end

#load_filesObject



31
32
33
# File 'lib/hiera_browser/yamldir.rb', line 31

def load_files
  file_list.map{|f| YAML.load_file(File.join(@node_dir,f))}
end

#node_listObject



27
28
29
# File 'lib/hiera_browser/yamldir.rb', line 27

def node_list
  file_list.map{|f| f.split('.yaml')}.flatten
end

#parametersObject

Note:

#parameters is provided for temporary backwards compatibility



37
38
39
# File 'lib/hiera_browser/yamldir.rb', line 37

def parameters
  collected_parameters_hash
end

#pathObject



19
20
21
# File 'lib/hiera_browser/yamldir.rb', line 19

def path
  @node_dir
end