Sha256: 0490bd3c5fcc70f4e1728cb278fb1804a3a8523d7ec876d2991bdddc382447fd

Contents?: true

Size: 1.67 KB

Versions: 6

Compression:

Stored size: 1.67 KB

Contents

require 'puppet'
require 'puppet/application'
require 'puppet/ssl/certificate_authority'

Puppet::Application.new(:puppetca) do

    should_parse_config

    attr_accessor :mode, :all, :ca

    def find_mode(opt)
        modes = Puppet::SSL::CertificateAuthority::Interface::INTERFACE_METHODS
        tmp = opt.sub("--", '').to_sym
        @mode = modes.include?(tmp) ? tmp : nil
    end

    option("--clean", "-c") do
        @mode = :destroy
    end

    option("--all", "-a") do
        @all = true
    end

    option("--debug", "-d") do |arg|
        Puppet::Util::Log.level = :debug
    end

    Puppet::SSL::CertificateAuthority::Interface::INTERFACE_METHODS.reject {|m| m == :destroy }.each do |method|
        option("--#{method}", "-%s" % method.to_s[0,1] ) do
            find_mode("--#{method}")
        end
    end

    option("--verbose", "-v") do
        Puppet::Util::Log.level = :info
    end

    command(:main) do
        if @all
            hosts = :all
        else
            hosts = ARGV.collect { |h| puts h; h.downcase }
        end
        begin
            @ca.apply(@mode, :to => hosts)
        rescue => detail
            puts detail.backtrace if Puppet[:trace]
            puts detail.to_s
            exit(24)
        end
    end

    setup do
        if Puppet.settings.print_configs?
            exit(Puppet.settings.print_configs ? 0 : 1)
        end

        Puppet::Util::Log.newdestination :console

        Puppet::SSL::Host.ca_location = :only

        begin
            @ca = Puppet::SSL::CertificateAuthority.new
        rescue => detail
            puts detail.backtrace if Puppet[:trace]
            puts detail.to_s
            exit(23)
        end
    end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
puppet-0.25.5 lib/puppet/application/puppetca.rb
puppet-0.25.4 lib/puppet/application/puppetca.rb
puppet-0.25.3 lib/puppet/application/puppetca.rb
puppet-0.25.2 lib/puppet/application/puppetca.rb
puppet-0.25.1 lib/puppet/application/puppetca.rb
puppet-0.25.0 lib/puppet/application/puppetca.rb