summaryrefslogtreecommitdiffstats
path: root/lib/puppet/interface
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/interface')
-rw-r--r--lib/puppet/interface/certificate.rb14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/puppet/interface/certificate.rb b/lib/puppet/interface/certificate.rb
index 9b9496977..6ba043e8c 100644
--- a/lib/puppet/interface/certificate.rb
+++ b/lib/puppet/interface/certificate.rb
@@ -1,6 +1,15 @@
require 'puppet/interface/indirector'
Puppet::Interface::Indirector.interface(:certificate) do
+ action :generate do
+ invoke do |name|
+ require 'puppet/ssl/host'
+
+ host = Puppet::SSL::Host.new(name)
+ host.generate
+ end
+ end
+
action :sign do |name|
invoke do |name|
unless Puppet::SSL::Host.ca_location
@@ -9,8 +18,9 @@ Puppet::Interface::Indirector.interface(:certificate) do
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
+ app = Puppet::Application[:certificate]
+ app.class.run_mode("master")
+ app.set_run_mode Puppet::Application[:certificate].class.run_mode
end
Puppet::SSL::Host.indirection.save(Puppet::SSL::Host.new(name))