You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by lu...@redhat.com on 2012/08/29 01:35:32 UTC
EC2: launch instances into a VPC (rev 2)
rev2
----
This time with tests, and with rerecordings so that existing tests don't
break.
rev1
----
As recently discussed, these patches make it possible to launch instances
into a subnet in a VPC in EC2.
Subnets appear as new realms with the name AZ:SN where AZ is the
availability zone (e.g., us-east-1a) to which the subnet is attached, and
SN is the subnet ID.
When such a realm is supplied to the create instances call, the SubnetID is
sent to EC2, placing the instane in that subnet.
Note that you can not provide a security group when launching into a VPC,
which makes the current HTML UI a little awkward, in that you have to
uncheck the 'default' security group in the UI under 'Additional
Parameters'
The VPC functionality requires some additional mappings from the AWS gem,
which I have sent upstream[1] - until they are in a released AWS gem, I am
including a monkey patch that puts them into the AWS::Ec2 class.
David
Re: EC2: launch instances into a VPC (rev 2)
Posted by David Lutterkort <lu...@redhat.com>.
On Thu, 2012-08-30 at 12:01 +0200, Michal Fojtik wrote:
> On Aug 30, 2012, at 12:35 AM, David Lutterkort <lu...@redhat.com> wrote:
>
> > On Wed, 2012-08-29 at 11:55 +0200, Michal Fojtik wrote:
> >> Attached patch seems to fix that. Also I got some warnings in tests:
> >>
> >> <snip>
> >> instance_test.rb:94: warning: class variable access from toplevel
> >> instance_test.rb:94: warning: class variable access from toplevel
> >> </snip>
> >>
> >> But that is safe to ignore IMHO.
> >>
> >> ACK if you include my patch ;]
> >
> > I'd love to .. alas, no attachment ;)
>
> Weird, I swear I attached it :) I uploaded it for sure here:
>
> http://omicron.mifo.sk/0001-EC2-Fix-describe_availability_zones-method-under-MRI.patch
>
> -- Michal
Thanks .. pushed with that change.
David
Re: EC2: launch instances into a VPC (rev 2)
Posted by Michal Fojtik <mf...@redhat.com>.
On Aug 30, 2012, at 12:35 AM, David Lutterkort <lu...@redhat.com> wrote:
> On Wed, 2012-08-29 at 11:55 +0200, Michal Fojtik wrote:
>> Attached patch seems to fix that. Also I got some warnings in tests:
>>
>> <snip>
>> instance_test.rb:94: warning: class variable access from toplevel
>> instance_test.rb:94: warning: class variable access from toplevel
>> </snip>
>>
>> But that is safe to ignore IMHO.
>>
>> ACK if you include my patch ;]
>
> I'd love to .. alas, no attachment ;)
Weird, I swear I attached it :) I uploaded it for sure here:
http://omicron.mifo.sk/0001-EC2-Fix-describe_availability_zones-method-under-MRI.patch
-- Michal
Michal Fojtik
http://deltacloud.org
mfojtik@redhat.com
Re: EC2: launch instances into a VPC (rev 2)
Posted by David Lutterkort <lu...@redhat.com>.
On Wed, 2012-08-29 at 11:55 +0200, Michal Fojtik wrote:
> Attached patch seems to fix that. Also I got some warnings in tests:
>
> <snip>
> instance_test.rb:94: warning: class variable access from toplevel
> instance_test.rb:94: warning: class variable access from toplevel
> </snip>
>
> But that is safe to ignore IMHO.
>
> ACK if you include my patch ;]
I'd love to .. alas, no attachment ;)
David
Re: EC2: launch instances into a VPC (rev 2)
Posted by Michal Fojtik <mf...@redhat.com>.
On Aug 29, 2012, at 1:35 AM, lutter@redhat.com wrote:
Hi,
This set looks cool, however I still got two errors when running
tests on 1.9:
<snip>
test_0003_must allow to filter realms(Ec2Driver Realms):
Deltacloud::ExceptionHandler::ProviderError: undefined method `to_a' for "us-east-1a":String
/Users/mfojtik/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/aws-2.5.6/lib/ec2/ec2.rb:1119:in `describe_availability_zones'
/Users/mfojtik/code/core/server/lib/deltacloud/drivers/ec2/ec2_driver.rb:184:in `block in realms'
</snip>
Attached patch seems to fix that. Also I got some warnings in tests:
<snip>
instance_test.rb:94: warning: class variable access from toplevel
instance_test.rb:94: warning: class variable access from toplevel
</snip>
But that is safe to ignore IMHO.
ACK if you include my patch ;]
[PATCH 3/3] EC2: allow launching instances into a subnet
Posted by lu...@redhat.com.
From: David Lutterkort <lu...@redhat.com>
---
server/lib/deltacloud/drivers/ec2/ec2_driver.rb | 15 +-
.../drivers/ec2/fixtures/create_resources.yml | 36 +-
.../drivers/ec2/fixtures/destroy_resources.yml | 30 +-
.../test_0005_must_list_VPC_subnets_as_realms.yml | 42 ++-
...ust_allow_creating_instance_in_a_VPC_subnet.yml | 192 +++++++++
...llow_to_reboot_instance_in_running_state-10.yml | 76 ----
...allow_to_reboot_instance_in_running_state-7.yml | 88 -----
...allow_to_reboot_instance_in_running_state-8.yml | 88 -----
...allow_to_reboot_instance_in_running_state-9.yml | 88 -----
...reboot_instance_in_running_state-stopped-10.yml | 92 -----
...t_allow_to_reboot_instance_in_running_state.yml | 411 --------------------
...llow_to_reboot_instance_in_running_state-10.yml | 76 ++++
...allow_to_reboot_instance_in_running_state-8.yml | 88 +++++
...allow_to_reboot_instance_in_running_state-9.yml | 76 ++++
...reboot_instance_in_running_state-stopped-10.yml | 92 +++++
...t_allow_to_reboot_instance_in_running_state.yml | 411 ++++++++++++++++++++
...allow_to_reboot_instance_in_running_state-9.yml | 88 +++++
server/tests/drivers/ec2/instance_test.rb | 10 +
18 files changed, 1104 insertions(+), 895 deletions(-)
create mode 100644 server/tests/drivers/ec2/fixtures/test_0007_must_allow_creating_instance_in_a_VPC_subnet.yml
delete mode 100644 server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-10.yml
delete mode 100644 server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-7.yml
delete mode 100644 server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-8.yml
delete mode 100644 server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-9.yml
delete mode 100644 server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-stopped-10.yml
delete mode 100644 server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state.yml
create mode 100644 server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-10.yml
create mode 100644 server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-8.yml
create mode 100644 server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-9.yml
create mode 100644 server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-stopped-10.yml
create mode 100644 server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state.yml
create mode 100644 server/tests/drivers/ec2/fixtures/test_0009_must_allow_to_reboot_instance_in_running_state-9.yml
diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index 31fcfa5..b275f98 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -263,8 +263,15 @@ module Deltacloud
if opts[:metrics] and !opts[:metrics].empty?
instance_options[:monitoring_enabled] = true
end
+ if opts[:realm_id]
+ az, sn = opts[:realm_id].split(":")
+ if sn
+ instance_options[:subnet_id] = sn
+ else
+ instance_options[:availability_zone] = az
+ end
+ end
instance_options[:key_name] = opts[:keyname] if opts[:keyname]
- instance_options[:availability_zone] = opts[:realm_id] if opts[:realm_id]
instance_options[:instance_type] = opts[:hwp_id] if opts[:hwp_id] && opts[:hwp_id].length > 0
firewalls = opts.inject([]){|res, (k,v)| res << v if k =~ /firewalls\d+$/; res}
instance_options[:group_ids] = firewalls unless firewalls.empty?
@@ -919,6 +926,10 @@ module Deltacloud
if instance[:aws_instance_type] == "t1.micro"
inst_profile_opts[:hwp_architecture]=instance[:architecture]
end
+ realm_id = instance[:aws_availability_zone]
+ unless instance[:subnet_id].empty?
+ realm_id = "#{realm_id}:#{instance[:subnet_id]}"
+ end
Instance.new(
:id => instance[:aws_instance_id],
:name => instance[:aws_image_id],
@@ -929,7 +940,7 @@ module Deltacloud
:keyname => instance[:ssh_key_name],
:launch_time => instance[:aws_launch_time],
:instance_profile => InstanceProfile.new(instance[:aws_instance_type], inst_profile_opts),
- :realm_id => instance[:aws_availability_zone],
+ :realm_id => realm_id,
:public_addresses => [InstanceAddress.new(instance[:dns_name], :type => :hostname)],
:private_addresses => [InstanceAddress.new(instance[:private_dns_name], :type => :hostname)],
:firewalls => instance[:aws_groups],
diff --git a/server/tests/drivers/ec2/fixtures/create_resources.yml b/server/tests/drivers/ec2/fixtures/create_resources.yml
index fb14d7b..85ea7c0 100644
--- a/server/tests/drivers/ec2/fixtures/create_resources.yml
+++ b/server/tests/drivers/ec2/fixtures/create_resources.yml
@@ -1,8 +1,9 @@
---
+recorded_with: VCR 2.2.4
http_interactions:
- request:
method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=CreateVpc&CidrBlock=172.16.0.0/16&Signature=1v+DVE5pE5wAGscby85h5Phi5O5OEl+3WgxOn/BgNaE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:42.000Z&Version=2010-08-31
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=CreateVpc&CidrBlock=172.16.0.0/16&Signature=62kOuCAxVbNEYwqtW1kFLpUEVu4eJk91xpk3InvdGsY=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:23:35.000Z&Version=2010-08-31
body:
string: ""
headers:
@@ -15,31 +16,31 @@ http_interactions:
code: 200
message: OK
headers:
- Server:
- - AmazonEC2
+ Date:
+ - Tue, 28 Aug 2012 23:23:36 GMT
Transfer-Encoding:
- chunked
- Date:
- - Tue, 28 Aug 2012 22:36:42 GMT
Content-Type:
- text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
<CreateVpcResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>12201e58-4637-4663-a0da-a9c3bcf49d5c</requestId>
+ <requestId>b4feaef5-9df4-4f49-8e61-83b95f78684a</requestId>
<vpc>
- <vpcId>vpc-6a952301</vpcId>
+ <vpcId>vpc-a276c0c9</vpcId>
<state>pending</state>
<cidrBlock>172.16.0.0/16</cidrBlock>
<dhcpOptionsId>default</dhcpOptionsId>
</vpc>
</CreateVpcResponse>
http_version:
- recorded_at: Tue, 28 Aug 2012 22:36:42 GMT
+ recorded_at: Tue, 28 Aug 2012 23:23:36 GMT
- request:
method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=CreateSubnet&AvailabilityZone=us-east-1b&CidrBlock=172.16.3.0/24&Signature=EIzFCEEuL0/0E/GVatWByMC0qybmPTw0+kd2xHnOGuw=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:42.000Z&Version=2010-08-31&VpcId=vpc-6a952301
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=CreateSubnet&AvailabilityZone=us-east-1b&CidrBlock=172.16.3.0/24&Signature=0K1m0h3jPi5++y2eYjVPf/tbX3iD1+XzALm8gtiG57M=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:23:36.000Z&Version=2010-08-31&VpcId=vpc-a276c0c9
body:
string: ""
headers:
@@ -52,28 +53,27 @@ http_interactions:
code: 200
message: OK
headers:
- Server:
- - AmazonEC2
+ Date:
+ - Tue, 28 Aug 2012 23:23:36 GMT
Transfer-Encoding:
- chunked
- Date:
- - Tue, 28 Aug 2012 22:36:43 GMT
Content-Type:
- text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
<CreateSubnetResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>e3939c15-3c67-4e33-b1d8-88242dd2317c</requestId>
+ <requestId>8e6c33e3-f805-46ba-801e-2ca76cf1b3e5</requestId>
<subnet>
- <subnetId>subnet-62952309</subnetId>
+ <subnetId>subnet-a676c0cd</subnetId>
<state>pending</state>
- <vpcId>vpc-6a952301</vpcId>
+ <vpcId>vpc-a276c0c9</vpcId>
<cidrBlock>172.16.3.0/24</cidrBlock>
<availableIpAddressCount>251</availableIpAddressCount>
<availabilityZone>us-east-1b</availabilityZone>
</subnet>
</CreateSubnetResponse>
http_version:
- recorded_at: Tue, 28 Aug 2012 22:36:43 GMT
-recorded_with: VCR 2.2.4
+ recorded_at: Tue, 28 Aug 2012 23:23:36 GMT
diff --git a/server/tests/drivers/ec2/fixtures/destroy_resources.yml b/server/tests/drivers/ec2/fixtures/destroy_resources.yml
index 61020fa..1e9784f 100644
--- a/server/tests/drivers/ec2/fixtures/destroy_resources.yml
+++ b/server/tests/drivers/ec2/fixtures/destroy_resources.yml
@@ -1,8 +1,9 @@
---
+recorded_with: VCR 2.2.4
http_interactions:
- request:
method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DeleteSubnet&Signature=kpx0IU+viAUHCJMSNE+VAc/Hl0oqHdr08cFN7jwJW38=&SignatureMethod=HmacSHA256&SignatureVersion=2&SubnetId=subnet-62952309&Timestamp=2012-08-28T22:36:45.000Z&Version=2010-08-31
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DeleteSubnet&Signature=a4Q/5UWqc9RjkMvHxay5BIx2Hi5wASHEH1snK5KLruQ=&SignatureMethod=HmacSHA256&SignatureVersion=2&SubnetId=subnet-a676c0cd&Timestamp=2012-08-28T23:25:25.000Z&Version=2010-08-31
body:
string: ""
headers:
@@ -15,26 +16,26 @@ http_interactions:
code: 200
message: OK
headers:
- Server:
- - AmazonEC2
+ Date:
+ - Tue, 28 Aug 2012 23:25:25 GMT
Transfer-Encoding:
- chunked
- Date:
- - Tue, 28 Aug 2012 22:36:46 GMT
Content-Type:
- text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
<DeleteSubnetResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>342eac4f-3687-4d89-92b7-0484b618947e</requestId>
+ <requestId>6797ff99-f447-4011-b5ac-7550fd4b16de</requestId>
<return>true</return>
</DeleteSubnetResponse>
http_version:
- recorded_at: Tue, 28 Aug 2012 22:36:46 GMT
+ recorded_at: Tue, 28 Aug 2012 23:25:26 GMT
- request:
method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DeleteVpc&Signature=OzOLWsGU2ZIwhaA46jecA/wwUeV+hFMu9d1XeUysvG0=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:46.000Z&Version=2010-08-31&VpcId=vpc-6a952301
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DeleteVpc&Signature=5khnoyyAahGeiGBPdWIxWJl/NITCPVvCb3QYyRJVK1A=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:26.000Z&Version=2010-08-31&VpcId=vpc-a276c0c9
body:
string: ""
headers:
@@ -47,21 +48,20 @@ http_interactions:
code: 200
message: OK
headers:
- Server:
- - AmazonEC2
+ Date:
+ - Tue, 28 Aug 2012 23:25:26 GMT
Transfer-Encoding:
- chunked
- Date:
- - Tue, 28 Aug 2012 22:36:46 GMT
Content-Type:
- text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
<DeleteVpcResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>d3b55d09-5ece-4b07-a81a-5e9ef3b1d750</requestId>
+ <requestId>596e3e6f-0aa3-44f2-94ff-5b3959fed84b</requestId>
<return>true</return>
</DeleteVpcResponse>
http_version:
- recorded_at: Tue, 28 Aug 2012 22:36:47 GMT
-recorded_with: VCR 2.2.4
+ recorded_at: Tue, 28 Aug 2012 23:25:26 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml b/server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml
index fdce4eb..3cb6039 100644
--- a/server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml
+++ b/server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml
@@ -1,8 +1,9 @@
---
+recorded_with: VCR 2.2.4
http_interactions:
- request:
method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeAvailabilityZones&Signature=v93MQI1cGoYMFByjuzOvr9DZAbE50n6cNkgTf4g8rJs=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:44.000Z&Version=2010-08-31
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeAvailabilityZones&Signature=ubo/K69ZBrM5BTXwk5mcGytDQ2KSbwHD2hWLh67rejw=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:07.000Z&Version=2010-08-31
body:
string: ""
headers:
@@ -15,19 +16,19 @@ http_interactions:
code: 200
message: OK
headers:
- Server:
- - AmazonEC2
+ Date:
+ - Tue, 28 Aug 2012 23:25:06 GMT
Transfer-Encoding:
- chunked
- Date:
- - Tue, 28 Aug 2012 22:36:45 GMT
Content-Type:
- text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
<DescribeAvailabilityZonesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>aa77686e-b8b2-4870-8f1e-6232077dbade</requestId>
+ <requestId>9ffa9aed-b47f-4a5a-96ab-1c6e554e0cb0</requestId>
<availabilityZoneInfo>
<item>
<zoneName>us-east-1a</zoneName>
@@ -56,10 +57,10 @@ http_interactions:
</availabilityZoneInfo>
</DescribeAvailabilityZonesResponse>
http_version:
- recorded_at: Tue, 28 Aug 2012 22:36:45 GMT
+ recorded_at: Tue, 28 Aug 2012 23:25:07 GMT
- request:
method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeSubnets&Signature=r2v7oE4F8OoTHhXc1NYAdJTr6giszS8MSsQ7prKHM4g=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:45.000Z&Version=2010-08-31
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeSubnets&Signature=li4JSzmstzaJIi+7xN5T9sHaPEKIuqAjn4As7Gz8TfU=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:07.000Z&Version=2010-08-31
body:
string: ""
headers:
@@ -72,21 +73,29 @@ http_interactions:
code: 200
message: OK
headers:
- Server:
- - AmazonEC2
+ Date:
+ - Tue, 28 Aug 2012 23:25:07 GMT
Transfer-Encoding:
- chunked
- Date:
- - Tue, 28 Aug 2012 22:36:45 GMT
Content-Type:
- text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
<DescribeSubnetsResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>c95921ad-17a4-4262-b877-2d357f6873f6</requestId>
+ <requestId>c0d2d063-8928-439c-a0cf-daabc07e7e5f</requestId>
<subnetSet>
<item>
+ <subnetId>subnet-6a9a2c01</subnetId>
+ <state>available</state>
+ <vpcId>vpc-979d2bfc</vpcId>
+ <cidrBlock>172.16.3.0/24</cidrBlock>
+ <availableIpAddressCount>251</availableIpAddressCount>
+ <availabilityZone>us-east-1b</availabilityZone>
+ </item>
+ <item>
<subnetId>subnet-dd5bfcb6</subnetId>
<state>available</state>
<vpcId>vpc-0b40e760</vpcId>
@@ -95,9 +104,9 @@ http_interactions:
<availabilityZone>us-east-1a</availabilityZone>
</item>
<item>
- <subnetId>subnet-62952309</subnetId>
+ <subnetId>subnet-a676c0cd</subnetId>
<state>available</state>
- <vpcId>vpc-6a952301</vpcId>
+ <vpcId>vpc-a276c0c9</vpcId>
<cidrBlock>172.16.3.0/24</cidrBlock>
<availableIpAddressCount>251</availableIpAddressCount>
<availabilityZone>us-east-1b</availabilityZone>
@@ -105,5 +114,4 @@ http_interactions:
</subnetSet>
</DescribeSubnetsResponse>
http_version:
- recorded_at: Tue, 28 Aug 2012 22:36:45 GMT
-recorded_with: VCR 2.2.4
+ recorded_at: Tue, 28 Aug 2012 23:25:08 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_creating_instance_in_a_VPC_subnet.yml b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_creating_instance_in_a_VPC_subnet.yml
new file mode 100644
index 0000000..97ad021
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_creating_instance_in_a_VPC_subnet.yml
@@ -0,0 +1,192 @@
+---
+recorded_with: VCR 2.2.4
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=RunInstances&AddressingType=public&ImageId=ami-aecd60c7&InstanceType=m1.small&MaxCount=1&MinCount=1&Signature=8KuMolwNObUd9CL93vD9hi/dLwMOLpdUioRuVSbLnhg=&SignatureMethod=HmacSHA256&SignatureVersion=2&SubnetId=subnet-a676c0cd&Timestamp=2012-08-28T23:24:34.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:24:35 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <RunInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>af525302-cdcb-47a5-b9bc-1d9b0743b46f</requestId>
+ <reservationId>r-39f4045e</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet/>
+ <instancesSet>
+ <item>
+ <instanceId>i-9c8b63e6</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>0</code>
+ <name>pending</name>
+ </instanceState>
+ <privateDnsName/>
+ <dnsName/>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>m1.small</instanceType>
+ <launchTime>2012-08-28T23:24:35.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1b</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <subnetId>subnet-a676c0cd</subnetId>
+ <vpcId>vpc-a276c0c9</vpcId>
+ <privateIpAddress>172.16.3.53</privateIpAddress>
+ <stateReason>
+ <code>pending</code>
+ <message>pending</message>
+ </stateReason>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping/>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </RunInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:24:35 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=TerminateInstances&InstanceId.1=i-9c8b63e6&Signature=MCDFU/zjM7SzZRsIsmn5pdrcb66dYcLsj8o4741mACU=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:24:36.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:24:36 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <TerminateInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>76d82ca5-79ee-4e77-a7a7-f5d20d016228</requestId>
+ <instancesSet>
+ <item>
+ <instanceId>i-9c8b63e6</instanceId>
+ <currentState>
+ <code>32</code>
+ <name>shutting-down</name>
+ </currentState>
+ <previousState>
+ <code>0</code>
+ <name>pending</name>
+ </previousState>
+ </item>
+ </instancesSet>
+ </TerminateInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:24:36 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-9c8b63e6&Signature=Gj7jewLjorlJWC42TDAkXcG5AnX4AwrmmXHQicnzuK4=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:24:36.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:24:37 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>0781fc7a-4676-4eb5-b619-932f99b1544f</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-39f4045e</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet/>
+ <instancesSet>
+ <item>
+ <instanceId>i-9c8b63e6</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>48</code>
+ <name>terminated</name>
+ </instanceState>
+ <privateDnsName/>
+ <dnsName/>
+ <reason>User initiated (2012-08-28 23:24:36 GMT)</reason>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>m1.small</instanceType>
+ <launchTime>2012-08-28T23:24:35.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1b</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <stateReason>
+ <code>Client.UserInitiatedShutdown</code>
+ <message>Client.UserInitiatedShutdown: User initiated shutdown</message>
+ </stateReason>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping/>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:24:37 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-10.yml b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-10.yml
deleted file mode 100644
index c8f0776..0000000
--- a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-10.yml
+++ /dev/null
@@ -1,76 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:18 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>5e2c9e6e-25f1-4874-8370-e3a4791d19b2</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>0</code>
- <name>pending</name>
- </instanceState>
- <privateDnsName/>
- <dnsName/>
- <reason/>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping/>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-7.yml b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-7.yml
deleted file mode 100644
index 20af4ba..0000000
--- a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-7.yml
+++ /dev/null
@@ -1,88 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:51 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>98f9d892-c605-4f89-b06f-5ff2841a3964</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>16</code>
- <name>running</name>
- </instanceState>
- <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
- <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
- <reason/>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <privateIpAddress>10.248.122.144</privateIpAddress>
- <ipAddress>23.20.114.135</ipAddress>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping>
- <item>
- <deviceName>/dev/sda1</deviceName>
- <ebs>
- <volumeId>vol-ba6f60db</volumeId>
- <status>attached</status>
- <attachTime>2012-07-30T11:07:42.000Z</attachTime>
- <deleteOnTermination>true</deleteOnTermination>
- </ebs>
- </item>
- </blockDeviceMapping>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-8.yml b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-8.yml
deleted file mode 100644
index d199283..0000000
--- a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-8.yml
+++ /dev/null
@@ -1,88 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:40 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>979b5d58-f354-45c4-9d83-24eedc45d653</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>0</code>
- <name>pending</name>
- </instanceState>
- <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
- <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
- <reason/>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <privateIpAddress>10.248.122.144</privateIpAddress>
- <ipAddress>23.20.114.135</ipAddress>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping>
- <item>
- <deviceName>/dev/sda1</deviceName>
- <ebs>
- <volumeId>vol-ba6f60db</volumeId>
- <status>attaching</status>
- <attachTime>2012-07-30T11:07:24.000Z</attachTime>
- <deleteOnTermination>true</deleteOnTermination>
- </ebs>
- </item>
- </blockDeviceMapping>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-9.yml b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-9.yml
deleted file mode 100644
index b6f1760..0000000
--- a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-9.yml
+++ /dev/null
@@ -1,88 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:29 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>c28d5a60-c784-4b86-976a-da4ad72f3b57</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>0</code>
- <name>pending</name>
- </instanceState>
- <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
- <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
- <reason/>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <privateIpAddress>10.248.122.144</privateIpAddress>
- <ipAddress>23.20.114.135</ipAddress>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping>
- <item>
- <deviceName>/dev/sda1</deviceName>
- <ebs>
- <volumeId>vol-ba6f60db</volumeId>
- <status>attaching</status>
- <attachTime>2012-07-30T11:07:24.000Z</attachTime>
- <deleteOnTermination>true</deleteOnTermination>
- </ebs>
- </item>
- </blockDeviceMapping>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-stopped-10.yml b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-stopped-10.yml
deleted file mode 100644
index 668cb51..0000000
--- a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state-stopped-10.yml
+++ /dev/null
@@ -1,92 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:55 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>88fa32f8-44ac-4fc7-b796-6d962c59a72e</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>32</code>
- <name>shutting-down</name>
- </instanceState>
- <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
- <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
- <reason>User initiated (2012-07-30 11:07:54 GMT)</reason>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <privateIpAddress>10.248.122.144</privateIpAddress>
- <ipAddress>23.20.114.135</ipAddress>
- <stateReason>
- <code>Client.UserInitiatedShutdown</code>
- <message>Client.UserInitiatedShutdown: User initiated shutdown</message>
- </stateReason>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping>
- <item>
- <deviceName>/dev/sda1</deviceName>
- <ebs>
- <volumeId>vol-ba6f60db</volumeId>
- <status>attached</status>
- <attachTime>2012-07-30T11:07:42.000Z</attachTime>
- <deleteOnTermination>true</deleteOnTermination>
- </ebs>
- </item>
- </blockDeviceMapping>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state.yml b/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state.yml
deleted file mode 100644
index 2bbb880..0000000
--- a/server/tests/drivers/ec2/fixtures/test_0007_must_allow_to_reboot_instance_in_running_state.yml
+++ /dev/null
@@ -1,411 +0,0 @@
----
-http_interactions:
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=RunInstances&AddressingType=public&ImageId=ami-aecd60c7&InstanceType=t1.micro&MaxCount=1&MinCount=1&Placement.AvailabilityZone=us-east-1a&Signature=5QeyXEroD8vgxShp1x92wRRrNzaPgEg4ZK59eoUX9kU=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:18 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <RunInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>cf80633e-256f-470a-a83d-88abb5c1560b</requestId>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>0</code>
- <name>pending</name>
- </instanceState>
- <privateDnsName/>
- <dnsName/>
- <reason/>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <stateReason>
- <code>pending</code>
- <message>pending</message>
- </stateReason>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping/>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </RunInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=RebootInstances&InstanceId.1=i-7177920a&Signature=MHKArgLDFZXKcn5R94a0OKfRSglhuh7nQVGDCHne7bo=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:52 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <RebootInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>dac6168f-fbdc-4deb-9eae-5a2b115acaaa</requestId>
- <return>true</return>
- </RebootInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:53 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>61ad04de-03cc-43c1-b9b0-dac06751e2b7</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>16</code>
- <name>running</name>
- </instanceState>
- <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
- <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
- <reason/>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <privateIpAddress>10.248.122.144</privateIpAddress>
- <ipAddress>23.20.114.135</ipAddress>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping>
- <item>
- <deviceName>/dev/sda1</deviceName>
- <ebs>
- <volumeId>vol-ba6f60db</volumeId>
- <status>attached</status>
- <attachTime>2012-07-30T11:07:42.000Z</attachTime>
- <deleteOnTermination>true</deleteOnTermination>
- </ebs>
- </item>
- </blockDeviceMapping>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:53 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>ee6ecedd-45e9-4d42-9168-391a87e556f0</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>16</code>
- <name>running</name>
- </instanceState>
- <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
- <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
- <reason/>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <privateIpAddress>10.248.122.144</privateIpAddress>
- <ipAddress>23.20.114.135</ipAddress>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping>
- <item>
- <deviceName>/dev/sda1</deviceName>
- <ebs>
- <volumeId>vol-ba6f60db</volumeId>
- <status>attached</status>
- <attachTime>2012-07-30T11:07:42.000Z</attachTime>
- <deleteOnTermination>true</deleteOnTermination>
- </ebs>
- </item>
- </blockDeviceMapping>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=TerminateInstances&InstanceId.1=i-7177920a&Signature=nGpU/fD4fCQiwW7gRirEQ4ZlzZ/Fdo7Wl9g0IGT1oLI=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:54 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <TerminateInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>7e42a612-937d-43e4-8750-eac942ccfe5d</requestId>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <currentState>
- <code>32</code>
- <name>shutting-down</name>
- </currentState>
- <previousState>
- <code>16</code>
- <name>running</name>
- </previousState>
- </item>
- </instancesSet>
- </TerminateInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-- request:
- method: get
- uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
- body:
- string: ""
- headers:
- User-Agent:
- - ""
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Content-Type:
- - text/xml;charset=UTF-8
- Server:
- - AmazonEC2
- Transfer-Encoding:
- - chunked
- Date:
- - Mon, 30 Jul 2012 11:07:54 GMT
- body:
- string: |-
- <?xml version="1.0" encoding="UTF-8"?>
- <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
- <requestId>dacf4f94-b784-49c7-93c2-95e8b6b69aa4</requestId>
- <reservationSet>
- <item>
- <reservationId>r-362c9d52</reservationId>
- <ownerId>293787749884</ownerId>
- <groupSet>
- <item>
- <groupId>default</groupId>
- </item>
- </groupSet>
- <instancesSet>
- <item>
- <instanceId>i-7177920a</instanceId>
- <imageId>ami-aecd60c7</imageId>
- <instanceState>
- <code>32</code>
- <name>shutting-down</name>
- </instanceState>
- <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
- <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
- <reason>User initiated (2012-07-30 11:07:54 GMT)</reason>
- <amiLaunchIndex>0</amiLaunchIndex>
- <productCodes/>
- <instanceType>t1.micro</instanceType>
- <launchTime>2012-07-30T11:07:18.000Z</launchTime>
- <placement>
- <availabilityZone>us-east-1a</availabilityZone>
- <groupName/>
- </placement>
- <kernelId>aki-88aa75e1</kernelId>
- <monitoring>
- <state>disabled</state>
- </monitoring>
- <privateIpAddress>10.248.122.144</privateIpAddress>
- <ipAddress>23.20.114.135</ipAddress>
- <stateReason>
- <code>Client.UserInitiatedShutdown</code>
- <message>Client.UserInitiatedShutdown: User initiated shutdown</message>
- </stateReason>
- <architecture>x86_64</architecture>
- <rootDeviceType>ebs</rootDeviceType>
- <rootDeviceName>/dev/sda1</rootDeviceName>
- <blockDeviceMapping>
- <item>
- <deviceName>/dev/sda1</deviceName>
- <ebs>
- <volumeId>vol-ba6f60db</volumeId>
- <status>attached</status>
- <attachTime>2012-07-30T11:07:42.000Z</attachTime>
- <deleteOnTermination>true</deleteOnTermination>
- </ebs>
- </item>
- </blockDeviceMapping>
- <virtualizationType>paravirtual</virtualizationType>
- <clientToken/>
- </item>
- </instancesSet>
- </item>
- </reservationSet>
- </DescribeInstancesResponse>
- http_version:
- recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
-recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-10.yml b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-10.yml
new file mode 100644
index 0000000..0769203
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-10.yml
@@ -0,0 +1,76 @@
+---
+recorded_with: VCR 2.2.4
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-768c640c&Signature=shomJVeFPrz90AAOdMTk8Zb+9bZy7WUxKgoQWf4KSLs=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:24:40.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:24:40 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>2be56170-2b04-499f-a9be-3e21de9f2a26</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>0</code>
+ <name>pending</name>
+ </instanceState>
+ <privateDnsName/>
+ <dnsName/>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping/>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:24:40 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-8.yml b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-8.yml
new file mode 100644
index 0000000..e8922c1
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-8.yml
@@ -0,0 +1,88 @@
+---
+recorded_with: VCR 2.2.4
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-768c640c&Signature=FWu1FLJ8Rx57569ZJEcQrj+wbU8mQ/NBiE7fYTWr290=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:01.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:25:01 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>e1f6400b-c8ca-40a2-bb45-fe13b42dd0ce</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>16</code>
+ <name>running</name>
+ </instanceState>
+ <privateDnsName>domU-12-31-39-03-CA-6E.compute-1.internal</privateDnsName>
+ <dnsName>ec2-23-22-221-103.compute-1.amazonaws.com</dnsName>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <privateIpAddress>10.249.201.152</privateIpAddress>
+ <ipAddress>23.22.221.103</ipAddress>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping>
+ <item>
+ <deviceName>/dev/sda1</deviceName>
+ <ebs>
+ <volumeId>vol-75aa0f0e</volumeId>
+ <status>attached</status>
+ <attachTime>2012-08-28T23:25:01.000Z</attachTime>
+ <deleteOnTermination>true</deleteOnTermination>
+ </ebs>
+ </item>
+ </blockDeviceMapping>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:25:02 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-9.yml b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-9.yml
new file mode 100644
index 0000000..5f1043b
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-9.yml
@@ -0,0 +1,76 @@
+---
+recorded_with: VCR 2.2.4
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-768c640c&Signature=eDq/2+kVeLxeyHSksc7JDVsk9XUHplUeLHvpXQPUfp4=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:24:50.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:24:50 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>fcfdf0b8-f53a-48f0-996d-b065d21b5ff3</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>0</code>
+ <name>pending</name>
+ </instanceState>
+ <privateDnsName/>
+ <dnsName/>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping/>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:24:51 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-stopped-10.yml b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-stopped-10.yml
new file mode 100644
index 0000000..fae02c7
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state-stopped-10.yml
@@ -0,0 +1,92 @@
+---
+recorded_with: VCR 2.2.4
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-768c640c&Signature=CaDNHQcCS+m5OWCZLgeRwOa7xGt69trAaPuN8L1/6AM=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:05.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:25:05 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>bdfd429f-e248-4106-8bae-4300893775b2</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>32</code>
+ <name>shutting-down</name>
+ </instanceState>
+ <privateDnsName>domU-12-31-39-03-CA-6E.compute-1.internal</privateDnsName>
+ <dnsName>ec2-23-22-221-103.compute-1.amazonaws.com</dnsName>
+ <reason>User initiated (2012-08-28 23:25:04 GMT)</reason>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <privateIpAddress>10.249.201.152</privateIpAddress>
+ <ipAddress>23.22.221.103</ipAddress>
+ <stateReason>
+ <code>Client.UserInitiatedShutdown</code>
+ <message>Client.UserInitiatedShutdown: User initiated shutdown</message>
+ </stateReason>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping>
+ <item>
+ <deviceName>/dev/sda1</deviceName>
+ <ebs>
+ <volumeId>vol-75aa0f0e</volumeId>
+ <status>attached</status>
+ <attachTime>2012-08-28T23:25:01.000Z</attachTime>
+ <deleteOnTermination>true</deleteOnTermination>
+ </ebs>
+ </item>
+ </blockDeviceMapping>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:25:05 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state.yml b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state.yml
new file mode 100644
index 0000000..e30571b
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0008_must_allow_to_reboot_instance_in_running_state.yml
@@ -0,0 +1,411 @@
+---
+recorded_with: VCR 2.2.4
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=RunInstances&AddressingType=public&ImageId=ami-aecd60c7&InstanceType=t1.micro&MaxCount=1&MinCount=1&Placement.AvailabilityZone=us-east-1a&Signature=7TAagHYZvKkM2voACsypZzEVxTRT2pqPougPiTKaePw=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:24:39.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:24:39 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <RunInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>945c368c-8dd3-42c8-8923-b3ced28e763e</requestId>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>0</code>
+ <name>pending</name>
+ </instanceState>
+ <privateDnsName/>
+ <dnsName/>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <stateReason>
+ <code>pending</code>
+ <message>pending</message>
+ </stateReason>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping/>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </RunInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:24:40 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=RebootInstances&InstanceId.1=i-768c640c&Signature=i2hVf4DeZwGGOvnnOT3znwTn7XZTnjWhfb1Q3sEGbgs=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:02.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:25:02 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <RebootInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>630ce453-2d41-4c0d-ab27-140db812d4b1</requestId>
+ <return>true</return>
+ </RebootInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:25:02 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-768c640c&Signature=fwLguKJtHglYEbm+ammmPmaXPMAT9sSg1/EG9XEq6fM=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:02.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:25:03 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>a1f18086-624c-4e8e-a81c-ebf736b9f344</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>16</code>
+ <name>running</name>
+ </instanceState>
+ <privateDnsName>domU-12-31-39-03-CA-6E.compute-1.internal</privateDnsName>
+ <dnsName>ec2-23-22-221-103.compute-1.amazonaws.com</dnsName>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <privateIpAddress>10.249.201.152</privateIpAddress>
+ <ipAddress>23.22.221.103</ipAddress>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping>
+ <item>
+ <deviceName>/dev/sda1</deviceName>
+ <ebs>
+ <volumeId>vol-75aa0f0e</volumeId>
+ <status>attached</status>
+ <attachTime>2012-08-28T23:25:01.000Z</attachTime>
+ <deleteOnTermination>true</deleteOnTermination>
+ </ebs>
+ </item>
+ </blockDeviceMapping>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:25:03 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-768c640c&Signature=oOTcViQozv2KBCKISS1arGBbGhi/xMSwpfrgNuBK1co=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:03.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:25:03 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>be67624c-43dd-4f58-a2ed-3ed3358ea70d</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>16</code>
+ <name>running</name>
+ </instanceState>
+ <privateDnsName>domU-12-31-39-03-CA-6E.compute-1.internal</privateDnsName>
+ <dnsName>ec2-23-22-221-103.compute-1.amazonaws.com</dnsName>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <privateIpAddress>10.249.201.152</privateIpAddress>
+ <ipAddress>23.22.221.103</ipAddress>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping>
+ <item>
+ <deviceName>/dev/sda1</deviceName>
+ <ebs>
+ <volumeId>vol-75aa0f0e</volumeId>
+ <status>attached</status>
+ <attachTime>2012-08-28T23:25:01.000Z</attachTime>
+ <deleteOnTermination>true</deleteOnTermination>
+ </ebs>
+ </item>
+ </blockDeviceMapping>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:25:03 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=TerminateInstances&InstanceId.1=i-768c640c&Signature=kTmPtjoaUUqtXzwg3u3DEiK5i95ENZWKKRnkNJk9+aw=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:03.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:25:03 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <TerminateInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>5f727b94-b7b6-42d7-a91d-656f84614b98</requestId>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <currentState>
+ <code>32</code>
+ <name>shutting-down</name>
+ </currentState>
+ <previousState>
+ <code>16</code>
+ <name>running</name>
+ </previousState>
+ </item>
+ </instancesSet>
+ </TerminateInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:25:04 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeInstances&InstanceId.1=i-768c640c&Signature=ma4c9NIDY+wOdJZwqEg6JciJwSq6jgj/Ip8G63vrjhk=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T23:25:04.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 28 Aug 2012 23:25:04 GMT
+ Transfer-Encoding:
+ - chunked
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>56a061b3-3d36-459a-80cf-544717a0165f</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-1ff40478</reservationId>
+ <ownerId>122214243412</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-768c640c</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>32</code>
+ <name>shutting-down</name>
+ </instanceState>
+ <privateDnsName>domU-12-31-39-03-CA-6E.compute-1.internal</privateDnsName>
+ <dnsName>ec2-23-22-221-103.compute-1.amazonaws.com</dnsName>
+ <reason>User initiated (2012-08-28 23:25:04 GMT)</reason>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-08-28T23:24:39.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <privateIpAddress>10.249.201.152</privateIpAddress>
+ <ipAddress>23.22.221.103</ipAddress>
+ <stateReason>
+ <code>Client.UserInitiatedShutdown</code>
+ <message>Client.UserInitiatedShutdown: User initiated shutdown</message>
+ </stateReason>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping>
+ <item>
+ <deviceName>/dev/sda1</deviceName>
+ <ebs>
+ <volumeId>vol-75aa0f0e</volumeId>
+ <status>attached</status>
+ <attachTime>2012-08-28T23:25:01.000Z</attachTime>
+ <deleteOnTermination>true</deleteOnTermination>
+ </ebs>
+ </item>
+ </blockDeviceMapping>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 23:25:05 GMT
diff --git a/server/tests/drivers/ec2/fixtures/test_0009_must_allow_to_reboot_instance_in_running_state-9.yml b/server/tests/drivers/ec2/fixtures/test_0009_must_allow_to_reboot_instance_in_running_state-9.yml
new file mode 100644
index 0000000..b6f1760
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0009_must_allow_to_reboot_instance_in_running_state-9.yml
@@ -0,0 +1,88 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJYOQYLLOIWN5LQ3A&Action=DescribeInstances&InstanceId.1=i-7177920a&Signature=DHxm7p2CMHn5fzkybhIzC977iJ/i59rnLEIXVWdrTVE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-07-30T11:05:00.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ User-Agent:
+ - ""
+ Accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ Date:
+ - Mon, 30 Jul 2012 11:07:29 GMT
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>c28d5a60-c784-4b86-976a-da4ad72f3b57</requestId>
+ <reservationSet>
+ <item>
+ <reservationId>r-362c9d52</reservationId>
+ <ownerId>293787749884</ownerId>
+ <groupSet>
+ <item>
+ <groupId>default</groupId>
+ </item>
+ </groupSet>
+ <instancesSet>
+ <item>
+ <instanceId>i-7177920a</instanceId>
+ <imageId>ami-aecd60c7</imageId>
+ <instanceState>
+ <code>0</code>
+ <name>pending</name>
+ </instanceState>
+ <privateDnsName>domU-12-31-39-02-75-62.compute-1.internal</privateDnsName>
+ <dnsName>ec2-23-20-114-135.compute-1.amazonaws.com</dnsName>
+ <reason/>
+ <amiLaunchIndex>0</amiLaunchIndex>
+ <productCodes/>
+ <instanceType>t1.micro</instanceType>
+ <launchTime>2012-07-30T11:07:18.000Z</launchTime>
+ <placement>
+ <availabilityZone>us-east-1a</availabilityZone>
+ <groupName/>
+ </placement>
+ <kernelId>aki-88aa75e1</kernelId>
+ <monitoring>
+ <state>disabled</state>
+ </monitoring>
+ <privateIpAddress>10.248.122.144</privateIpAddress>
+ <ipAddress>23.20.114.135</ipAddress>
+ <architecture>x86_64</architecture>
+ <rootDeviceType>ebs</rootDeviceType>
+ <rootDeviceName>/dev/sda1</rootDeviceName>
+ <blockDeviceMapping>
+ <item>
+ <deviceName>/dev/sda1</deviceName>
+ <ebs>
+ <volumeId>vol-ba6f60db</volumeId>
+ <status>attaching</status>
+ <attachTime>2012-07-30T11:07:24.000Z</attachTime>
+ <deleteOnTermination>true</deleteOnTermination>
+ </ebs>
+ </item>
+ </blockDeviceMapping>
+ <virtualizationType>paravirtual</virtualizationType>
+ <clientToken/>
+ </item>
+ </instancesSet>
+ </item>
+ </reservationSet>
+ </DescribeInstancesResponse>
+ http_version:
+ recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/instance_test.rb b/server/tests/drivers/ec2/instance_test.rb
index ed50c7d..2cbf848 100644
--- a/server/tests/drivers/ec2/instance_test.rb
+++ b/server/tests/drivers/ec2/instance_test.rb
@@ -90,6 +90,16 @@ describe 'Ec2Driver Instances' do
instances.each { |i| i.is_stopped?.must_equal true }
end
+ it 'must allow creating instance in a VPC subnet' do
+ realm_id = "#{@@subnet[:availability_zone]}:#{@@subnet[:subnet_id]}"
+ instance = @driver.create_instance('ami-aecd60c7',
+ :realm_id => realm_id,
+ :hwp_id => 'm1.small')
+ instance.must_be_kind_of Instance
+ instance.realm_id.must_equal realm_id
+ @driver.destroy_instance(instance.id)
+ end
+
it 'must allow to reboot instance in running state' do
instance = @driver.create_instance('ami-aecd60c7', :realm_id => 'us-east-1a', :hwp_id => 't1.micro')
instance = instance.wait_for!(@driver, record_retries) { |i| i.is_running? }
--
1.7.7.6
[PATCH 1/3] EC2 tests: read credentials from config file
Posted by lu...@redhat.com.
From: David Lutterkort <lu...@redhat.com>
---
server/tests/drivers/ec2/common.rb | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/server/tests/drivers/ec2/common.rb b/server/tests/drivers/ec2/common.rb
index a8a5471..fa34237 100644
--- a/server/tests/drivers/ec2/common.rb
+++ b/server/tests/drivers/ec2/common.rb
@@ -6,10 +6,7 @@ require 'vcr'
require_relative '../../test_helper.rb'
def credentials
- {
- :user => 'AKIAJYOQYLLOIWN5LQ3A',
- :password => 'Ra2ViYaYgocAJqPAQHxMVU/l2sGGU2pifmWT4q3H'
- }
+ Deltacloud::Test::config.credentials('ec2')
end
VCR.configure do |c|
--
1.7.7.6
[PATCH 2/3] EC2: list subnets as realms
Posted by lu...@redhat.com.
From: David Lutterkort <lu...@redhat.com>
Subnets (from VPC's) are listed as realms.
Note that this patch monkey patches the aws gem; the corresponding patch
has been sent upstream, it is included here to make testing the patch easier.
---
.../deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb | 294 ++++++++++++++++++++
server/lib/deltacloud/drivers/ec2/ec2_driver.rb | 29 ++-
server/tests/drivers/ec2/common.rb | 30 ++
.../drivers/ec2/fixtures/create_resources.yml | 79 ++++++
.../drivers/ec2/fixtures/destroy_resources.yml | 67 +++++
.../test_0002_must_return_list_of_realms.yml | 92 ++++++-
.../test_0005_must_list_VPC_subnets_as_realms.yml | 109 ++++++++
server/tests/drivers/ec2/realms_test.rb | 5 +
8 files changed, 696 insertions(+), 9 deletions(-)
create mode 100644 server/lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb
create mode 100644 server/tests/drivers/ec2/fixtures/create_resources.yml
create mode 100644 server/tests/drivers/ec2/fixtures/destroy_resources.yml
create mode 100644 server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml
diff --git a/server/lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb b/server/lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb
new file mode 100644
index 0000000..3f1d491
--- /dev/null
+++ b/server/lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb
@@ -0,0 +1,294 @@
+# This is a copy of code that has been submitted upstream
+# https://github.com/appoxy/aws/pull/116
+#
+# If you make changes here, make sure they go upstream, too
+
+unless Aws::Ec2::method_defined?(:create_vpc)
+ class Aws::Ec2
+ #-----------------------------------------------------------------
+ # VPC related
+ #-----------------------------------------------------------------
+
+ # Create VPC
+ # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVpc.html
+ #
+ # ec2.create_vpc("10.0.0.0/16")
+ # FIXME: EVen though the EC2 docs describe the parameter instanceTenancy,
+ # I could not get it to recognize that
+ def create_vpc(cidr_block = "10.0.0.0/16")
+ params = { "CidrBlock" => cidr_block }
+ link = generate_request("CreateVpc", params)
+ request_info(link, QEc2VpcsParser.new("vpc", :logger => @logger))
+ rescue Exception
+ on_exception
+ end
+
+
+ # Describe VPC's
+ # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVpcs.html
+ #
+ # ec2.describe_vpcs
+ # ec2.describe_vpcs(vpcId1, vpcId2, 'Filter.1.Name' => 'state', 'Filter.1.Value' = > 'pending', ...)
+ def describe_vpcs(*args)
+ if args.last.is_a?(Hash)
+ params = args.pop.dup
+ else
+ params = {}
+ end
+ 1.upto(args.size) { |i| params["VpcId.#{i}"] = args[i-1] }
+ link = generate_request("DescribeVpcs", params)
+ request_info(link, QEc2VpcsParser.new("item", :logger => @logger))
+ rescue Exception
+ on_exception
+ end
+
+ # Delete VPC
+ # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteVpc.html
+ #
+ # ec2.delete_vpc(vpc_id)
+ def delete_vpc(vpc_id)
+ params = { "VpcId" => vpc_id }
+ link = generate_request("DeleteVpc", params)
+ request_info(link, RightBoolResponseParser.new(:logger => @logger))
+ rescue Exception
+ on_exception
+ end
+
+ # Create subnet in a VPC
+ # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSubnet.html
+ #
+ # ec2.create_subnet(vpc_id, cidr_block)
+ # ec2.create_subnet(vpc_id, cidr_block, availability_zone))
+ def create_subnet(vpc_id, cidr_block, availability_zone = nil)
+ params = { "VpcId" => vpc_id, "CidrBlock" => cidr_block }
+ params["AvailabilityZone"] = availability_zone if availability_zone
+ link = generate_request("CreateSubnet", params)
+ request_info(link, QEc2SubnetsParser.new("subnet", :logger => @logger))
+ rescue Exception
+ on_exception
+ end
+
+ # Describe subnets
+ # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSubnets.html
+ #
+ # ec2.describe_subnets
+ # ecs.describe_subnets(subnetId1, SubnetId2, ...,
+ # 'Filter.1.Name' => 'state',
+ # 'Filter.1.Value.1' => 'pending',
+ # 'Filter.2.Name' => ...)
+ def describe_subnets(*args)
+ if args.last.is_a?(Hash)
+ params = args.pop.dup
+ else
+ params = {}
+ end
+ 1.upto(args.size) { |i| params["SubnetId.#{i}"] = args[i-1] }
+ link = generate_request("DescribeSubnets", params)
+ request_info(link, QEc2SubnetsParser.new("item", :logger => @logger))
+ rescue Exception
+ on_exception
+ end
+
+ # Delete Subnet
+ # http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSubnet.html
+ #
+ # ec2.delete_subnet(subnet_id)
+ def delete_subnet(subnet_id)
+ params = { "SubnetId" => subnet_id }
+ link = generate_request("DeleteSubnet", params)
+ request_info(link, RightBoolResponseParser.new(:logger => @logger))
+ rescue Exception
+ on_exception
+ end
+
+ # The only change in this class compared to upstream is
+ # that we parse out subnetId and vpcId
+ class QEc2DescribeInstancesParser < Aws::AwsParser #:nodoc:
+ def tagstart(name, attributes)
+ # DescribeInstances property
+ if (name == 'item' && @xmlpath == 'DescribeInstancesResponse/reservationSet') ||
+ # RunInstances property
+ (name == 'RunInstancesResponse')
+ @reservation = {:aws_groups => [],
+ :instances_set => []}
+
+ elsif (name == 'item') &&
+ # DescribeInstances property
+ (@xmlpath=='DescribeInstancesResponse/reservationSet/item/instancesSet' ||
+ # RunInstances property
+ @xmlpath=='RunInstancesResponse/instancesSet')
+ # the optional params (sometimes are missing and we dont want them to be nil)
+ @instance = {:aws_reason => '',
+ :dns_name => '',
+ :private_dns_name => '',
+ :ami_launch_index => '',
+ :ssh_key_name => '',
+ :aws_state => '',
+ :root_device_type => '',
+ :root_device_name => '',
+ :architecture => '',
+ :subnet_id => '',
+ :vpc_id => '',
+ :block_device_mappings => [],
+ :aws_product_codes => [],
+ :tags => {}}
+ end
+ end
+
+ def tagend(name)
+ case name
+ when 'rootDeviceType' then
+ @instance[:root_device_type] = @text
+ when 'architecture' then
+ @instance[:architecture] = @text
+ when 'rootDeviceName' then
+ @instance[:root_device_name] = @text
+ # reservation
+ when 'reservationId' then
+ @reservation[:aws_reservation_id] = @text
+ when 'ownerId' then
+ @reservation[:aws_owner] = @text
+ when 'groupId' then
+ @reservation[:aws_groups] << @text
+ # instance
+ when 'instanceId' then
+ @instance[:aws_instance_id] = @text
+ when 'imageId' then
+ @instance[:aws_image_id] = @text
+ when 'dnsName' then
+ @instance[:dns_name] = @text
+ when 'privateDnsName' then
+ @instance[:private_dns_name] = @text
+ when 'reason' then
+ @instance[:aws_reason] = @text
+ when 'keyName' then
+ @instance[:ssh_key_name] = @text
+ when 'amiLaunchIndex' then
+ @instance[:ami_launch_index] = @text
+ when 'code' then
+ @instance[:aws_state_code] = @text
+ when 'name' then
+ @instance[:aws_state] = @text
+ when 'productCode' then
+ @instance[:aws_product_codes] << @text
+ when 'instanceType' then
+ @instance[:aws_instance_type] = @text
+ when 'launchTime' then
+ @instance[:aws_launch_time] = @text
+ when 'kernelId' then
+ @instance[:aws_kernel_id] = @text
+ when 'ramdiskId' then
+ @instance[:aws_ramdisk_id] = @text
+ when 'platform' then
+ @instance[:aws_platform] = @text
+ when 'availabilityZone' then
+ @instance[:aws_availability_zone] = @text
+ when 'privateIpAddress' then
+ @instance[:aws_private_ip_address] = @text
+ when 'subnetId' then
+ @instance[:subnet_id] = @text
+ when 'vpcId' then
+ @instance[:vpc_id] = @text
+ when 'key' then
+ @tag_key = @text
+ when 'value' then
+ @tag_value = @text
+ when 'deviceName' then
+ @device_name = @text
+ when 'volumeId' then
+ @volume_id = @text
+ when 'state'
+ if @xmlpath == 'DescribeInstancesResponse/reservationSet/item/instancesSet/item/monitoring' || # DescribeInstances property
+ @xmlpath == 'RunInstancesResponse/instancesSet/item/monitoring' # RunInstances property
+ @instance[:monitoring_state] = @text
+ end
+ when 'item'
+ if @xmlpath=='DescribeInstancesResponse/reservationSet/item/instancesSet/item/tagSet' # Tags
+ @instance[:tags][@tag_key] = @tag_value
+ elsif @xmlpath == 'DescribeInstancesResponse/reservationSet/item/instancesSet/item/blockDeviceMapping' # Block device mappings
+ @instance[:block_device_mappings] << { @device_name => @volume_id }
+ elsif @xmlpath == 'DescribeInstancesResponse/reservationSet/item/instancesSet' || # DescribeInstances property
+ @xmlpath == 'RunInstancesResponse/instancesSet' # RunInstances property
+ @reservation[:instances_set] << @instance
+ elsif @xmlpath=='DescribeInstancesResponse/reservationSet' # DescribeInstances property
+ @result << @reservation
+ end
+ when 'RunInstancesResponse' then
+ @result << @reservation # RunInstances property
+ end
+ end
+
+ def reset
+ @result = []
+ end
+ end
+
+ #-----------------------------------------------------------------
+ # PARSERS: Vpc
+ #-----------------------------------------------------------------
+
+ class QEc2VpcsParser < Aws::AwsParser #:nodoc:
+ def initialize(wrapper, opts = {})
+ super(opts)
+ @wrapper = wrapper
+ end
+
+ def tagstart(name, attribute)
+ @vpc = {} if name == @wrapper
+ end
+
+ def tagend(name)
+ case name
+ when 'vpcId' then
+ @vpc[:vpc_id] = @text
+ when 'state' then
+ @vpc[:state] = @text
+ when 'cidrBlock' then
+ @vpc[:cidr_block] = @text
+ when 'dhcpOptionsId' then
+ @vpc[:dhcp_options_id] = @text
+ when @wrapper
+ @result << @vpc
+ end
+ end
+
+ def reset
+ @result = []
+ end
+ end
+
+ class QEc2SubnetsParser < Aws::AwsParser #:nodoc
+ def initialize(wrapper, opts = {})
+ super(opts)
+ @wrapper = wrapper
+ end
+
+ def tagstart(name, attribute)
+ @subnet = {} if name == @wrapper
+ end
+
+ def tagend(name)
+ case name
+ when 'subnetId' then
+ @subnet[:subnet_id] = @text
+ when 'state' then
+ @subnet[:state] = @text
+ when 'vpcId' then
+ @subnet[:vpc_id] = @text
+ when 'cidrBlock' then
+ @subnet[:cidr_block] = @text
+ when 'availableIpAddressCount' then
+ @subnet[:available_ip_address_count] = @text
+ when 'availabilityZone' then
+ @subnet[:availability_zone] = @text
+ when @wrapper
+ @result << @subnet
+ end
+ end
+
+ def reset
+ @result = []
+ end
+ end
+ end
+end
diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index 8847034..31fcfa5 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -15,6 +15,8 @@
#
require 'aws'
+# Delete this once VPC support is merged upstream
+require_relative 'aws_vpc_monkey_patch'
require_relative '../../runner'
@@ -164,22 +166,35 @@ module Deltacloud
end
def realms(credentials, opts={})
+ # We have two different kinds of realms:
+ # (1) Availability Zones
+ # (2) Subnets in VPC's (scoped to an AZ)
+ # For the latter, the ID is AZ:SUBNET, and we can tell that we
+ # are looking at such a realm by checking if the id contains a colon
ec2 = new_client(credentials)
realms = []
safely do
if opts[:id] and !opts[:id].empty?
+ az, sn = opts[:id].split(":")
begin
- ec2.describe_availability_zones([opts[:id]]).collect do |realm|
- realms << convert_realm(realm) unless realm.empty?
+ if sn
+ subnet = ec2.describe_subnets(sn).first
+ realms << convert_realm(subnet) if subnet
+ else
+ ec2.describe_availability_zones(az).collect do |realm|
+ realms << convert_realm(realm) unless realm.empty?
+ end
end
rescue => e
raise e unless e.message =~ /Invalid availability zone/
realms = []
end
else
- ec2.describe_availability_zones.collect do |realm|
- realms << convert_realm(realm) unless realm.empty?
+ realms = ec2.describe_availability_zones.collect do |realm|
+ convert_realm(realm) unless realm.empty?
end
+ realms = realms +
+ ec2.describe_subnets.map { |sn| convert_realm(sn) }
end
end
realms
@@ -871,6 +886,12 @@ module Deltacloud
end
def convert_realm(realm)
+ # We also allow subnets as realms
+ if realm[:subnet_id]
+ realm[:zone_name] =
+ "#{realm[:availability_zone]}:#{realm[:subnet_id]}"
+ realm[:zone_state] = realm[:state]
+ end
Realm.new(
:id => realm[:zone_name],
:name => realm[:zone_name],
diff --git a/server/tests/drivers/ec2/common.rb b/server/tests/drivers/ec2/common.rb
index fa34237..7d63dc9 100644
--- a/server/tests/drivers/ec2/common.rb
+++ b/server/tests/drivers/ec2/common.rb
@@ -4,11 +4,20 @@ require 'right_http_connection'
require 'vcr'
require_relative '../../test_helper.rb'
+require_relative '../../../lib/deltacloud/drivers/ec2/ec2_driver'
def credentials
Deltacloud::Test::config.credentials('ec2')
end
+# Monkey patch EC2 driver to return a client
+class Deltacloud::Drivers::Ec2::Ec2Driver
+ def client(credentials)
+ new_client(credentials)
+ end
+end
+
+# Configure VCR
VCR.configure do |c|
# NOTE: Empty this directory before re-recording
c.cassette_library_dir = File.join(File.dirname(__FILE__), 'fixtures')
@@ -18,3 +27,24 @@ VCR.configure do |c|
c.register_request_matcher(:ec2_matcher, &matcher)
c.default_cassette_options = { :record => :none, :match_requests_on => [:method, :ec2_matcher] }
end
+
+# Setup resources we need for the tests
+def create_resources
+ VCR.use_cassette "create_resources" do
+ driver = Deltacloud::new(:ec2, credentials)
+ @@ec2 = driver.client
+ @@vpc = @@ec2.create_vpc("172.16.0.0/16").first
+ @@subnet = @@ec2.create_subnet(@@vpc[:vpc_id], "172.16.3.0/24", "us-east-1b").first
+ end
+end
+
+def destroy_resources
+ VCR.use_cassette "destroy_resources" do
+ @@ec2.delete_subnet(@@subnet[:subnet_id]) if @@subnet
+ @@ec2.delete_vpc(@@vpc[:vpc_id]) if @@vpc
+ end
+end
+
+MiniTest::Unit::after_tests { destroy_resources }
+
+create_resources
diff --git a/server/tests/drivers/ec2/fixtures/create_resources.yml b/server/tests/drivers/ec2/fixtures/create_resources.yml
new file mode 100644
index 0000000..fb14d7b
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/create_resources.yml
@@ -0,0 +1,79 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=CreateVpc&CidrBlock=172.16.0.0/16&Signature=1v+DVE5pE5wAGscby85h5Phi5O5OEl+3WgxOn/BgNaE=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:42.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ Date:
+ - Tue, 28 Aug 2012 22:36:42 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <CreateVpcResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>12201e58-4637-4663-a0da-a9c3bcf49d5c</requestId>
+ <vpc>
+ <vpcId>vpc-6a952301</vpcId>
+ <state>pending</state>
+ <cidrBlock>172.16.0.0/16</cidrBlock>
+ <dhcpOptionsId>default</dhcpOptionsId>
+ </vpc>
+ </CreateVpcResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 22:36:42 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=CreateSubnet&AvailabilityZone=us-east-1b&CidrBlock=172.16.3.0/24&Signature=EIzFCEEuL0/0E/GVatWByMC0qybmPTw0+kd2xHnOGuw=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:42.000Z&Version=2010-08-31&VpcId=vpc-6a952301
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ Date:
+ - Tue, 28 Aug 2012 22:36:43 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <CreateSubnetResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>e3939c15-3c67-4e33-b1d8-88242dd2317c</requestId>
+ <subnet>
+ <subnetId>subnet-62952309</subnetId>
+ <state>pending</state>
+ <vpcId>vpc-6a952301</vpcId>
+ <cidrBlock>172.16.3.0/24</cidrBlock>
+ <availableIpAddressCount>251</availableIpAddressCount>
+ <availabilityZone>us-east-1b</availabilityZone>
+ </subnet>
+ </CreateSubnetResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 22:36:43 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/destroy_resources.yml b/server/tests/drivers/ec2/fixtures/destroy_resources.yml
new file mode 100644
index 0000000..61020fa
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/destroy_resources.yml
@@ -0,0 +1,67 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DeleteSubnet&Signature=kpx0IU+viAUHCJMSNE+VAc/Hl0oqHdr08cFN7jwJW38=&SignatureMethod=HmacSHA256&SignatureVersion=2&SubnetId=subnet-62952309&Timestamp=2012-08-28T22:36:45.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ Date:
+ - Tue, 28 Aug 2012 22:36:46 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DeleteSubnetResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>342eac4f-3687-4d89-92b7-0484b618947e</requestId>
+ <return>true</return>
+ </DeleteSubnetResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 22:36:46 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DeleteVpc&Signature=OzOLWsGU2ZIwhaA46jecA/wwUeV+hFMu9d1XeUysvG0=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:46.000Z&Version=2010-08-31&VpcId=vpc-6a952301
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ Date:
+ - Tue, 28 Aug 2012 22:36:46 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DeleteVpcResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>d3b55d09-5ece-4b07-a81a-5e9ef3b1d750</requestId>
+ <return>true</return>
+ </DeleteVpcResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 22:36:47 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0002_must_return_list_of_realms.yml b/server/tests/drivers/ec2/fixtures/test_0002_must_return_list_of_realms.yml
index 4929f38..f4ea216 100644
--- a/server/tests/drivers/ec2/fixtures/test_0002_must_return_list_of_realms.yml
+++ b/server/tests/drivers/ec2/fixtures/test_0002_must_return_list_of_realms.yml
@@ -1,5 +1,4 @@
---
-recorded_with: VCR 2.2.4
http_interactions:
- request:
method: get
@@ -18,12 +17,12 @@ http_interactions:
headers:
Date:
- Mon, 30 Jul 2012 11:05:04 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
Server:
- AmazonEC2
Transfer-Encoding:
- chunked
- Content-Type:
- - text/xml;charset=UTF-8
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
@@ -81,12 +80,12 @@ http_interactions:
headers:
Date:
- Mon, 30 Jul 2012 11:05:05 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
Server:
- AmazonEC2
Transfer-Encoding:
- chunked
- Content-Type:
- - text/xml;charset=UTF-8
body:
string: |-
<?xml version="1.0" encoding="UTF-8"?>
@@ -127,3 +126,86 @@ http_interactions:
</DescribeAvailabilityZonesResponse>
http_version:
recorded_at: Mon, 30 Jul 2012 11:05:00 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeSubnets&Signature=P2fvw5n27dvw0TkOwhu7KiUgKkMR2eCPabzIrNMPLuc=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T19:12:03.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Date:
+ - Tue, 28 Aug 2012 19:12:04 GMT
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeSubnetsResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>f2d1c818-096a-4746-afee-7862d0a58cfc</requestId>
+ <subnetSet>
+ <item>
+ <subnetId>subnet-dd5bfcb6</subnetId>
+ <state>available</state>
+ <vpcId>vpc-0b40e760</vpcId>
+ <cidrBlock>10.1.0.0/24</cidrBlock>
+ <availableIpAddressCount>251</availableIpAddressCount>
+ <availabilityZone>us-east-1a</availabilityZone>
+ </item>
+ </subnetSet>
+ </DescribeSubnetsResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 19:12:04 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeSubnets&Signature=LDiqi0eL5WZCJtyoNdoSjhcVxGsFyowDT2/1jVlx/cM=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T19:12:04.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - text/xml;charset=UTF-8
+ Date:
+ - Tue, 28 Aug 2012 19:12:04 GMT
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeSubnetsResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>e3fce148-6be5-4b2f-99b1-66cc9297ab08</requestId>
+ <subnetSet>
+ <item>
+ <subnetId>subnet-dd5bfcb6</subnetId>
+ <state>available</state>
+ <vpcId>vpc-0b40e760</vpcId>
+ <cidrBlock>10.1.0.0/24</cidrBlock>
+ <availableIpAddressCount>251</availableIpAddressCount>
+ <availabilityZone>us-east-1a</availabilityZone>
+ </item>
+ </subnetSet>
+ </DescribeSubnetsResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 19:12:05 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml b/server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml
new file mode 100644
index 0000000..fdce4eb
--- /dev/null
+++ b/server/tests/drivers/ec2/fixtures/test_0005_must_list_VPC_subnets_as_realms.yml
@@ -0,0 +1,109 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeAvailabilityZones&Signature=v93MQI1cGoYMFByjuzOvr9DZAbE50n6cNkgTf4g8rJs=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:44.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ Date:
+ - Tue, 28 Aug 2012 22:36:45 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeAvailabilityZonesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>aa77686e-b8b2-4870-8f1e-6232077dbade</requestId>
+ <availabilityZoneInfo>
+ <item>
+ <zoneName>us-east-1a</zoneName>
+ <zoneState>available</zoneState>
+ <regionName>us-east-1</regionName>
+ <messageSet/>
+ </item>
+ <item>
+ <zoneName>us-east-1b</zoneName>
+ <zoneState>available</zoneState>
+ <regionName>us-east-1</regionName>
+ <messageSet/>
+ </item>
+ <item>
+ <zoneName>us-east-1c</zoneName>
+ <zoneState>available</zoneState>
+ <regionName>us-east-1</regionName>
+ <messageSet/>
+ </item>
+ <item>
+ <zoneName>us-east-1d</zoneName>
+ <zoneState>available</zoneState>
+ <regionName>us-east-1</regionName>
+ <messageSet/>
+ </item>
+ </availabilityZoneInfo>
+ </DescribeAvailabilityZonesResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 22:36:45 GMT
+- request:
+ method: get
+ uri: https://ec2.us-east-1.amazonaws.com/?AWSAccessKeyId=AKIAJHMN5TTUKVLK5WCQ&Action=DescribeSubnets&Signature=r2v7oE4F8OoTHhXc1NYAdJTr6giszS8MSsQ7prKHM4g=&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2012-08-28T22:36:45.000Z&Version=2010-08-31
+ body:
+ string: ""
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - ""
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Server:
+ - AmazonEC2
+ Transfer-Encoding:
+ - chunked
+ Date:
+ - Tue, 28 Aug 2012 22:36:45 GMT
+ Content-Type:
+ - text/xml;charset=UTF-8
+ body:
+ string: |-
+ <?xml version="1.0" encoding="UTF-8"?>
+ <DescribeSubnetsResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/">
+ <requestId>c95921ad-17a4-4262-b877-2d357f6873f6</requestId>
+ <subnetSet>
+ <item>
+ <subnetId>subnet-dd5bfcb6</subnetId>
+ <state>available</state>
+ <vpcId>vpc-0b40e760</vpcId>
+ <cidrBlock>10.1.0.0/24</cidrBlock>
+ <availableIpAddressCount>251</availableIpAddressCount>
+ <availabilityZone>us-east-1a</availabilityZone>
+ </item>
+ <item>
+ <subnetId>subnet-62952309</subnetId>
+ <state>available</state>
+ <vpcId>vpc-6a952301</vpcId>
+ <cidrBlock>172.16.3.0/24</cidrBlock>
+ <availableIpAddressCount>251</availableIpAddressCount>
+ <availabilityZone>us-east-1b</availabilityZone>
+ </item>
+ </subnetSet>
+ </DescribeSubnetsResponse>
+ http_version:
+ recorded_at: Tue, 28 Aug 2012 22:36:45 GMT
+recorded_with: VCR 2.2.4
diff --git a/server/tests/drivers/ec2/realms_test.rb b/server/tests/drivers/ec2/realms_test.rb
index 5129fe2..0f0b7d2 100644
--- a/server/tests/drivers/ec2/realms_test.rb
+++ b/server/tests/drivers/ec2/realms_test.rb
@@ -40,4 +40,9 @@ describe 'Ec2Driver Realms' do
@driver.realm(:id => 'unknown').must_be_nil
end
+ it 'must list VPC subnets as realms' do
+ id = "#{@@subnet[:availability_zone]}:#{@@subnet[:subnet_id]}"
+ @driver.realms.find { |r| r.id == id }.wont_be_nil
+ end
+
end
--
1.7.7.6