# File lib/puppet/transaction.rb, line 344
344:     def generate_additional_resources(resource, method)
345:         return [] unless resource.respond_to?(method)
346:         begin
347:             made = resource.send(method)
348:         rescue => detail
349:             puts detail.backtrace if Puppet[:trace]
350:             resource.err "Failed to generate additional resources using '%s': %s" % [method, detail]
351:         end
352:         return [] unless made
353:         made = [made] unless made.is_a?(Array)
354:         made.uniq.find_all do |res|
355:             begin
356:                 @catalog.add_resource(res) do |r|
357:                     r.finish
358:                     make_parent_child_relationship(resource, [r])
359:                 end
360:                 true
361:             rescue Puppet::Resource::Catalog::DuplicateResourceError
362:                 res.info "Duplicate generated resource; skipping"
363:                 false
364:             end
365:         end
366:     end