Class: EC2::DescribeInstancesResponse

Inherits:
Response
  • Object
show all
Defined in:
lib/EC2/responses.rb

Constant Summary collapse

ELEMENT_XPATH =
"DescribeInstancesResponse/reservationSet/item"

Constants inherited from Response

Response::ERROR_XPATH

Instance Attribute Summary

Attributes inherited from Response

#http_response, #http_xml, #structure

Instance Method Summary collapse

Methods inherited from Response

#initialize, #is_error?, #parse_error, #to_s

Constructor Details

This class inherits a constructor from EC2::Response

Instance Method Details

#parseObject



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/EC2/responses.rb', line 172

def parse
  doc = REXML::Document.new(@http_xml)
  lines = []
  
  doc.elements.each(ELEMENT_XPATH) do |rootelement|
    reservationId = REXML::XPath.first(rootelement, "reservationId").text
    ownerId = REXML::XPath.first(rootelement, "ownerId").text
    groups = nil
    rootelement.elements.each("groupSet/item/groupId") do |element|
      if not groups
        groups = element.text
      else
        groups += "," + element.text
      end
    end
    lines << ["RESERVATION", reservationId, ownerId, groups]
    
    rootelement.elements.each("instancesSet/item") do |element|
      instanceId = REXML::XPath.first(element, "instanceId").text
      imageId = REXML::XPath.first(element, "imageId").text
      instanceState = REXML::XPath.first(element, "instanceState/name").text
      # Only for debug mode, which we don't support yet:
      instanceStateCode = REXML::XPath.first(element, "instanceState/code").text
      dnsName = REXML::XPath.first(element, "dnsName").text
      # We don't return this, but still:
      reason = REXML::XPath.first(element, "reason").text
      lines << ["INSTANCE", instanceId, imageId, dnsName, instanceState]
    end
  end
  lines
end