diff options
Diffstat (limited to 'lib/puppet/node/configuration.rb')
-rw-r--r-- | lib/puppet/node/configuration.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/puppet/node/configuration.rb b/lib/puppet/node/configuration.rb index 061e83f4b..e131839df 100644 --- a/lib/puppet/node/configuration.rb +++ b/lib/puppet/node/configuration.rb @@ -60,11 +60,22 @@ class Puppet::Node::Configuration < Puppet::PGraph end ref = resource.ref + if @resource_table.include?(ref) raise ArgumentError, "Resource %s is already defined" % ref else @resource_table[ref] = resource end + + # If the name and title differ, set up an alias + if ! resource.is_a?(Puppet::Type::Component) and resource.respond_to?(:title) and resource.name != resource.title + if obj = resource(resource.class.name, resource.name) + raise Puppet::Error, "%s already exists with name %s" % [obj.title, self.name] if resource.class.isomorphic? + else + self.alias(resource, resource.name) + end + end + resource.configuration = self unless is_relationship_graph add_vertex!(resource) end @@ -183,6 +194,11 @@ class Puppet::Node::Configuration < Puppet::PGraph unless klass = Puppet::Type.type(type) raise ArgumentError, "Unknown resource type %s" % type end + if options.is_a?(Puppet::TransObject) + options.configuration = self + else + options[:configuration] = self + end return unless resource = klass.create(options) @transient_resources << resource if applying? |