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