Sha256: 4d92ef5ad4aad66a8423e356db792dae60cd5a9e75cea3caf27ac0862492f36d
Contents?: true
Size: 2 KB
Versions: 1
Compression:
Stored size: 2 KB
Contents
require 'aws-sdk' require 'openssl' module Cecha class Client attr_reader :logger ElbCert = Struct.new( "ElbCert", :aws_account_number, :region, :elb_name, :elb_port, :ssl_certificate_name, :signature_algorithm, :policy_names ) do def to_s values.join("\t") end end def initialize(cli_options = {}, aws_configuration = {}) @cli_options = cli_options @logger ||= Logger.new STDOUT aws_configuration[:logger] = Logger.new STDOUT if @cli_options[:verbose] @elasticloadbalancing = Aws::ElasticLoadBalancing::Resource.new aws_configuration @iam = Aws::IAM::Resource.new aws_configuration @region = aws_configuration[:region] end def list certlist = [] begin resp = @elasticloadbalancing.client.describe_load_balancers resp.load_balancer_descriptions.each do |elb| elb.listener_descriptions.each do |desc| p desc cert = ssl_certificate(desc.listener.ssl_certificate_id) if cert elbcert = ElbCert.new elbcert.aws_account_number = aws_account_number(desc.listener.ssl_certificate_id) elbcert.region = @region elbcert.elb_name = elb.load_balancer_name elbcert.elb_port = desc.listener.load_balancer_port elbcert.policy_names = desc.policy_names.join(',') elbcert.ssl_certificate_name = cert.name elbcert.signature_algorithm = OpenSSL::X509::Certificate.new(cert.certificate_body).signature_algorithm certlist << elbcert end end end rescue Aws::ElasticLoadBalancing::Errors::ServiceError => e @logger.err e end certlist end private def ssl_certificate(arn) @iam.server_certificates.find do |cert| cert.server_certificate_metadata.arn == arn end end def aws_account_number(arn) arn.split(':')[4] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cecha-0.3.0 | lib/cecha/client.rb |