summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorLuke Kanies <luke@reductivelabs.com>2010-01-21 22:00:10 -0800
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commitc8e89cc1a69ff5827ad40439a2c903c24ae42aba (patch)
treedafcbf3de176245cf4728b5a7c54bca4ea8e5e42 /lib
parentb7ea1806703df2976d5cd6fade5503c008332526 (diff)
downloadpuppet-c8e89cc1a69ff5827ad40439a2c903c24ae42aba.tar.gz
puppet-c8e89cc1a69ff5827ad40439a2c903c24ae42aba.tar.xz
puppet-c8e89cc1a69ff5827ad40439a2c903c24ae42aba.zip
Changing the interface of Puppet::Resource
We need the ability to set the namespace and environment at initialization so the resource can look up qualified types. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/resource.rb12
-rw-r--r--lib/puppet/transportable.rb2
-rw-r--r--lib/puppet/util/settings.rb4
3 files changed, 12 insertions, 6 deletions
diff --git a/lib/puppet/resource.rb b/lib/puppet/resource.rb
index bdd11fcc5..e47501791 100644
--- a/lib/puppet/resource.rb
+++ b/lib/puppet/resource.rb
@@ -116,14 +116,20 @@ class Puppet::Resource
end
# Create our resource.
- def initialize(type, title, parameters = {})
- @reference = Puppet::Resource::Reference.new(type, title)
+ def initialize(type, title, attributes = {})
@parameters = {}
- parameters.each do |param, value|
+ (attributes[:parameters] || {}).each do |param, value|
self[param] = value
end
+ attributes.each do |attr, value|
+ next if attr == :parameters
+ send(attr.to_s + "=", value)
+ end
+
+ @reference = Puppet::Resource::Reference.new(type, title)
+
tag(@reference.type)
tag(@reference.title) if valid_tag?(@reference.title)
end
diff --git a/lib/puppet/transportable.rb b/lib/puppet/transportable.rb
index 85a75d453..68977dca0 100644
--- a/lib/puppet/transportable.rb
+++ b/lib/puppet/transportable.rb
@@ -80,7 +80,7 @@ module Puppet
# Create a normalized resource from our TransObject.
def to_resource
- result = Puppet::Resource.new(type, name, @params.dup)
+ result = Puppet::Resource.new(type, name, :parameters => @params.dup)
result.tag(*tags)
result
diff --git a/lib/puppet/util/settings.rb b/lib/puppet/util/settings.rb
index ad1b947b3..308abc2f9 100644
--- a/lib/puppet/util/settings.rb
+++ b/lib/puppet/util/settings.rb
@@ -815,14 +815,14 @@ Generated on #{Time.now}.
next unless sections.nil? or sections.include?(setting.section)
if user = setting.owner and user != "root" and catalog.resource(:user, user).nil?
- resource = Puppet::Resource.new(:user, user, :ensure => :present)
+ resource = Puppet::Resource.new(:user, user, :parameters => {:ensure => :present})
if self[:group]
resource[:gid] = self[:group]
end
catalog.add_resource resource
end
if group = setting.group and ! %w{root wheel}.include?(group) and catalog.resource(:group, group).nil?
- catalog.add_resource Puppet::Resource.new(:group, group, :ensure => :present)
+ catalog.add_resource Puppet::Resource.new(:group, group, :parameters => {:ensure => :present})
end
end
end