mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
fixes for describe_instances, unfortunately sax is choking
This commit is contained in:
parent
17edeac776
commit
76e476c4d9
2 changed files with 30 additions and 13 deletions
|
@ -6,19 +6,15 @@ module Fog
|
||||||
class DescribeInstances < Fog::Parsers::Base
|
class DescribeInstances < Fog::Parsers::Base
|
||||||
|
|
||||||
def reset
|
def reset
|
||||||
@instance = { :instance_state => {}, :placement => [], :product_code_set => [] }
|
@instance = { :instance_state => {}, :monitoring => {}, :placement => [], :product_codes => [] }
|
||||||
@reservation = { :group_set => [], :instances_set => [] }
|
@reservation = { :group_set => [], :instances_set => [] }
|
||||||
@response = { :reservation_set => [] }
|
@response = { :reservation_set => [] }
|
||||||
end
|
end
|
||||||
|
|
||||||
def start_element(name, attrs = [])
|
def start_element(name, attrs = [])
|
||||||
if name == 'groupSet'
|
if name == 'groupSet' || name == 'productCodes'
|
||||||
@in_subset = true
|
@in_subset = true
|
||||||
end
|
elsif name == 'instancesSet'
|
||||||
if name == 'productCodeSet'
|
|
||||||
@in_subset = true
|
|
||||||
end
|
|
||||||
if name == 'instanceSet'
|
|
||||||
@in_instances_set = true
|
@in_instances_set = true
|
||||||
end
|
end
|
||||||
@value = ''
|
@value = ''
|
||||||
|
@ -32,7 +28,7 @@ module Fog
|
||||||
@instance[:placement] << @value
|
@instance[:placement] << @value
|
||||||
when 'code'
|
when 'code'
|
||||||
@instance[:instance_state][:code] = @value
|
@instance[:instance_state][:code] = @value
|
||||||
when 'dnsNmae'
|
when 'dnsName'
|
||||||
@instance[:dns_name] = @value
|
@instance[:dns_name] = @value
|
||||||
when 'groupId'
|
when 'groupId'
|
||||||
@reservation[:group_set] << @value
|
@reservation[:group_set] << @value
|
||||||
|
@ -49,10 +45,10 @@ module Fog
|
||||||
when 'item'
|
when 'item'
|
||||||
if @in_instances_set
|
if @in_instances_set
|
||||||
@reservation[:instances_set] << @instance
|
@reservation[:instances_set] << @instance
|
||||||
@instance = { :instance_state => {}, :placement => [], :product_code_set => [] }
|
@instance = { :instance_state => {}, :monitoring => {}, :placement => [], :product_codes => [] }
|
||||||
elsif !@in_subset
|
elsif !@in_subset
|
||||||
@response[:reservation_set] << @reservation
|
@response[:reservation_set] << @reservation
|
||||||
@reservation = { :group_set => [], :instance_set => [] }
|
@reservation = { :group_set => [], :instances_set => [] }
|
||||||
end
|
end
|
||||||
when 'kernelId'
|
when 'kernelId'
|
||||||
@instance[:kernel_id] = @value
|
@instance[:kernel_id] = @value
|
||||||
|
@ -64,6 +60,10 @@ module Fog
|
||||||
@instance[:instance_state][:name] = @value
|
@instance[:instance_state][:name] = @value
|
||||||
when 'ownerId'
|
when 'ownerId'
|
||||||
@reservation[:owner_id] = @value
|
@reservation[:owner_id] = @value
|
||||||
|
when 'ramdiskId'
|
||||||
|
@instance[:ramdisk_id] = @value
|
||||||
|
when 'reason'
|
||||||
|
@instance[:reason] = @value
|
||||||
when 'requestId'
|
when 'requestId'
|
||||||
@response[:request_id] = @value
|
@response[:request_id] = @value
|
||||||
when 'reservationId'
|
when 'reservationId'
|
||||||
|
@ -71,11 +71,17 @@ module Fog
|
||||||
when 'privateDnsName'
|
when 'privateDnsName'
|
||||||
@instance[:private_dns_name] = @value
|
@instance[:private_dns_name] = @value
|
||||||
when 'productCode'
|
when 'productCode'
|
||||||
@instance[:product_code_set] << @value
|
@instance[:product_codes] << @value
|
||||||
when 'productCodeSet'
|
when 'productCodes'
|
||||||
@in_subset = false
|
@in_subset = false
|
||||||
when 'ramdiskId'
|
when 'ramdiskId'
|
||||||
@instance[:ramdisk_id] = @value
|
@instance[:ramdisk_id] = @value
|
||||||
|
when 'state'
|
||||||
|
if @value == 'true'
|
||||||
|
@instance[:monitoring][:state] = true
|
||||||
|
else
|
||||||
|
@instance[:monitoring][:state] = false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,21 @@ require File.dirname(__FILE__) + '/../../spec_helper'
|
||||||
|
|
||||||
describe 'EC2.describe_instances' do
|
describe 'EC2.describe_instances' do
|
||||||
|
|
||||||
|
before(:all) do
|
||||||
|
run_instances = ec2.run_instances('ami-5ee70037', 1, 1).body
|
||||||
|
@instance_id = run_instances[:instances_set].first[:instance_id]
|
||||||
|
@reservation_id = run_instances[:reservation_id]
|
||||||
|
end
|
||||||
|
|
||||||
|
after(:all) do
|
||||||
|
ec2.terminate_instances([@instance_id])
|
||||||
|
end
|
||||||
|
|
||||||
it "should return proper attributes with no params" do
|
it "should return proper attributes with no params" do
|
||||||
pending
|
|
||||||
actual = ec2.describe_instances
|
actual = ec2.describe_instances
|
||||||
p actual
|
p actual
|
||||||
|
# reservation = actual.body[:reservation_set].select {|reservation| reservation[:reservation_id] == @reservation_id}
|
||||||
|
# instance = reservation[:instances_set].select {|instance| instance[:instance_id] == @instance_id}
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should return proper attributes with params"
|
it "should return proper attributes with params"
|
||||||
|
|
Loading…
Add table
Reference in a new issue