2015-01-02 12:34:40 -05:00
|
|
|
Shindo.tests('AWS::RDS | subnet group requests', ['aws', 'rds']) do
|
2014-12-30 17:25:09 -05:00
|
|
|
# random_differentiator
|
|
|
|
# Useful when rapidly re-running tests, so we don't have to wait
|
|
|
|
# serveral minutes for deleted VPCs/subnets to disappear
|
|
|
|
suffix = rand(65536).to_s(16)
|
|
|
|
@subnet_group_name = "fog-test-#{suffix}"
|
|
|
|
|
|
|
|
vpc_range = rand(245) + 10
|
|
|
|
@vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => "10.#{vpc_range}.0.0/16")
|
|
|
|
|
|
|
|
# Create 4 subnets in this VPC, each one in a different AZ
|
|
|
|
subnet_az = 'us-east-1a'
|
|
|
|
subnet_range = 8
|
|
|
|
@subnets = (1..4).map do
|
|
|
|
subnet = Fog::Compute[:aws].create_subnet(@vpc.id, "10.#{vpc_range}.#{subnet_range}.0/24",
|
|
|
|
'AvailabilityZone' => subnet_az).body['subnet']
|
|
|
|
subnet_az = subnet_az.succ
|
|
|
|
subnet_range *= 2
|
|
|
|
subnet
|
|
|
|
end
|
|
|
|
|
|
|
|
tests('success') do
|
|
|
|
|
|
|
|
subnet_ids = @subnets.map { |sn| sn['subnetId'] }.to_a
|
|
|
|
|
2015-01-02 12:34:40 -05:00
|
|
|
tests("#create_db_subnet_group").formats(AWS::RDS::Formats::CREATE_DB_SUBNET_GROUP) do
|
2014-12-30 17:25:09 -05:00
|
|
|
result = Fog::AWS[:rds].create_db_subnet_group(@subnet_group_name, subnet_ids, 'A subnet group').body
|
|
|
|
|
|
|
|
returns(@subnet_group_name) { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['DBSubnetGroupName'] }
|
|
|
|
returns('A subnet group') { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['DBSubnetGroupDescription'] }
|
|
|
|
returns(@vpc.id) { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['VpcId'] }
|
|
|
|
returns(subnet_ids.sort) { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['Subnets'].sort }
|
|
|
|
|
|
|
|
result
|
|
|
|
end
|
|
|
|
|
2015-01-02 12:34:40 -05:00
|
|
|
tests("#describe_db_subnet_groups").formats(AWS::RDS::Formats::DESCRIBE_DB_SUBNET_GROUPS) do
|
2014-12-30 17:25:09 -05:00
|
|
|
Fog::AWS[:rds].describe_db_subnet_groups.body
|
|
|
|
end
|
|
|
|
|
2015-01-02 12:34:40 -05:00
|
|
|
tests("#delete_db_subnet_group").formats(AWS::RDS::Formats::BASIC) do
|
2014-12-30 17:25:09 -05:00
|
|
|
Fog::AWS[:rds].delete_db_subnet_group(@subnet_group_name).body
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
@subnets.each do |sn|
|
|
|
|
Fog::Compute[:aws].delete_subnet(sn['subnetId'])
|
|
|
|
end
|
|
|
|
@vpc.destroy
|
|
|
|
|
|
|
|
end
|