[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 0.25.5-639-g8f94f35
Markus Roberts
Markus at reality.com
Wed Jul 14 10:35:34 UTC 2010
The following commit has been merged in the upstream branch:
commit 9afc67a465f030a2a1cad0e7ec58e30862f28b4d
Author: Markus Roberts <Markus at reality.com>
Date: Mon Jun 28 12:00:55 2010 -0700
Fix for pre 1.8.7 compatibility in namvar patch
There was a subtle 1.8.7 dependence in the composite key / namevar patch;
Nick discovered that our assumtion that hashes could be used as hash keys
does not hold in earlier bersions of ruby. This patch replaces the hash
valued uniqueness_key with an array of the values of the (ordered) key
attributes.
diff --git a/lib/puppet/resource.rb b/lib/puppet/resource.rb
index 6ffaa2f..393211e 100644
--- a/lib/puppet/resource.rb
+++ b/lib/puppet/resource.rb
@@ -213,11 +213,7 @@ class Puppet::Resource
end
def uniqueness_key
- h = {}
- key_attributes.each do |attribute|
- h[attribute] = self.to_hash[attribute]
- end
- return h
+ self.to_hash.values_at(*key_attributes.sort_by { |k| k.to_s })
end
def key_attributes
diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb
index 4bcfbd3..712bc2c 100755
--- a/spec/unit/resource_spec.rb
+++ b/spec/unit/resource_spec.rb
@@ -298,7 +298,7 @@ describe Puppet::Resource do
describe "when referring to a resource with name canonicalization" do
it "should canonicalize its own name" do
res = Puppet::Resource.new("file", "/path/")
- res.uniqueness_key.should == {:path => "/path"}
+ res.uniqueness_key.should == ["/path"]
res.ref.should == "File[/path/]"
end
end
@@ -793,16 +793,13 @@ describe Puppet::Resource do
end
describe "when generating the uniqueness key" do
- it "should include all of the key_attributes" do
+ it "should include all of the key_attributes in alphabetical order by attribute name" do
Puppet::Type.type(:file).stubs(:key_attributes).returns [:myvar, :owner, :path]
Puppet::Type.type(:file).stubs(:title_patterns).returns(
[ [ /(.*)/, [ [:path, lambda{|x| x} ] ] ] ]
)
- Puppet::Resource.new("file", "/my/file", :parameters => {:owner => 'root', :content => 'hello'}).uniqueness_key.should == {
- :myvar => nil,
- :owner => 'root',
- :path => '/my/file',
- }
+ res = Puppet::Resource.new("file", "/my/file", :parameters => {:owner => 'root', :content => 'hello'})
+ res.uniqueness_key.should == [ nil, 'root', '/my/file']
end
end
end
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list