Class: Fog::Rackspace::AutoScale::Policy
- Defined in:
- lib/fog/rackspace/models/auto_scale/policy.rb
Instance Attribute Summary collapse
-
#args ⇒ String
readonly
Arguments used for the policy.
-
#change ⇒ Fixnum
readonly
The fixed change to the autoscale group’s number of units.
-
#changePercent ⇒ Fixnum
readonly
The percentage change to the autoscale group’s number of units.
-
#cooldown ⇒ Fixnum
readonly
The policy’s cooldown.
-
#desiredCapacity ⇒ Fixnum
readonly
The desired capacity of the group.
-
#group_id ⇒ String
readonly
The autoscale group’s id.
-
#id ⇒ String
readonly
The policy id.
-
#links ⇒ Array
readonly
Policy links.
-
#name ⇒ String
readonly
The policy’s name.
-
#type ⇒ String
readonly
The policy’s type.
Attributes inherited from Model
Instance Method Summary collapse
-
#check_attributes ⇒ Boolean
Returns true if the check passes.
-
#destroy ⇒ Boolean
Returns true if policy has started deleting.
-
#execute ⇒ Boolean
Returns true if policy has been executed.
-
#save ⇒ Boolean
-
requires attributes: :name, :type, :cooldown.
-
-
#update ⇒ Boolean
Returns true if policy has started updating.
-
#webhooks ⇒ Fog::Rackspace::AutoScale::Webhooks
Gets the associated webhooks for this policy.
Methods inherited from Model
#initialize, #inspect, #reload, #symbolize_keys, #to_json, #wait_for
Methods included from Attributes::ClassMethods
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
Methods included from Core::DeprecatedConnectionAccessors
#connection, #connection=, #prepare_service_value
Methods included from Attributes::InstanceMethods
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #persisted?, #requires, #requires_one
Constructor Details
This class inherits a constructor from Fog::Model
Instance Attribute Details
#args ⇒ String (readonly)
Returns Arguments used for the policy.
|
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 42
|
#change ⇒ Fixnum (readonly)
Returns The fixed change to the autoscale group’s number of units.
|
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 25
|
#changePercent ⇒ Fixnum (readonly)
Returns The percentage change to the autoscale group’s number of units.
31 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 31 attribute :change_percent, :aliases => 'changePercent' |
#cooldown ⇒ Fixnum (readonly)
Returns The policy’s cooldown.
|
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 33
|
#desiredCapacity ⇒ Fixnum (readonly)
Returns The desired capacity of the group.
69 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 69 attribute :desired_capacity, :aliases => 'desiredCapacity' |
#group_id ⇒ String (readonly)
Returns The autoscale group’s id.
15 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 15 attribute :group_id |
#id ⇒ String (readonly)
Returns The policy id.
11 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 11 identity :id |
#links ⇒ Array (readonly)
Returns Policy links.
|
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 17
|
#name ⇒ String (readonly)
Returns The policy’s name.
23 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 23 attribute :name |
#type ⇒ String (readonly)
Can only be “webhook”, “schedule” or “cloud_monitoring”
Returns The policy’s type.
|
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 37
|
Instance Method Details
#check_attributes ⇒ Boolean
Returns true if the check passes
77 78 79 80 81 82 83 84 85 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 77 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 |
#destroy ⇒ Boolean
Returns true if policy has started deleting
163 164 165 166 167 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 163 def destroy requires :identity service.delete_policy(group_id, identity) true end |
#execute ⇒ Boolean
Returns true if policy has been executed
179 180 181 182 183 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 179 def execute requires :identity service.execute_policy(group_id, identity) true end |
#save ⇒ Boolean
-
requires attributes: :name, :type, :cooldown
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 99 def save requires :name, :type, :cooldown check_attributes = {} ['name'] = name unless name.nil? ['change'] = change unless change.nil? ['changePercent'] = change_percent unless change_percent.nil? ['cooldown'] = cooldown unless cooldown.nil? ['type'] = type unless type.nil? ['desiredCapacity'] = desired_capacity unless desired_capacity.nil? if type == 'schedule' ['args'] = args end data = service.create_policy(group_id, ) merge_attributes(data.body['policies'][0]) true end |
#update ⇒ Boolean
Returns true if policy has started updating
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 131 def update requires :identity check_attributes = {} ['name'] = name unless name.nil? ['change'] = change unless change.nil? ['changePercent'] = change_percent unless change_percent.nil? ['cooldown'] = cooldown unless cooldown.nil? ['type'] = type unless type.nil? ['desiredCapacity'] = desired_capacity unless desired_capacity.nil? if type == 'schedule' ['args'] = args end data = service.update_policy(group_id, identity, ) merge_attributes(data.body) true end |
#webhooks ⇒ Fog::Rackspace::AutoScale::Webhooks
Gets the associated webhooks for this policy
193 194 195 196 197 198 199 200 201 |
# File 'lib/fog/rackspace/models/auto_scale/policy.rb', line 193 def webhooks data = service.list_webhooks(group_id, self.id) Fog::Rackspace::AutoScale::Webhooks.new({ :service => service, :policy_id => self.id, :group_id => group_id }).merge_attributes(data.body) end |