diff --git a/lib/fog/aws/parsers/compute/describe_availability_zones.rb b/lib/fog/aws/parsers/compute/describe_availability_zones.rb index ab44cf0c7..e85612404 100644 --- a/lib/fog/aws/parsers/compute/describe_availability_zones.rb +++ b/lib/fog/aws/parsers/compute/describe_availability_zones.rb @@ -4,6 +4,13 @@ module Fog module AWS class DescribeAvailabilityZones < Fog::Parsers::Base + def start_element(name, attrs = []) + case name + when 'messageSet' + @in_message_set = true + end + super + end def reset @availability_zone = { 'messageSet' => [] } @@ -13,14 +20,18 @@ module Fog def end_element(name) case name when 'item' - @response['availabilityZoneInfo'] << @availability_zone - @availability_zone = { 'messageSet' => [] } + unless @in_message_set + @response['availabilityZoneInfo'] << @availability_zone + @availability_zone = { 'messageSet' => [] } + end when 'message' @availability_zone['messageSet'] << value when 'regionName', 'zoneName', 'zoneState' @availability_zone[name] = value when 'requestId' @response[name] = value + when 'messageSet' + @in_message_set = false end end