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.



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

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



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

def destroy
  requires :id

  service.delete_vpc(id)
  true
end

#ready?Boolean

Returns:

  • (Boolean)


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

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.



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

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