class Cumulus::ELB::ListenerConfig

Public: An object representing configuration for a listener

Attributes

instance_port[R]
instance_protocol[R]
load_balancer_port[R]
load_balancer_protocol[R]
policies[R]
ssl_certificate_id[R]

Public Class Methods

new(json = nil) click to toggle source

Public: Constructor

json - a hash containing the JSON configuration for the listener

# File lib/elb/models/ListenerConfig.rb, line 19
def initialize(json = nil)
  if !json.nil?
    @load_balancer_protocol = json["load-balancer-protocol"]
    @load_balancer_port = json["load-balancer-port"]
    @instance_protocol = json["instance-protocol"]
    @instance_port = json["instance-port"]
    @ssl_certificate_id = json["ssl-certificate-id"]
    @policies = json["policies"] || []
  end
end

Public Instance Methods

diff(aws) click to toggle source

Public: Produce an array of differences between this local configuration and the configuration in AWS

aws - the AWS resource

Returns an array of the ListenerDiffs that were found

# File lib/elb/models/ListenerConfig.rb, line 66
def diff(aws)
  diffs = []

  if @load_balancer_protocol != aws.listener.protocol
    diffs << ListenerDiff.new(ListenerChange::LB_PROTOCOL, aws.listener.protocol, @load_balancer_protocol)
  end

  if @load_balancer_port != aws.listener.load_balancer_port
    diffs << ListenerDiff.new(ListenerChange::LB_PORT, aws.listener.load_balancer_port, @load_balancer_port)
  end

  if @instance_protocol != aws.listener.instance_protocol
    diffs << ListenerDiff.new(ListenerChange::INST_PROTOCOL, aws.listener.instance_protocol, @instance_protocol)
  end

  if @instance_port != aws.listener.instance_port
    diffs << ListenerDiff.new(ListenerChange::INST_PORT, aws.listener.instance_port, @instance_port)
  end

  if @ssl_certificate_id != aws.listener.ssl_certificate_id
    diffs << ListenerDiff.new(ListenerChange::SSL, aws.listener.ssl_certificate_id, @ssl_certificate_id)
  end

  if @policies.sort != aws.policy_names.sort
    diffs << ListenerDiff.policies(aws.policy_names, @policies)
  end

  diffs
end
populate!(aws) click to toggle source
# File lib/elb/models/ListenerConfig.rb, line 51
def populate!(aws)
  @load_balancer_protocol = aws.listener.protocol
  @load_balancer_port = aws.listener.load_balancer_port
  @instance_protocol = aws.listener.instance_protocol
  @instance_port = aws.listener.instance_port
  @ssl_certificate_id = aws.listener.ssl_certificate_id
  @policies = aws.policy_names
end
to_aws() click to toggle source
# File lib/elb/models/ListenerConfig.rb, line 41
def to_aws
  {
    protocol: @load_balancer_protocol,
    load_balancer_port: @load_balancer_port,
    instance_protocol: @instance_protocol,
    instance_port: @instance_port,
    ssl_certificate_id: @ssl_certificate_id,
  }.reject { |k, v| v.nil? }
end
to_hash() click to toggle source
# File lib/elb/models/ListenerConfig.rb, line 30
def to_hash
  {
    "load-balancer-protocol" => @load_balancer_protocol,
    "load-balancer-port" => @load_balancer_port,
    "instance-protocol" => @instance_protocol,
    "instance-port" => @instance_port,
    "ssl-certificate-id" => @ssl_certificate_id,
    "policies" => @policies,
  }.reject { |k, v| v.nil? }
end