# File lib/puppet/transaction.rb, line 182
182:   def generate_additional_resources(resource, method)
183:     return [] unless resource.respond_to?(method)
184:     begin
185:       made = resource.send(method)
186:     rescue => detail
187:       puts detail.backtrace if Puppet[:trace]
188:       resource.err "Failed to generate additional resources using '#{method}': #{detail}"
189:     end
190:     return [] unless made
191:     made = [made] unless made.is_a?(Array)
192:     made.uniq.find_all do |res|
193:       begin
194:         res.tag(*resource.tags)
195:         @catalog.add_resource(res) do |r|
196:           r.finish
197:           make_parent_child_relationship(resource, [r])
198: 
199:           # Call 'generate' recursively
200:           generate_additional_resources(r, method)
201:         end
202:         true
203:       rescue Puppet::Resource::Catalog::DuplicateResourceError
204:         res.info "Duplicate generated resource; skipping"
205:         false
206:       end
207:     end
208:   end