class Awful::Certs

Public Instance Methods

color_date(date) click to toggle source
# File lib/awful/certs.rb, line 14
def color_date(date)
  diff = date - Time.now
  set_color(
    date,
    if diff < 0
      :red
    elsif diff < (60*60*24*30)
      :yellow
    else
      :green
    end
  )
end
delete(name) click to toggle source
# File lib/awful/certs.rb, line 99
def delete(name)
  if yes? "Really delete server certificate #{name}?", :yellow
    iam.delete_server_certificate(server_certificate_name: name)
  end
end
dump(name) click to toggle source
# File lib/awful/certs.rb, line 86
def dump(name)
  iam.get_server_certificate(server_certificate_name: name).server_certificate.output do |cert|
    if options[:body]
      puts cert.certificate_body
    elsif options[:chain]
      puts cert.certificate_chain
    else
      puts YAML.dump(stringify_keys(cert.server_certificate_metadata.to_h))
    end
  end
end
iam() click to toggle source
# File lib/awful/certs.rb, line 10
def iam
  @iam ||= Aws::IAM::Client.new
end
ls(path = nil) click to toggle source
# File lib/awful/certs.rb, line 32
def ls(path = nil)
  marker = nil
  certs = []
  loop do
    response = iam.list_server_certificates(path_prefix: path, marker: marker)
    certs += response.server_certificate_metadata_list
    marker = response.marker
    break unless response.is_truncated
  end
  certs.output do |list|
    if options[:long]
      print_table list.map { |c|
        [
          c.server_certificate_name,
          c.path,
          c.server_certificate_id,
          c.upload_date,
          color_date(c.expiration),
        ]
      }.sort
    elsif options[:arns]
      puts certs.map(&:arn)
    else
      puts certs.map(&:server_certificate_name).sort
    end
  end
end
read_file(name) click to toggle source
# File lib/awful/certs.rb, line 61
def read_file(name)
  name.nil? ? nil : File.read(name)
end
upload(name) click to toggle source
# File lib/awful/certs.rb, line 71
def upload(name)
  iam.upload_server_certificate(
    server_certificate_name: name,
    path:                    options[:path],
    certificate_body:        read_file(options[:body]),
    private_key:             read_file(options[:key]),
    certificate_chain:       read_file(options[:chain]),
  ).output do |cert|
    puts cert.server_certificate_metadata.arn
  end
end