class Fog::Rackspace::AutoScale::Policy
Public Instance Methods
@return [Boolean] Returns true if the check passes
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 76 def check_attributes raise ArgumentError, "This #{self.name} resource requires the #{type} argument" if type.nil? if type == 'schedule' raise ArgumentError, "This #{self.name} resource requires the args[cron] OR args[at] argument" if args['cron'].nil? && args['at'].nil? end true end
Creates policy
-
requires attributes: :name, :type, :cooldown
@return [Boolean] returns true if policy is being created
@raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404 @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400 @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::AutoScale:::ServiceError]
@see Policies#create
@see docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/POST_createPolicies_v1.0__tenantId__groups__groupId__policies_Policies.html
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 102 def create requires :name, :type, :cooldown check_attributes options = {} options['name'] = name unless name.nil? options['change'] = change unless change.nil? options['changePercent'] = change_percent unless change_percent.nil? options['cooldown'] = cooldown unless cooldown.nil? options['type'] = type unless type.nil? options['desiredCapacity'] = desired_capacity unless desired_capacity.nil? if type == 'schedule' options['args'] = args end data = service.create_policy(group.id, options) merge_attributes(data.body['policies'][0]) true end
Destroy the policy
@return [Boolean] returns true if policy has started deleting
@raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404 @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400 @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::AutoScale:::ServiceError]
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 178 def destroy requires :identity service.delete_policy(group.id, identity) true end
Executes the scaling policy
@return [Boolean] returns true if policy has been executed
@raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404 @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400 @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::AutoScale:::ServiceError]
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 194 def execute requires :identity service.execute_policy(group.id, identity) true end
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 86 def group=(group) attributes[:group] = group.is_a?(Group) ? group : service.groups.new(:id => group) end
Saves the policy Creates policy if it is new, otherwise it will update it @return [Boolean] true if policy has saved
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 159 def save if persisted? update else create end true end
Updates the policy
@return [Boolean] returns true if policy has started updating
@raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404 @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400 @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::AutoScale:::ServiceError]
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 134 def update requires :identity check_attributes options = {} options['name'] = name unless name.nil? options['change'] = change unless change.nil? options['changePercent'] = change_percent unless change_percent.nil? options['cooldown'] = cooldown unless cooldown.nil? options['type'] = type unless type.nil? options['desiredCapacity'] = desired_capacity unless desired_capacity.nil? if type == 'schedule' options['args'] = args end data = service.update_policy(group.id, identity, options) merge_attributes(data.body) true end
Gets the associated webhooks for this policy
@return [Fog::Rackspace::AutoScale::Webhooks] returns Webhooks
@raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404 @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400 @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500 @raise [Fog::Rackspace::AutoScale:::ServiceError]
# File lib/fog/rackspace/models/auto_scale/policy.rb, line 208 def webhooks requires :identity @webhooks ||= Fog::Rackspace::AutoScale::Webhooks.new({ :service => service, :policy => self, :group => group }) end