summaryrefslogtreecommitdiffstats
path: root/lib/puppet/interface
diff options
context:
space:
mode:
authorRichard Crowley <r@rcrowley.org>2011-03-22 23:46:21 +0000
committerRichard Crowley <r@rcrowley.org>2011-03-23 01:33:53 +0000
commit5d7715b0c56c6f06d916126e8470d7edb66d7687 (patch)
treea8e0b0bd4e5c71ef1ec892857a398c3314f5890f /lib/puppet/interface
parent6dd629cb79e56d0bbf4670b84a73b0a7e3eef919 (diff)
downloadpuppet-5d7715b0c56c6f06d916126e8470d7edb66d7687.tar.gz
puppet-5d7715b0c56c6f06d916126e8470d7edb66d7687.tar.xz
puppet-5d7715b0c56c6f06d916126e8470d7edb66d7687.zip
Factoring cert status app back into certificate.
Diffstat (limited to 'lib/puppet/interface')
-rw-r--r--lib/puppet/interface/certificate.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/puppet/interface/certificate.rb b/lib/puppet/interface/certificate.rb
index 09da0a6c3..c2101d926 100644
--- a/lib/puppet/interface/certificate.rb
+++ b/lib/puppet/interface/certificate.rb
@@ -1,4 +1,21 @@
require 'puppet/interface/indirector'
Puppet::Interface::Indirector.interface(:certificate) do
+
+ action :sign do |name|
+ unless indirection.terminus
+ raise ArgumentError, "You must have a CA specified; use --ca-location to specify the location (remote, local, only)"
+ end
+
+ location = Puppet::SSL::Host.ca_location
+ if location == :local && !Puppet::SSL::CertificateAuthority.ca?
+ Puppet::Application[:certificate].class.run_mode("master")
+ set_run_mode Puppet::Application[:certificate].class.run_mode
+ end
+
+ Puppet::SSL::CertificateStatus.indirection.save(
+ Puppet::SSL::CertificateStatus.new(name))
+
+ end
+
end