diff --git a/lib/fog/aws/parsers/elbv2/describe_listeners.rb b/lib/fog/aws/parsers/elbv2/describe_listeners.rb index 5fe508635..523941ab4 100644 --- a/lib/fog/aws/parsers/elbv2/describe_listeners.rb +++ b/lib/fog/aws/parsers/elbv2/describe_listeners.rb @@ -6,12 +6,13 @@ module Fog def reset reset_listener @default_action = {} + @certificate = {} @results = { 'Listeners' => [] } @response = { 'DescribeListenersResult' => {}, 'ResponseMetadata' => {} } end def reset_listener - @listener= { 'DefaultActions' => [] } + @listener= { 'DefaultActions' => [], 'Certificates' => [] } end def start_element(name, attrs = []) @@ -19,6 +20,8 @@ module Fog case name when 'DefaultActions' @in_default_actions = true + when 'Certificates' + @in_certificates = true end end @@ -28,6 +31,9 @@ module Fog if @in_default_actions @listener['DefaultActions'] << @default_action @default_action = {} + elsif @in_certificates + @listener['Certificates'] << @certificate + @certificate = {} else @results['Listeners'] << @listener reset_listener @@ -36,9 +42,13 @@ module Fog @listener[name] = value when 'Type', 'TargetGroupArn' @default_action[name] = value + when 'CertificateArn' + @certificate[name] = value when 'DefaultActions' @in_default_actions = false + when 'Certificates' + @in_certificates = false when 'RequestId' @response['ResponseMetadata'][name] = value diff --git a/tests/parsers/elbv2/describe_listeners_tests.rb b/tests/parsers/elbv2/describe_listeners_tests.rb index efafe82af..4d7063cae 100644 --- a/tests/parsers/elbv2/describe_listeners_tests.rb +++ b/tests/parsers/elbv2/describe_listeners_tests.rb @@ -7,7 +7,7 @@ DESCRIBE_LISTENERS_RESULT = <<-EOF arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 - HTTP + HTTPS 80 arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2 @@ -16,6 +16,11 @@ DESCRIBE_LISTENERS_RESULT = <<-EOF arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 + + + arn:aws:elasticloadbalancing:us-west-2:123456789012:certificate/56d36256-1245-40d6-916e-6f5a95e2b4c6 + + diff --git a/tests/requests/elbv2/helper.rb b/tests/requests/elbv2/helper.rb index 7779e53d3..bf1165c76 100644 --- a/tests/requests/elbv2/helper.rb +++ b/tests/requests/elbv2/helper.rb @@ -26,12 +26,17 @@ class AWS 'DescribeLoadBalancersResult' => {'LoadBalancers' => [LOAD_BALANCER], 'NextMarker' => Fog::Nullable::String} }) + CREATE_LOAD_BALANCER = BASIC.merge({ + 'CreateLoadBalancerResult' => {'LoadBalancers' => [LOAD_BALANCER], 'NextMarker' => Fog::Nullable::String} + }) + LISTENER = { "LoadBalancerArn" => String, "Protocol" => String, "Port" => String, "ListenerArn" => String, - "DefaultActions" => [{"Type" => String, "TargetGroupArn" => String}] + "DefaultActions" => [{"Type" => String, "TargetGroupArn" => String}], + "Certificates" => [{"CertificateArn" => String}] } DESCRIBE_LISTENERS = BASIC.merge({