class CORL::Util::Puppet::ResourceGroup

Public Class Methods

new(type_info, default = {}) click to toggle source
Calls superclass method
   # File lib/core/util/puppet/resource_group.rb
12 def initialize(type_info, default = {})
13   super({
14     :info    => hash(type_info),
15     :default => symbol_map(hash(default))
16   }, {}, true, true, false)
17 
18   self.resources = {}
19 end

Public Instance Methods

add(resources, options = {}) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
78 def add(resources, options = {})
79   config    = Config.ensure(options)
80   resources = normalize(info[:name], Data.clone(resources), config)
81 
82   unless Data.empty?(resources)
83     collection = self.resources
84     resources.each do |title, resource|
85       Puppet.add_resource(info, title, resource.export, config)
86       collection[title] = resource
87     end
88     self.resources = collection
89   end
90   return self
91 end
composite_resources(default = {}) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
66 def composite_resources(default = {})
67   return hash(_get(:composite_resources, default))
68 end
composite_resources=(resources) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
72 def composite_resources=resources
73   _set(:composite_resources, symbol_map(hash(resources)))
74 end
default(default = {}) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
42 def default(default = {})
43   return hash(_get(:default, default))
44 end
default=(default) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
48 def default=default
49   _set(:default, symbol_map(hash(default)))
50 end
info(default = {}) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
30 def info(default = {})
31   return hash(_get(:info, default))
32 end
info=(info) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
36 def info=info
37   _set(:info, hash(info))
38 end
inspect() click to toggle source
   # File lib/core/util/puppet/resource_group.rb
23 def inspect
24   "#{self.class}#{info.to_s}[#{composite_resources.keys.length}]"
25 end
resources(default = {}) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
54 def resources(default = {})
55   return hash(_get(:resources, default))
56 end
resources=(resources) click to toggle source
   # File lib/core/util/puppet/resource_group.rb
60 def resources=resources
61   _set(:resources, symbol_map(hash(resources)))
62 end

Protected Instance Methods

add_composite_resource(name, resource_names) click to toggle source
    # File lib/core/util/puppet/resource_group.rb
 95 def add_composite_resource(name, resource_names)
 96   name            = name.to_sym
 97   composite       = self.composite_resources
 98   composite[name] = [] unless composite[name].is_a?(Array)
 99 
100   unless resource_names.is_a?(Array)
101     resource_names = [ resource_names ]
102   end
103 
104   resource_names.each do |r_name|
105     r_name = r_name.to_sym
106 
107     unless composite[name].include?(r_name)
108       composite[name] << r_name
109     end
110   end
111   self.composite_resources = composite
112 end
normalize(type_name, resources, options = {}) click to toggle source
    # File lib/core/util/puppet/resource_group.rb
118 def normalize(type_name, resources, options = {})
119   self.composite_resources = {}
120 
121   config    = Config.ensure(options)
122   resources = Data.value(resources)
123 
124   unless Data.empty?(resources)
125     resource_names = {}
126 
127     resources.keys.each do |name|
128       if ! resources[name] || resources[name].empty? || ! resources[name].is_a?(Hash)
129         resources.delete(name)
130       else
131         normalize = true
132 
133         namevar = Puppet.namevar(type_name, name)
134 
135         if resources[name].has_key?(namevar)
136           value = resources[name][namevar]
137           if Data.empty?(value)
138             resources.delete(name)
139             normalize = false
140 
141           elsif value.is_a?(Array)
142             value.each do |item|
143               item_name = "#{name}_#{item}".gsub(/\-/, '_')
144 
145               new_resource = resources[name].clone
146               new_resource[namevar] = item
147 
148               resources[item_name] = Resource.new(self, info, item_name, new_resource).defaults(default, config)
149               add_composite_resource(name, item_name)
150             end
151             resources.delete(name)
152             normalize = false
153           end
154         end
155 
156         if normalize
157           resource = Resource.new(self, info, name, resources[name]).defaults(default, config)
158           resource_names[name] = true
159           resources[name]      = resource
160         end
161       end
162     end
163 
164     config[:resource_names] = resource_names
165     resources.each do |name, resource|
166       resource.process(config)
167     end
168   end
169   return translate(resources, config)
170 end
translate(resources, options = {}) click to toggle source
    # File lib/core/util/puppet/resource_group.rb
175 def translate(resources, options = {})
176   config  = Config.ensure(options)
177   results = {}
178   prefix  = config.get(:resource_prefix, '')
179 
180   resources.each do |name, resource|
181     unless prefix.empty?
182       name = "#{prefix}_#{name}"
183     end
184     results[name] = resource
185   end
186   return results
187 end