diff options
-rw-r--r-- | lib/puppet/defaults.rb | 1 | ||||
-rw-r--r-- | lib/puppet/indirector/certificate/ca_file.rb | 8 | ||||
-rw-r--r-- | lib/puppet/indirector/certificate_request/ca_file.rb | 8 | ||||
-rw-r--r-- | lib/puppet/indirector/certificate_request/file.rb | 8 | ||||
-rw-r--r-- | lib/puppet/ssl/certificate.rb | 5 | ||||
-rw-r--r-- | lib/puppet/ssl/certificate_request.rb | 2 | ||||
-rw-r--r-- | lib/puppet/ssl/key.rb | 2 | ||||
-rwxr-xr-x | spec/unit/indirector/certificate/ca_file.rb | 19 | ||||
-rwxr-xr-x | spec/unit/indirector/certificate_request/ca_file.rb | 19 | ||||
-rwxr-xr-x | spec/unit/indirector/certificate_request/file.rb | 19 | ||||
-rwxr-xr-x | spec/unit/ssl/certificate.rb | 4 | ||||
-rwxr-xr-x | spec/unit/ssl/key.rb | 5 |
12 files changed, 95 insertions, 5 deletions
diff --git a/lib/puppet/defaults.rb b/lib/puppet/defaults.rb index eed1a00f3..300f9bad4 100644 --- a/lib/puppet/defaults.rb +++ b/lib/puppet/defaults.rb @@ -167,6 +167,7 @@ module Puppet certificate. By default, only the server gets an alias set up, and only for 'puppet'."], :certdir => ["$ssldir/certs", "The certificate directory."], :publickeydir => ["$ssldir/public_keys", "The public key directory."], + :requestdir => ["$ssldir/public_keys", "The public key directory."], :privatekeydir => { :default => "$ssldir/private_keys", :mode => 0750, :desc => "The private key directory." diff --git a/lib/puppet/indirector/certificate/ca_file.rb b/lib/puppet/indirector/certificate/ca_file.rb new file mode 100644 index 000000000..99941c49e --- /dev/null +++ b/lib/puppet/indirector/certificate/ca_file.rb @@ -0,0 +1,8 @@ +require 'puppet/indirector/ssl_file' +require 'puppet/ssl/certificate' + +class Puppet::SSL::Certificate::CaFile < Puppet::Indirector::SslFile + desc "Manage the CA collection of signed SSL certificates on disk." + + store_in :signeddir +end diff --git a/lib/puppet/indirector/certificate_request/ca_file.rb b/lib/puppet/indirector/certificate_request/ca_file.rb new file mode 100644 index 000000000..08aa73eaf --- /dev/null +++ b/lib/puppet/indirector/certificate_request/ca_file.rb @@ -0,0 +1,8 @@ +require 'puppet/indirector/ssl_file' +require 'puppet/ssl/certificate_request' + +class Puppet::SSL::CertificateRequest::CaFile < Puppet::Indirector::SslFile + desc "Manage the CA collection of certificate requests on disk." + + store_in :csrdir +end diff --git a/lib/puppet/indirector/certificate_request/file.rb b/lib/puppet/indirector/certificate_request/file.rb new file mode 100644 index 000000000..5eb6745fd --- /dev/null +++ b/lib/puppet/indirector/certificate_request/file.rb @@ -0,0 +1,8 @@ +require 'puppet/indirector/ssl_file' +require 'puppet/ssl/certificate_request' + +class Puppet::SSL::CertificateRequest::CaFile < Puppet::Indirector::SslFile + desc "Manage the CA collection of certificate requests on disk." + + store_in :requestdir +end diff --git a/lib/puppet/ssl/certificate.rb b/lib/puppet/ssl/certificate.rb index 9a89b4530..d1687e6f0 100644 --- a/lib/puppet/ssl/certificate.rb +++ b/lib/puppet/ssl/certificate.rb @@ -1,13 +1,12 @@ require 'puppet/ssl/base' -# The class that manages all aspects of our SSL certificates -- -# private keys, public keys, requests, etc. +# Manage certificates themselves. class Puppet::SSL::Certificate < Puppet::SSL::Base # This is defined from the base class wraps OpenSSL::X509::Certificate extend Puppet::Indirector - indirects :certificate #, :terminus_class => :file + indirects :certificate, :terminus_class => :file def generate raise Puppet::DevError, "Cannot generate certificates directly; they must be generated during signing" diff --git a/lib/puppet/ssl/certificate_request.rb b/lib/puppet/ssl/certificate_request.rb index 67f0f23c6..fec9e1733 100644 --- a/lib/puppet/ssl/certificate_request.rb +++ b/lib/puppet/ssl/certificate_request.rb @@ -1,6 +1,6 @@ require 'puppet/ssl/base' -# This constant just exists for us to use for adding our request terminii. +# Manage certificate requests. class Puppet::SSL::CertificateRequest < Puppet::SSL::Base wraps OpenSSL::X509::Request diff --git a/lib/puppet/ssl/key.rb b/lib/puppet/ssl/key.rb index 18bf2a4cb..a9c8717f8 100644 --- a/lib/puppet/ssl/key.rb +++ b/lib/puppet/ssl/key.rb @@ -6,7 +6,7 @@ class Puppet::SSL::Key < Puppet::SSL::Base wraps OpenSSL::PKey::RSA extend Puppet::Indirector - indirects :key #, :terminus_class => :file + indirects :key, :terminus_class => :file # Knows how to create keys with our system defaults. def generate diff --git a/spec/unit/indirector/certificate/ca_file.rb b/spec/unit/indirector/certificate/ca_file.rb new file mode 100755 index 000000000..98075170d --- /dev/null +++ b/spec/unit/indirector/certificate/ca_file.rb @@ -0,0 +1,19 @@ +#!/usr/bin/env ruby +# +# Created by Luke Kanies on 2008-3-7. +# Copyright (c) 2007. All rights reserved. + +require File.dirname(__FILE__) + '/../../../spec_helper' + +require 'puppet/indirector/certificate/ca_file' + +describe Puppet::SSL::Certificate::CaFile do + it "should have documentation" do + Puppet::SSL::Certificate::CaFile.doc.should be_instance_of(String) + end + + it "should use the :signeddir as the collection directory" do + Puppet.settings.expects(:value).with(:signeddir).returns "/cert/dir" + Puppet::SSL::Certificate::CaFile.collection_directory.should == "/cert/dir" + end +end diff --git a/spec/unit/indirector/certificate_request/ca_file.rb b/spec/unit/indirector/certificate_request/ca_file.rb new file mode 100755 index 000000000..7b264fefb --- /dev/null +++ b/spec/unit/indirector/certificate_request/ca_file.rb @@ -0,0 +1,19 @@ +#!/usr/bin/env ruby +# +# Created by Luke Kanies on 2008-3-7. +# Copyright (c) 2007. All rights reserved. + +require File.dirname(__FILE__) + '/../../../spec_helper' + +require 'puppet/indirector/certificate_request/ca_file' + +describe Puppet::SSL::CertificateRequest::CaFile do + it "should have documentation" do + Puppet::SSL::CertificateRequest::CaFile.doc.should be_instance_of(String) + end + + it "should use the :csrdir as the collection directory" do + Puppet.settings.expects(:value).with(:csrdir).returns "/request/dir" + Puppet::SSL::CertificateRequest::CaFile.collection_directory.should == "/request/dir" + end +end diff --git a/spec/unit/indirector/certificate_request/file.rb b/spec/unit/indirector/certificate_request/file.rb new file mode 100755 index 000000000..c4595b932 --- /dev/null +++ b/spec/unit/indirector/certificate_request/file.rb @@ -0,0 +1,19 @@ +#!/usr/bin/env ruby +# +# Created by Luke Kanies on 2008-3-7. +# Copyright (c) 2007. All rights reserved. + +require File.dirname(__FILE__) + '/../../../spec_helper' + +require 'puppet/indirector/certificate_request/file' + +describe Puppet::SSL::CertificateRequest::CaFile do + it "should have documentation" do + Puppet::SSL::CertificateRequest::CaFile.doc.should be_instance_of(String) + end + + it "should use the :requestdir as the collection directory" do + Puppet.settings.expects(:value).with(:requestdir).returns "/request/dir" + Puppet::SSL::CertificateRequest::CaFile.collection_directory.should == "/request/dir" + end +end diff --git a/spec/unit/ssl/certificate.rb b/spec/unit/ssl/certificate.rb index 69f4e1fa1..1df9c42e1 100755 --- a/spec/unit/ssl/certificate.rb +++ b/spec/unit/ssl/certificate.rb @@ -17,6 +17,10 @@ describe Puppet::SSL::Certificate do @class.indirection.name.should == :certificate end + it "should default to the :file terminus class" do + @class.indirection.terminus_class.should == :file + end + describe "when managing instances" do before do @certificate = @class.new("myname") diff --git a/spec/unit/ssl/key.rb b/spec/unit/ssl/key.rb index e580bbc55..d6cdc8266 100755 --- a/spec/unit/ssl/key.rb +++ b/spec/unit/ssl/key.rb @@ -8,6 +8,7 @@ describe Puppet::SSL::Key do before do @class = Puppet::SSL::Key end + it "should be extended with the Indirector module" do @class.metaclass.should be_include(Puppet::Indirector) end @@ -16,6 +17,10 @@ describe Puppet::SSL::Key do @class.indirection.name.should == :key end + it "should default to the :file terminus class" do + @class.indirection.terminus_class.should == :file + end + describe "when managing instances" do before do @key = @class.new("myname") |