class Miasma::Models::AutoScale::Rackspace
Public Instance Methods
group_all(options={})
click to toggle source
Return all auto scale groups
@param options [Hash] filter @return [Array<Models::AutoScale::Group>]
# File lib/miasma/contrib/rackspace/auto_scale.rb, line 65 def group_all(options={}) 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)
click to toggle source
Delete auto scale group
@param group [Models::AutoScale::Group] @return [TrueClass, FalseClass]
# File lib/miasma/contrib/rackspace/auto_scale.rb, line 48 def group_destroy(group) if(group.persisted?) request( :path => "/groups/#{group.id}", :method => :delete, :expects => 204 ) true else false end end
group_reload(group)
click to toggle source
Reload the group data from the API
@param group [Models::AutoScale::Group] @return [Models::AutoScale::Group]
# File lib/miasma/contrib/rackspace/auto_scale.rb, line 23 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)
click to toggle source
Save auto scale group
@param group [Models::AutoScale::Group] @return [Models::AutoScale::Group]
# File lib/miasma/contrib/rackspace/auto_scale.rb, line 15 def group_save(group) raise NotImplementedError end