diff options
author | Nick Lewis <nick@puppetlabs.com> | 2011-07-21 11:52:50 -0700 |
---|---|---|
committer | Jacob Helwig <jacob@puppetlabs.com> | 2011-08-19 13:52:56 -0700 |
commit | 9849d565ec4db6bf1a39413c3136da9713f9fa25 (patch) | |
tree | ac567dd0039442b5b63f77506c8755b2a3809bd7 | |
parent | 028b795e2c705baa3652f26d8eec090e6b428d33 (diff) | |
download | puppet-9849d565ec4db6bf1a39413c3136da9713f9fa25.tar.gz puppet-9849d565ec4db6bf1a39413c3136da9713f9fa25.tar.xz puppet-9849d565ec4db6bf1a39413c3136da9713f9fa25.zip |
Remove use of Puppet::Util::Cacher in Puppet::SSL::Host
This class was previously using a cached_attr for its 'localhost' attribute,
representing the Puppet::SSL::Host entry corresponding to the cert in
Puppet[:certname]. We now no longer expire this attribute. This has the effect
that a change to certname during the lifetime of an agent will not be reflected
in the certificate it uses. If this behavior is desired, it will need to be
reimplemented another way.
Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
(cherry picked from commit 7048b4c4d8c4a8ad45caf6a02b263ac0a9fa333e)
-rw-r--r-- | lib/puppet/ssl/host.rb | 13 | ||||
-rwxr-xr-x | spec/unit/ssl/host_spec.rb | 12 | ||||
-rwxr-xr-x | test/network/handler/master.rb | 5 | ||||
-rwxr-xr-x | test/network/server/webrick.rb | 26 |
4 files changed, 10 insertions, 46 deletions
diff --git a/lib/puppet/ssl/host.rb b/lib/puppet/ssl/host.rb index b9215effd..08a8ace1f 100644 --- a/lib/puppet/ssl/host.rb +++ b/lib/puppet/ssl/host.rb @@ -4,7 +4,6 @@ require 'puppet/ssl/key' require 'puppet/ssl/certificate' require 'puppet/ssl/certificate_request' require 'puppet/ssl/certificate_revocation_list' -require 'puppet/util/cacher' # The class that manages all aspects of our SSL certificates -- # private keys, public keys, requests, etc. @@ -27,14 +26,10 @@ class Puppet::SSL::Host # This accessor is used in instances for indirector requests to hold desired state attr_accessor :desired_state - class << self - include Puppet::Util::Cacher - - cached_attr(:localhost) do - result = new - result.generate unless result.certificate - result.key # Make sure it's read in - result + def self.localhost + @localhost ||= new.tap do |l| + l.generate unless l.certificate + l.key # Make sure it's read in end end diff --git a/spec/unit/ssl/host_spec.rb b/spec/unit/ssl/host_spec.rb index e1680941f..f00451619 100755 --- a/spec/unit/ssl/host_spec.rb +++ b/spec/unit/ssl/host_spec.rb @@ -13,7 +13,7 @@ describe Puppet::SSL::Host, :fails_on_windows => true do after do # Cleaned out any cached localhost instance. - Puppet::Util::Cacher.expire + Puppet::SSL::Host.instance_variable_set(:@localhost, nil) Puppet::SSL::Host.ca_location = :none end @@ -82,16 +82,6 @@ describe Puppet::SSL::Host, :fails_on_windows => true do Puppet::SSL::Host.localhost.should == Puppet::SSL::Host.localhost end - it "should be able to expire the cached instance" do - one = stub 'host1', :certificate => "eh", :key => 'foo' - two = stub 'host2', :certificate => "eh", :key => 'foo' - Puppet::SSL::Host.expects(:new).times(2).returns(one).then.returns(two) - - Puppet::SSL::Host.localhost.should equal(one) - Puppet::Util::Cacher.expire - Puppet::SSL::Host.localhost.should equal(two) - end - it "should be able to verify its certificate matches its key" do Puppet::SSL::Host.new("foo").should respond_to(:certificate_matches_key?) end diff --git a/test/network/handler/master.rb b/test/network/handler/master.rb index 4c0374a76..9326e4b38 100755 --- a/test/network/handler/master.rb +++ b/test/network/handler/master.rb @@ -16,11 +16,6 @@ class TestMaster < Test::Unit::TestCase Puppet::Resource::Catalog.indirection.stubs(:find).returns(@catalog) end - def teardown - super - Puppet::Util::Cacher.expire - end - def test_freshness_is_always_now now1 = mock 'now1' Time.stubs(:now).returns(now1) diff --git a/test/network/server/webrick.rb b/test/network/server/webrick.rb index 9eed5d862..e1fd68921 100755 --- a/test/network/server/webrick.rb +++ b/test/network/server/webrick.rb @@ -11,10 +11,7 @@ class TestWebrickServer < Test::Unit::TestCase def setup Puppet::Util::SUIDManager.stubs(:asuser).yields - super - end - - def teardown + Puppet::SSL::Host.instance_variable_set(:@localhost, nil) super end @@ -23,11 +20,8 @@ class TestWebrickServer < Test::Unit::TestCase def test_basics server = nil assert_raise(Puppet::Error, "server succeeded with no cert") do - - server = Puppet::Network::HTTPServer::WEBrick.new( - + server = Puppet::Network::HTTPServer::WEBrick.new( :Port => @@port, - :Handlers => { :Status => nil } @@ -35,11 +29,8 @@ class TestWebrickServer < Test::Unit::TestCase end assert_nothing_raised("Could not create simple server") do - - server = Puppet::Network::HTTPServer::WEBrick.new( - + server = Puppet::Network::HTTPServer::WEBrick.new( :Port => @@port, - :Handlers => { :CA => {}, # so that certs autogenerate :Status => nil @@ -75,11 +66,8 @@ class TestWebrickServer < Test::Unit::TestCase client = nil assert_nothing_raised { - - client = Puppet::Network::Client.status.new( - + client = Puppet::Network::Client.status.new( :Server => "localhost", - :Port => @@port ) } @@ -90,17 +78,13 @@ class TestWebrickServer < Test::Unit::TestCase server = nil Puppet[:certdnsnames] = "localhost" assert_nothing_raised { - - server = Puppet::Network::HTTPServer::WEBrick.new( - + server = Puppet::Network::HTTPServer::WEBrick.new( :Port => @@port, - :Handlers => { :CA => {}, # so that certs autogenerate :Status => nil } ) - } pid = fork { |