diff options
Diffstat (limited to 'lib/puppet/interface')
| -rw-r--r-- | lib/puppet/interface/certificate.rb | 14 |
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)) |
