Class: Fog::Compute::AWS::VPC

Inherits:
Model
  • Object
show all
Defined in:
lib/fog/aws/models/compute/vpc.rb

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ VPC

Returns a new instance of VPC.



13
14
15
16
17
# File 'lib/fog/aws/models/compute/vpc.rb', line 13

def initialize(attributes={})
  self.dhcp_options_id ||= "default"
  self.tenancy ||= "default"
  super
end

Instance Method Details

#destroyObject

Removes an existing vpc

vpc.destroy

Returns

True or false depending on the result



33
34
35
36
37
38
# File 'lib/fog/aws/models/compute/vpc.rb', line 33

def destroy
  requires :id

  service.delete_vpc(id)
  true
end

#ready?Boolean

Returns:

  • (Boolean)


19
20
21
22
# File 'lib/fog/aws/models/compute/vpc.rb', line 19

def ready?
  requires :state
  state == 'available'
end

#saveObject

Create a vpc

>> g = AWS.vpcs.new(:cidr_block => “10.1.2.0/24”) >> g.save

Returns:

True or an exception depending on the result. Keep in mind that this creates a new vpc. As such, it yields an InvalidGroup.Duplicate exception if you attempt to save an existing vpc.



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/fog/aws/models/compute/vpc.rb', line 51

def save
  requires :cidr_block

  data = service.create_vpc(cidr_block).body['vpcSet'].first
  new_attributes = data.reject {|key,value| key == 'requestId'}
  new_attributes = data.reject {|key,value| key == 'requestId' || key == 'tagSet' }
  merge_attributes(new_attributes)

  if tags = self.tags
    # expect eventual consistency
    Fog.wait_for { self.reload rescue nil }
    service.create_tags(
      self.identity,
      tags
    )
  end

  true
end