summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2007-11-28 15:56:24 -0600
committerLuke Kanies <luke@madstop.com>2007-11-28 15:56:24 -0600
commitbbf8a8bfc6a817ea19c4dabe3ce89f09d42df68d (patch)
tree82ed142f31a6643b869de4316283e29da0add906
parent11ae473e3852adcc382a3efea2329586d2e4bcb3 (diff)
downloadpuppet-bbf8a8bfc6a817ea19c4dabe3ce89f09d42df68d.tar.gz
puppet-bbf8a8bfc6a817ea19c4dabe3ce89f09d42df68d.tar.xz
puppet-bbf8a8bfc6a817ea19c4dabe3ce89f09d42df68d.zip
Making a few changes to the transportable class to enhance backward compatibility
-rw-r--r--lib/puppet/transportable.rb13
-rwxr-xr-xspec/unit/other/transbucket.rb12
2 files changed, 21 insertions, 4 deletions
diff --git a/lib/puppet/transportable.rb b/lib/puppet/transportable.rb
index a448e28a5..615a95d2b 100644
--- a/lib/puppet/transportable.rb
+++ b/lib/puppet/transportable.rb
@@ -207,11 +207,18 @@ module Puppet
end
def to_ref
- return nil unless self.type and self.name
unless defined? @ref
- @ref = Puppet::ResourceReference.new(self.type, self.name)
+ if self.type and self.name
+ @ref = Puppet::ResourceReference.new(self.type, self.name)
+ elsif self.type and ! self.name # This is old-school node types
+ @ref = Puppet::ResourceReference.new("node", self.type)
+ elsif ! self.type and self.name
+ @ref = Puppet::ResourceReference.new("component", self.name)
+ else
+ @ref = nil
+ end
end
- @ref.to_s
+ @ref.to_s if @ref
end
def to_type
diff --git a/spec/unit/other/transbucket.rb b/spec/unit/other/transbucket.rb
index 10c551752..84cf93fa4 100755
--- a/spec/unit/other/transbucket.rb
+++ b/spec/unit/other/transbucket.rb
@@ -37,7 +37,17 @@ describe Puppet::TransBucket do
proc { @bucket.push "a test" }.should raise_error
end
- it "should return nil as its reference when type or name is missing" do
+ it "should return use 'node' as the type and the provided name as the title if only a type is provided" do
+ @bucket.type = "mystuff"
+ @bucket.to_ref.should == "Node[mystuff]"
+ end
+
+ it "should return use 'component' as the type and the provided type as the title if only a name is provided" do
+ @bucket.name = "mystuff"
+ @bucket.to_ref.should == "Class[mystuff]"
+ end
+
+ it "should return nil as its reference when type and name are missing" do
@bucket.to_ref.should be_nil
end