[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 0.25.5-639-g8f94f35
test branch
puppet-dev at googlegroups.com
Wed Jul 14 10:31:54 UTC 2010
The following commit has been merged in the upstream branch:
commit c8e89cc1a69ff5827ad40439a2c903c24ae42aba
Author: Luke Kanies <luke at reductivelabs.com>
Date: Thu Jan 21 22:00:10 2010 -0800
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 at reductivelabs.com>
diff --git a/lib/puppet/resource.rb b/lib/puppet/resource.rb
index bdd11fc..e475017 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 85a75d4..68977dc 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 ad1b947..308abc2 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
diff --git a/spec/integration/util/settings.rb b/spec/integration/util/settings.rb
index 826bfc9..536eab6 100755
--- a/spec/integration/util/settings.rb
+++ b/spec/integration/util/settings.rb
@@ -14,7 +14,6 @@ describe Puppet::Util::Settings do
it "should be able to make needed directories" do
settings = Puppet::Util::Settings.new
settings.setdefaults :main, minimal_default_settings.update( :maindir => [tmpfile("main"), "a"] )
-
settings.use(:main)
File.should be_directory(settings[:maindir])
diff --git a/spec/unit/resource.rb b/spec/unit/resource.rb
index 2b1d49d..bc47fa7 100755
--- a/spec/unit/resource.rb
+++ b/spec/unit/resource.rb
@@ -23,10 +23,6 @@ describe Puppet::Resource do
Puppet::Resource.new("file", "/f")
end
- it "should allow setting of parameters" do
- Puppet::Resource.new("file", "/f", :noop => true)[:noop].should be_true
- end
-
it "should tag itself with its type" do
Puppet::Resource.new("file", "/f").should be_tagged("file")
end
@@ -38,6 +34,11 @@ describe Puppet::Resource do
it "should not tag itself with its title if the title is a not valid tag" do
Puppet::Resource.new("file", "/bar").should_not be_tagged("/bar")
end
+
+ it "should allow setting of attributes" do
+ Puppet::Resource.new("file", "/bar", :file => "/foo").file.should == "/foo"
+ Puppet::Resource.new("file", "/bar", :exported => true).should be_exported
+ end
end
it "should use the resource reference to determine its type" do
@@ -89,16 +90,30 @@ describe Puppet::Resource do
resource.should be_exported
end
+ it "should support an environment attribute"
+
+ it "should convert its environment into an environment instance if one is provided"
+
+ it "should support a namespace attribute"
+
describe "when managing parameters" do
before do
@resource = Puppet::Resource.new("file", "/my/file")
end
+ it "should be able to check whether parameters are valid when the resource models builtin resources"
+
+ it "should be able to check whether parameters are valid when the resource models defined resources"
+
it "should allow setting and retrieving of parameters" do
@resource[:foo] = "bar"
@resource[:foo].should == "bar"
end
+ it "should allow setting of parameters at initialization" do
+ Puppet::Resource.new("file", "/my/file", :parameters => {:foo => "bar"})[:foo].should == "bar"
+ end
+
it "should canonicalize retrieved parameter names to treat symbols and strings equivalently" do
@resource[:foo] = "bar"
@resource["foo"].should == "bar"
@@ -255,7 +270,7 @@ describe Puppet::Resource do
describe "when converting to puppet code" do
before do
- @resource = Puppet::Resource.new("one::two", "/my/file", :noop => true, :foo => %w{one two})
+ @resource = Puppet::Resource.new("one::two", "/my/file", :parameters => {:noop => true, :foo => %w{one two}})
end
it "should print the type and title" do
diff --git a/spec/unit/type.rb b/spec/unit/type.rb
index f5953aa..97dc113 100755
--- a/spec/unit/type.rb
+++ b/spec/unit/type.rb
@@ -164,7 +164,7 @@ describe Puppet::Type do
describe "and passed a Puppet::Resource instance" do
it "should set its title to the title of the resource if the resource type is equal to the current type" do
- resource = Puppet::Resource.new(:mount, "/foo", :name => "/other")
+ resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:name => "/other"})
Puppet::Type.type(:mount).new(resource).title.should == "/foo"
end
@@ -191,7 +191,7 @@ describe Puppet::Type do
end
it "should copy the resource's parameters as its own" do
- resource = Puppet::Resource.new(:mount, "/foo", :atboot => true, :fstype => "boo")
+ resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:atboot => true, :fstype => "boo"})
params = Puppet::Type.type(:mount).new(resource).to_hash
params[:fstype].should == "boo"
params[:atboot].should == true
@@ -253,7 +253,7 @@ describe Puppet::Type do
it "should set the attributes in the order returned by the class's :allattrs method" do
Puppet::Type.type(:mount).stubs(:allattrs).returns([:name, :atboot, :noop])
- resource = Puppet::Resource.new(:mount, "/foo", :name => "myname", :atboot => "myboot", :noop => "whatever")
+ resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:name => "myname", :atboot => "myboot", :noop => "whatever"})
set = []
@@ -270,7 +270,7 @@ describe Puppet::Type do
it "should always set the name and then default provider before anything else" do
Puppet::Type.type(:mount).stubs(:allattrs).returns([:provider, :name, :atboot])
- resource = Puppet::Resource.new(:mount, "/foo", :name => "myname", :atboot => "myboot")
+ resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:name => "myname", :atboot => "myboot"})
set = []
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list