Class: Miasma::Models::AutoScale::Rackspace
- Inherits:
-
Miasma::Models::AutoScale
- Object
- Types::Api
- Miasma::Models::AutoScale
- Miasma::Models::AutoScale::Rackspace
- Includes:
- Contrib::RackspaceApiCore::ApiCommon
- Defined in:
- lib/miasma/contrib/rackspace/auto_scale.rb
Instance Method Summary collapse
-
#group_all(options = {}) ⇒ Array<Models::AutoScale::Group>
Return all auto scale groups.
-
#group_destroy(group) ⇒ TrueClass, FalseClass
Delete auto scale group.
-
#group_reload(group) ⇒ Models::AutoScale::Group
Reload the group data from the API.
-
#group_save(group) ⇒ Models::AutoScale::Group
Save auto scale group.
Methods included from Contrib::RackspaceApiCore::ApiCommon
Methods inherited from Miasma::Models::AutoScale
Methods inherited from Types::Api
#api_for, #connect, #connection, #endpoint, #format_response, #initialize, #make_request, #provider, #request
Methods included from Utils::Memoization
#_memo, #clear_memoizations!, #memoize, #unmemoize
Methods included from Utils::Lazy
Constructor Details
This class inherits a constructor from Miasma::Types::Api
Instance Method Details
#group_all(options = {}) ⇒ Array<Models::AutoScale::Group>
Return all auto scale groups
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/miasma/contrib/rackspace/auto_scale.rb', line 64 def group_all(={}) result = request( :method => :get, :path => '/groups', :expects => 200 ) result.fetch(:body, 'groups', []).map do |lb| Group.new( self, :id => lb[:id], :name => lb.get(:state, :name), :current_size => lb.get(:state, 'activeCapacity'), :desired_size => lb.get(:state, 'desiredCapacity') ).valid_state end end |
#group_destroy(group) ⇒ TrueClass, FalseClass
Delete auto scale group
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/miasma/contrib/rackspace/auto_scale.rb', line 47 def group_destroy(group) if(group.persisted?) request( :path => "/groups/#{group.id}", :method => :delete, :expects => 204 ) true else false end end |
#group_reload(group) ⇒ Models::AutoScale::Group
Reload the group data from the API
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/miasma/contrib/rackspace/auto_scale.rb', line 22 def group_reload(group) if(group.persisted?) result = request( :method => :get, :path => "/groups/#{group.id}", :expects => 200 ) grp = result.get(:body, :group) group.load_data( :name => grp.get('groupConfiguration', :name), :minimum_size => grp.get('groupConfiguration', 'minEntities'), :maximum_size => grp.get('groupConfiguration', 'maxEntities'), :desired_size => grp.get(:state, 'desiredCapacity'), :current_size => grp.get(:state, 'activeCapacity'), :servers => grp.get(:state, :active).map{|s| AutoScale::Group::Server.new(self, :id => s[:id])} ).valid_state else group end end |
#group_save(group) ⇒ Models::AutoScale::Group
Save auto scale group
14 15 16 |
# File 'lib/miasma/contrib/rackspace/auto_scale.rb', line 14 def group_save(group) raise NotImplementedError end |