Class: Fog::Compute::QingCloud::Address
Instance Method Summary
collapse
#changing?, inherited, #wait_for
Constructor Details
#initialize(attributes = {}) ⇒ Address
Returns a new instance of Address.
20
21
22
23
24
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 20
def initialize(attributes = {})
self.server = attributes.delete(:server)
super
end
|
Instance Method Details
#change_bandwidth(bw) ⇒ Object
88
89
90
91
92
93
94
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 88
def change_bandwidth(bw)
if persisted?
service.change_address_bandwidth(id, bw)
else
bandwidth = bw
end
end
|
#destroy ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 26
def destroy
requires_one :public_ip, :id
unless self.id
self.id = public_ip
self.reload
end
service.release_address(id)
true
rescue Fog::QingCloud::Errors::PermissionDenied => e
raise e unless e.message =~ /has already been deleted/i
true
end
|
#ready? ⇒ Boolean
47
48
49
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 47
def ready?
status == 'available' and transition_status == ''
end
|
#router ⇒ Object
55
56
57
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 55
def router
service.routers.get(router_id)
end
|
#router=(router) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 59
def router=(router)
rtid = router.respond_to?(:id) ? router.id : router
if rtid
service.routers.new('id' => rtid).eip = self
self.router_id = rtid
elsif router_id
service.routers.new('id' => router_id).eip = nil
self.router_id = nil
end
true
end
|
#save ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 73
def save
requires :bandwidth
unless persisted?
eip_id = service.allocate_address(bandwidth, 1, name, need_icp).body['eips'].first
self.id = eip_id
wait_for {ready?}
if @server
self.server = @server
end
else
modify_attributes(name, description)
end
true
end
|
#server ⇒ Object
51
52
53
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 51
def server
service.servers.get(server_id)
end
|
#server=(new_server) ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/fog/qingcloud/models/compute/address.rb', line 39
def server=(new_server)
if new_server
associate(new_server)
else
disassociate
end
end
|