Sha256: 6ee3925ceae2fea72e8b0d8a1f602bf1619d025174beb32b0b8358ec57237aac

Contents?: true

Size: 1.13 KB

Versions: 4

Compression:

Stored size: 1.13 KB

Contents

class Ufo::Cfn::Stack::Builder::Resources
  class ListenerSsl < Listener
    def build
      return unless vars[:create_listener_ssl]
      super
    end

    def properties
      props = super
      # CloudFormation has weird interface
      # Only one cert allowed at the AWS::ElasticLoadBalancingV2::Listener
      # https://stackoverflow.com/questions/54447250/how-to-set-multiple-certificates-for-awselasticloadbalancingv2listener
      props[:Certificates] = [certificates.first] # first one only
      props
    end

    def protocol
      vars[:default_listener_ssl_protocol]
    end

    def port
      Ufo.config.elb.ssl.port
    end

    # Do not use redirect settings. Only use by normal http listener
    def default_actions
      [default_action]
    end

    # nil on purpose
    def certificates
      ssl = Ufo.config.elb.ssl
      normalize(ssl.certificates) if ssl.certificates
    end

    def normalize(*certs)
      certs = certs.flatten.compact
      certs.map do |cert|
        if cert.is_a?(String)
          {CertificateArn: cert}
        else # Assume correct Hash structure
          cert
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ufo-6.3.9 lib/ufo/cfn/stack/builder/resources/listener_ssl.rb
ufo-6.3.8 lib/ufo/cfn/stack/builder/resources/listener_ssl.rb
ufo-6.3.7 lib/ufo/cfn/stack/builder/resources/listener_ssl.rb
ufo-6.3.6 lib/ufo/cfn/stack/builder/resources/listener_ssl.rb