Class: Aws::Ec2

Inherits:
Object
  • Object
show all
Defined in:
lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb

Defined Under Namespace

Classes: QEc2DescribeInstancesParser, QEc2SubnetsParser, QEc2VpcsParser

Instance Method Summary collapse

Instance Method Details

#create_subnet(vpc_id, cidr_block, availability_zone = nil) ⇒ Object

Create subnet in a VPC 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))



62
63
64
65
66
67
68
69
# File 'lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb', line 62

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

#create_vpc(cidr_block = "10.0.0.0/16") ⇒ Object

Create VPC 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



18
19
20
21
22
23
24
# File 'lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb', line 18

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

#delete_subnet(subnet_id) ⇒ Object



96
97
98
99
100
101
102
# File 'lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb', line 96

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

#delete_vpc(vpc_id) ⇒ Object



49
50
51
52
53
54
55
# File 'lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb', line 49

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

#describe_subnets(*args) ⇒ Object

Describe subnets 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' => ...)


79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb', line 79

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

#describe_vpcs(*args) ⇒ Object

Describe VPC’s 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’, …)



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/deltacloud/drivers/ec2/aws_vpc_monkey_patch.rb', line 32

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