diff options
-rw-r--r-- | lib/puppet/resource/catalog.rb | 14 | ||||
-rwxr-xr-x | spec/unit/resource/catalog.rb | 4 |
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/puppet/resource/catalog.rb b/lib/puppet/resource/catalog.rb index 88aa9517d..cb0ce0333 100644 --- a/lib/puppet/resource/catalog.rb +++ b/lib/puppet/resource/catalog.rb @@ -416,6 +416,20 @@ class Puppet::Resource::Catalog < Puppet::SimpleGraph super end + def to_yaml_properties + result = instance_variables + + # There's a ruby bug that hits us without this: + # http://rubyforge.org/tracker/?group_id=426&atid=1698&func=detail&aid=8886 + # We need our resources to show up in as values in a hash + # before they show up as keys, because otherwise + # the loading fails. + result.delete "@resource_table" + result.unshift "@resource_table" + + result + end + private def cleanup diff --git a/spec/unit/resource/catalog.rb b/spec/unit/resource/catalog.rb index 6a5922e2e..d51f8fbd7 100755 --- a/spec/unit/resource/catalog.rb +++ b/spec/unit/resource/catalog.rb @@ -801,6 +801,10 @@ describe Puppet::Resource::Catalog, "when compiling" do it "should be able to be dumped to yaml" do YAML.dump(@catalog).should be_instance_of(String) end + + it "should always have its resource table first in its yaml property list" do + @catalog.to_yaml_properties[0].should == "@resource_table" + end end describe "when converting from yaml" do |