diff options
author | Luke Kanies <luke@madstop.com> | 2009-09-19 21:21:33 -0700 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-09-22 09:27:22 +1000 |
commit | d53bc169861815ce7cffac431f76304c995bb4fa (patch) | |
tree | e87c0b2ff373a68cbc61115e8327af41edf10dde | |
parent | 5f2558939bbf4ce180aa5d7c0d534e974bd01a4f (diff) | |
download | puppet-d53bc169861815ce7cffac431f76304c995bb4fa.tar.gz puppet-d53bc169861815ce7cffac431f76304c995bb4fa.tar.xz puppet-d53bc169861815ce7cffac431f76304c995bb4fa.zip |
Adding version information to the catalog for compat
We need to be able to do compatibility testing, and this
allows us to do so.
Signed-off-by: Luke Kanies <luke@madstop.com>
-rw-r--r-- | lib/puppet/parser/compiler.rb | 4 | ||||
-rw-r--r-- | lib/puppet/resource/catalog.rb | 3 | ||||
-rwxr-xr-x | spec/unit/parser/compiler.rb | 9 | ||||
-rwxr-xr-x | spec/unit/resource/catalog.rb | 12 |
4 files changed, 28 insertions, 0 deletions
diff --git a/lib/puppet/parser/compiler.rb b/lib/puppet/parser/compiler.rb index 2eb9438d9..521bf1cb5 100644 --- a/lib/puppet/parser/compiler.rb +++ b/lib/puppet/parser/compiler.rb @@ -422,6 +422,10 @@ class Puppet::Parser::Compiler node.parameters.each do |param, value| @topscope.setvar(param, value) end + + # These might be nil. + catalog.client_version = node.parameters["clientversion"] + catalog.server_version = node.parameters["serverversion"] end # Return an array of all of the unevaluated resources. These will be definitions, diff --git a/lib/puppet/resource/catalog.rb b/lib/puppet/resource/catalog.rb index 6ccfe73ad..561be82ff 100644 --- a/lib/puppet/resource/catalog.rb +++ b/lib/puppet/resource/catalog.rb @@ -46,6 +46,9 @@ class Puppet::Resource::Catalog < Puppet::SimpleGraph # whether it is written back out again. attr_accessor :from_cache + # Some metadata to help us compile and generally respond to the current state. + attr_accessor :client_version, :server_version + # Add classes to our class list. def add_class(*classes) classes.each do |klass| diff --git a/spec/unit/parser/compiler.rb b/spec/unit/parser/compiler.rb index ad6f351bf..41f03f2ac 100755 --- a/spec/unit/parser/compiler.rb +++ b/spec/unit/parser/compiler.rb @@ -131,6 +131,15 @@ describe Puppet::Parser::Compiler do @compiler.topscope.lookupvar("c").should == "d" end + it "should set the client and server versions on the catalog" do + params = {"clientversion" => "2", "serverversion" => "3"} + @node.stubs(:parameters).returns(params) + compile_stub(:set_node_parameters) + @compiler.compile + @compiler.catalog.client_version.should == "2" + @compiler.catalog.server_version.should == "3" + end + it "should evaluate any existing classes named in the node" do classes = %w{one two three four} main = stub 'main' diff --git a/spec/unit/resource/catalog.rb b/spec/unit/resource/catalog.rb index af399aa0f..1fbe3a984 100755 --- a/spec/unit/resource/catalog.rb +++ b/spec/unit/resource/catalog.rb @@ -35,6 +35,18 @@ describe Puppet::Resource::Catalog, "when compiling" do @catalog.write_class_file end + it "should have a client_version attribute" do + @catalog = Puppet::Resource::Catalog.new("host") + @catalog.client_version = 5 + @catalog.client_version.should == 5 + end + + it "should have a server_version attribute" do + @catalog = Puppet::Resource::Catalog.new("host") + @catalog.server_version = 5 + @catalog.server_version.should == 5 + end + describe "when compiling" do it "should accept tags" do config = Puppet::Resource::Catalog.new("mynode") |