Class: Larrow::Qingcloud::Eip
Overview
External address
Constant Summary
Constants inherited from Base
Instance Attribute Summary collapse
-
#address ⇒ Object
Returns the value of attribute address.
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
- #associate(instance_id) ⇒ Object
-
#dissociate(instance_id) ⇒ Object
cannot support batch dissociating.
- #wait_for(status) ⇒ Object
Methods inherited from Base
conn, #conn, describe, destroy_action, #initialize, #method_missing, #model_name, model_name, #param_by, param_by, plural_name, #show, singular_name
Methods included from Logger
Constructor Details
This class inherits a constructor from Larrow::Qingcloud::Base
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Larrow::Qingcloud::Base
Instance Attribute Details
#address ⇒ Object
Returns the value of attribute address.
5 6 7 |
# File 'lib/larrow/qingcloud/eip.rb', line 5 def address @address end |
Class Method Details
.create(bandwidth: 1, count: 1) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/larrow/qingcloud/eip.rb', line 8 def self.create(bandwidth:1, count:1) result = conn.service 'get', 'AllocateEips', bandwidth: bandwidth, count: count info "EIP added: #{result['eips']}" result['eips'].map do |id| promise(timeout:60){ new(id).wait_for :available } end end |
Instance Method Details
#associate(instance_id) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/larrow/qingcloud/eip.rb', line 25 def associate(instance_id) conn.service 'get', 'AssociateEip', instance: instance_id, eip: id promise(timeout:60){ wait_for :associated } end |
#dissociate(instance_id) ⇒ Object
cannot support batch dissociating
33 34 35 36 37 38 |
# File 'lib/larrow/qingcloud/eip.rb', line 33 def dissociate(instance_id) conn.service 'get', 'DissociateEips', :instance => instance_id, :'eips.1' => id promise(timeout:60){ wait_for :available } end |
#wait_for(status) ⇒ Object
19 20 21 22 23 |
# File 'lib/larrow/qingcloud/eip.rb', line 19 def wait_for(status) super do |data| self.address = data['eip_addr'] end end |