Class: Node
- Inherits:
-
Object
- Object
- Node
- Defined in:
- lib/hiera_browser/node.rb
Overview
A Node represents all that is known about a node in your infrastructure
Instance Attribute Summary collapse
-
#certname ⇒ String
readonly
E.g., ‘testnode.puppetlabs.com’.
-
#facts ⇒ Hash
readonly
E.g., { ‘datacenter’ => ‘pdx’, ‘environment’ => ‘dev’ }.
- #node_dir ⇒ YamlDir readonly
Instance Method Summary collapse
- #environment ⇒ String
-
#facts_yaml ⇒ Hash
Parameters and facts merged from node cache.
-
#hiera_values(args = {}) ⇒ Hash
All values for all keys, including additive lookups for any keys included in :additive_keys.
-
#initialize(args) ⇒ Node
constructor
A new instance of Node.
- #load_yaml ⇒ Hash
- #lookup(args) ⇒ Hash
- #parameters ⇒ ParameterCollection
-
#sorted_values(args = {}) ⇒ Array
Flattened collection of all #hiera_values sorted alphabetically by key e.g.
Constructor Details
#initialize(args) ⇒ Node
Returns a new instance of Node.
15 16 17 18 19 20 |
# File 'lib/hiera_browser/node.rb', line 15 def initialize(args) @certname = args[:certname] @node_dir = YamlDir.new(:node_dir => args[:node_dir]) @facts = facts_yaml @hiera = args[:hiera] || HieraController.new end |
Instance Attribute Details
#certname ⇒ String (readonly)
Returns e.g., ‘testnode.puppetlabs.com’.
7 8 9 |
# File 'lib/hiera_browser/node.rb', line 7 def certname @certname end |
#facts ⇒ Hash (readonly)
Returns e.g., { ‘datacenter’ => ‘pdx’, ‘environment’ => ‘dev’ }.
9 10 11 |
# File 'lib/hiera_browser/node.rb', line 9 def facts @facts end |
#node_dir ⇒ YamlDir (readonly)
11 12 13 |
# File 'lib/hiera_browser/node.rb', line 11 def node_dir @node_dir end |
Instance Method Details
#environment ⇒ String
60 61 62 |
# File 'lib/hiera_browser/node.rb', line 60 def environment @facts['environment'] end |
#facts_yaml ⇒ Hash
Returns parameters and facts merged from node cache.
37 38 39 40 |
# File 'lib/hiera_browser/node.rb', line 37 def facts_yaml yaml = load_yaml yaml.parameters.merge(yaml.facts.values) end |
#hiera_values(args = {}) ⇒ Hash
Returns all values for all keys, including additive lookups for any keys included in :additive_keys.
45 46 47 48 49 |
# File 'lib/hiera_browser/node.rb', line 45 def hiera_values(args = {}) additive_keys = args[:additive_keys] || [] @hiera.get_all(:scope => @facts, :additive_keys => additive_keys). values.inject({}){|a,v| a.merge!(v)} end |
#load_yaml ⇒ Hash
31 32 33 34 |
# File 'lib/hiera_browser/node.rb', line 31 def load_yaml path = File.join(@node_dir.path,"#{@certname}.yaml") YAML.load_file(path) end |
#lookup(args) ⇒ Hash
66 67 68 |
# File 'lib/hiera_browser/node.rb', line 66 def lookup(args) @hiera.lookup_additive(:key => args[:key], :scope => @facts) end |
#parameters ⇒ ParameterCollection
23 24 25 26 27 28 |
# File 'lib/hiera_browser/node.rb', line 23 def parameters collection = ParameterCollection.new facts_yaml.each {|k,v| collection << Parameter.new(:key => k, :value => v)} collection end |
#sorted_values(args = {}) ⇒ Array
Returns flattened collection of all #hiera_values sorted alphabetically by key e.g. [[‘datacenter’, ‘pdx’], [‘environment’, ‘dev’]].
54 55 56 57 |
# File 'lib/hiera_browser/node.rb', line 54 def sorted_values(args = {}) keys = args[:keys] hiera_values(:additive_keys => keys).sort_by{|k,v|k} end |