diff options
author | Luke Kanies <luke@reductivelabs.com> | 2010-03-25 14:55:51 -0700 |
---|---|---|
committer | test branch <puppet-dev@googlegroups.com> | 2010-02-17 06:50:53 -0800 |
commit | 2a60e1e5eef42a1a0f11574d69f3c90be22e52ca (patch) | |
tree | bf56971411d00fb8b6391f1140aa2ed2f8d378a1 /spec | |
parent | 626945bb33fa0b294100414c058a1f4d2b3e0039 (diff) | |
download | puppet-2a60e1e5eef42a1a0f11574d69f3c90be22e52ca.tar.gz puppet-2a60e1e5eef42a1a0f11574d69f3c90be22e52ca.tar.xz puppet-2a60e1e5eef42a1a0f11574d69f3c90be22e52ca.zip |
Adding :catalog_terminus setting
This will rarely be used, but it enables even more architectural
flexibility, such as precompiling catalogs and storing them in memcached
or equivalent. With this setup, a single host can probably serve all
catalogs and you would then just have as many compiling hosts as
needed.
Signed-off-by: Luke Kanies <luke@reductivelabs.com>
Diffstat (limited to 'spec')
-rwxr-xr-x | spec/unit/application/agent.rb | 5 | ||||
-rwxr-xr-x | spec/unit/configurer.rb | 32 | ||||
-rwxr-xr-x | spec/unit/resource/catalog.rb | 10 |
3 files changed, 35 insertions, 12 deletions
diff --git a/spec/unit/application/agent.rb b/spec/unit/application/agent.rb index 782dcfca5..9c8aa11c1 100755 --- a/spec/unit/application/agent.rb +++ b/spec/unit/application/agent.rb @@ -327,9 +327,8 @@ describe Puppet::Application[:agent] do @puppetd.run_setup end - it "should tell the catalog handler to use REST" do - Puppet::Resource::Catalog.expects(:terminus_class=).with(:rest) - + it "should change the catalog_terminus setting to 'rest'" do + Puppet.expects(:[]=).with(:catalog_terminus, :rest) @puppetd.run_setup end diff --git a/spec/unit/configurer.rb b/spec/unit/configurer.rb index 6744f885d..94ac45297 100755 --- a/spec/unit/configurer.rb +++ b/spec/unit/configurer.rb @@ -289,6 +289,9 @@ describe Puppet::Configurer, "when retrieving a catalog" do @catalog = Puppet::Resource::Catalog.new + # this is the default when using a Configurer instance + Puppet::Resource::Catalog.indirection.stubs(:terminus_class).returns :rest + @agent.stubs(:convert_catalog).returns @catalog end @@ -312,6 +315,28 @@ describe Puppet::Configurer, "when retrieving a catalog" do end end + describe "when not using a REST terminus for catalogs" do + it "should not pass any facts when retrieving the catalog" do + @agent.expects(:facts_for_uploading).never + Puppet::Resource::Catalog.expects(:find).with { |name, options| + options[:facts].nil? + }.returns @catalog + + @agent.retrieve_catalog + end + end + + describe "when using a REST terminus for catalogs" do + it "should pass the prepared facts and the facts format as arguments when retrieving the catalog" do + @agent.expects(:facts_for_uploading).returns(:facts => "myfacts", :facts_format => :foo) + Puppet::Resource::Catalog.expects(:find).with { |name, options| + options[:facts] == "myfacts" and options[:facts_format] == :foo + }.returns @catalog + + @agent.retrieve_catalog + end + end + it "should use the Catalog class to get its catalog" do Puppet::Resource::Catalog.expects(:find).returns @catalog @@ -326,13 +351,6 @@ describe Puppet::Configurer, "when retrieving a catalog" do @agent.retrieve_catalog end - it "should pass the prepared facts and the facts format as arguments when retrieving the catalog" do - @agent.expects(:facts_for_uploading).returns(:facts => "myfacts", :facts_format => :foo) - Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:facts] == "myfacts" and options[:facts_format] == :foo }.returns @catalog - - @agent.retrieve_catalog - end - it "should default to returning a catalog retrieved directly from the server, skipping the cache" do Puppet::Resource::Catalog.expects(:find).with { |name, options| options[:ignore_cache] == true }.returns @catalog diff --git a/spec/unit/resource/catalog.rb b/spec/unit/resource/catalog.rb index 6c6af24ce..853bf9bee 100755 --- a/spec/unit/resource/catalog.rb +++ b/spec/unit/resource/catalog.rb @@ -830,8 +830,14 @@ describe Puppet::Resource::Catalog, "when compiling" do Puppet::Resource::Catalog.find(:myconfig) end - it "should default to the 'compiler' terminus" do - Puppet::Resource::Catalog.indirection.terminus_class.should == :compiler + it "should use the value of the 'catalog_terminus' setting to determine its terminus class" do + Puppet.settings[:catalog_terminus] = "rest" + Puppet::Resource::Catalog.indirection.terminus_class.should == :rest + end + + it "should allow the terminus class to be set manually" do + Puppet::Resource::Catalog.indirection.terminus_class = :rest + Puppet::Resource::Catalog.indirection.terminus_class.should == :rest end after do |