summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/network/http_pool.rb10
-rwxr-xr-xspec/unit/network/http_pool.rb11
2 files changed, 13 insertions, 8 deletions
diff --git a/lib/puppet/network/http_pool.rb b/lib/puppet/network/http_pool.rb
index b1206f7f9..6de204a80 100644
--- a/lib/puppet/network/http_pool.rb
+++ b/lib/puppet/network/http_pool.rb
@@ -51,7 +51,7 @@ module Puppet::Network::HttpPool
# Use cert information from a Puppet client to set up the http object.
def self.cert_setup(http)
# Just no-op if we don't have certs.
- return false unless FileTest.exist?(Puppet[:hostcert]) # ssl_host.certificate
+ return false unless FileTest.exist?(Puppet[:hostcert]) and FileTest.exist?(Puppet[:localcacert])
http.cert_store = ssl_host.ssl_store
http.ca_file = Puppet[:localcacert]
@@ -60,7 +60,7 @@ module Puppet::Network::HttpPool
http.key = ssl_host.key.content
end
- # Retrieve a cached http instance of caching is enabled, else return
+ # Retrieve a cached http instance if caching is enabled, else return
# a new one.
def self.http_instance(host, port, reset = false)
# We overwrite the uninitialized @http here with a cached one.
@@ -95,11 +95,7 @@ module Puppet::Network::HttpPool
http.read_timeout = Puppet[:configtimeout]
http.open_timeout = Puppet[:configtimeout]
# JJM Configurable fix for #896.
- if Puppet[:http_enable_post_connection_check]
- http.enable_post_connection_check = true
- else
- http.enable_post_connection_check = false
- end
+ http.enable_post_connection_check = Puppet[:http_enable_post_connection_check]
cert_setup(http)
diff --git a/spec/unit/network/http_pool.rb b/spec/unit/network/http_pool.rb
index ce7630951..65f91efa1 100755
--- a/spec/unit/network/http_pool.rb
+++ b/spec/unit/network/http_pool.rb
@@ -147,8 +147,10 @@ describe Puppet::Network::HttpPool do
Puppet[:confdir] = "/sometthing/else"
Puppet.settings.stubs(:value).returns "/some/file"
Puppet.settings.stubs(:value).with(:hostcert).returns "/host/cert"
+ Puppet.settings.stubs(:value).with(:localcacert).returns "/local/ca/cert"
FileTest.stubs(:exist?).with("/host/cert").returns true
+ FileTest.stubs(:exist?).with("/local/ca/cert").returns true
Puppet::Network::HttpPool.stubs(:ssl_host).returns @host
end
@@ -157,12 +159,18 @@ describe Puppet::Network::HttpPool do
Puppet.settings.clear
end
- it "should do nothing if no certificate is on disk" do
+ it "should do nothing if no host certificate is on disk" do
FileTest.expects(:exist?).with("/host/cert").returns false
@http.expects(:cert=).never
Puppet::Network::HttpPool.cert_setup(@http)
end
+ it "should do nothing if no local certificate is on disk" do
+ FileTest.expects(:exist?).with("/local/ca/cert").returns false
+ @http.expects(:cert=).never
+ Puppet::Network::HttpPool.cert_setup(@http)
+ end
+
it "should add a certificate store from the ssl host" do
@http.expects(:cert_store=).with(@store)
@@ -192,6 +200,7 @@ describe Puppet::Network::HttpPool do
FileTest.stubs(:exist?).with(Puppet[:hostcert]).returns true
Puppet.settings.stubs(:value).with(:localcacert).returns "/ca/cert/file"
+ FileTest.stubs(:exist?).with("/ca/cert/file").returns true
@http.expects(:ca_file=).with("/ca/cert/file")
Puppet::Network::HttpPool.cert_setup(@http)