class Fog::Rackspace::AutoScale::Mock
Public Class Methods
new(options)
click to toggle source
# File lib/fog/rackspace/auto_scale.rb, line 79 def initialize(options) @rackspace_api_key = options[:rackspace_api_key] end
Public Instance Methods
create_group(launch_config, group_config, policies)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/create_group.rb, line 22 def create_group(launch_config, group_config, policies) group_id = Fog::Rackspace::MockData.uuid # Construct group structure group = { 'launchConfiguration' => launch_config, 'groupConfiguration' => group_config, 'scalingPolicies' => policies, 'id' => group_id } # Add links for HTTP response group['scalingPolicies'][0]['links'] = [ { "href" => "https://ord.autoscale.api.rackspacecloud.com/v1.0/829409/groups/6791761b-821a-4d07-820d-0b2afc7dd7f6/policies/dceb14ac-b2b3-4f06-aac9-a5b6cd5d40e1/", "rel" => "self" } ] group['links'] = [ { "href" => "https://ord.autoscale.api.rackspacecloud.com/v1.0/829409/groups/6791761b-821a-4d07-820d-0b2afc7dd7f6/", "rel" => "self" } ] # Save for future use self.data[:autoscale_groups][group_id] = group # Response body = {'group' => group} response(:body => body) end
create_policy(group_id, options)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/create_policy.rb, line 18 def create_policy(group_id, options) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = { "id" => Fog::Rackspace::MockData.uuid, "name" => "set group to 5 servers", "desiredCapacity" => 5, "cooldown" => 1800, "type" => "webhook" } group['scalingPolicies'] << policy body = [policy] response(:body => body) end
create_webhook(group_id, policy_id, options)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/create_webhook.rb, line 18 def create_webhook(group_id, policy_id, options) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = group['scalingPolicies'].find { |p| p["id"] == policy_id } if policy.nil? raise Fog::Rackspace::AutoScale::NotFound end webhook_id = Fog::Rackspace::MockData.uuid webhook = {} webhook['id'] = webhook_id webhook['name'] = options['name'] || 'new webhook' webhook['metadata'] = options['name'] || {} webhook["links"] = [ { "href" => "https://ord.autoscale.api.rackspacecloud.com/v1.0/829409/groups/#{group_id}/policies/#{policy_id}/webhooks/#{webhook_id}/", "rel" => "self" }, { "href" => "https://ord.autoscale.api.rackspacecloud.com/v1.0/829409/execute/1/sadfadsfasdfvcjsdfsjvreaigae5", "rel" => "capability" } ] policy['webhooks'] << webhook body = {'webhook' => webhook} response(:body => body) end
delete_group(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/delete_group.rb, line 15 def delete_group(group_id) self.data[:autoscale_groups].delete(group_id) response(:status => 204) end
delete_webhook(group_id, policy_id, webhook_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/delete_webhook.rb, line 15 def delete_webhook(group_id, policy_id, webhook_id) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = group['policies'].find { |p| p["id"] == policy_id } if policy.nil? raise Fog::Rackspace::AutoScale::NotFound end policy['webhooks'].delete_if { |w| w['id'] == webhook_id } response(:status => 204) end
execute_anonymous_webhook(capability_version, capability_hash)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb, line 15 def execute_anonymous_webhook(capability_version, capability_hash) response(:status => 202) end
execute_policy(group_id, policy_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/execute_policy.rb, line 15 def execute_policy(group_id, policy_id) response(:status => 202) end
get_group(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/get_group.rb, line 15 def get_group(group_id) group = self.data[:autoscale_groups][group_id] if server.nil? raise Fog::Rackspace::AutoScale::NotFound else response(:body => {"group" => group}) end end
get_group_config(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/get_group_config.rb, line 15 def get_group_config(group_id) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end response(:body => {"groupConfiguration" => group['groupConfiguration']}) end
get_group_state(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/get_group_state.rb, line 15 def get_group_state(group_id) instance_id_1 = Fog::Rackspace::AutoScale::MockData.uuid instance_id_2 = Fog::Rackspace::AutoScale::MockData.uuid state = { "id" => group_id, "links" => [ { "href" => "https://dfw.autoscale.api.rackspacecloud.com/v1.0/010101/groups/#{group_id}", "rel" => "self" } ], "active" => [ { "id" => "#{instance_id_1}", "links" => [ { "href" => "https://dfw.servers.api.rackspacecloud.com/v2/010101/servers/#{instance_id_1}", "rel" => "self" } ] }, { "id" => "#{instance_id_2}", "links" => [ { "href" => "https://dfw.servers.api.rackspacecloud.com/v2/010101/servers/#{instance_id_2}", "rel" => "self" } ] } ], "activeCapacity" => 2, "pendingCapacity" => 2, "desiredCapacity" => 4, "paused" => false } response(:body => {'group' => state}) end
get_launch_config(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/get_launch_config.rb, line 15 def get_launch_config(group_id) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end response(:body => {"launchConfiguration" => group['launchConfiguration']}) end
get_policy(group_id, policy_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/get_policy.rb, line 15 def get_policy(group_id, policy_id) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = group['scalingPolicies'].find { |p| p["id"] == policy_id } if policy.nil? raise Fog::Rackspace::AutoScale::NotFound end response(:body => {'policy' => policy}) end
get_webhook(group_id, policy_id, webhook_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/get_webhook.rb, line 15 def get_webhook(group_id, policy_id, webhook_id) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = group['scalingPolicies'].find { |p| p["id"] == policy_id } if policy.nil? raise Fog::Rackspace::AutoScale::NotFound end webhook = policy['webhooks'].find { |w| w['id'] == webhook_id } if webhook.nil? raise Fog::Rackspace::AutoScale::NotFound end response(:body => {'webhook' => webhook}) end
list_groups()
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/list_groups.rb, line 28 def list_groups response(:body => {"groups" => self.data[:autoscale_groups]}) end
list_policies(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/list_policies.rb, line 15 def list_policies(group_id) group = self.data[:autoscale_groups][group_id] response(:body => {'policies' => group['scalingPolicies']}) end
list_webhooks(group_id, policy_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/list_webhooks.rb, line 15 def list_webhooks(group_id, policy_id) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = group['scalingPolicies'].find { |p| p["id"] == policy_id } if policy.nil? raise Fog::Rackspace::AutoScale::NotFound end response(:body => {'webhooks' => policy['webhooks']}) end
pause_group_state(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/pause_group_state.rb, line 16 def pause_group_state(group_id) Fog::Mock.not_implemented end
request(params)
click to toggle source
# File lib/fog/rackspace/auto_scale.rb, line 83 def request(params) Fog::Mock.not_implemented end
resume_group_state(group_id)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/resume_group_state.rb, line 15 def resume_group_state(group_id) Fog::Mock.not_implemented end
update_group_config(group_id, options)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/update_group_config.rb, line 18 def update_group_config(group_id, options) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end config = group['groupConfiguration'] config['name'] = options['name'] if options['name'] config['cooldown'] = options['cooldown'] if options['cooldown'] config['minEntities'] = options['minEntities'] if options['minEntities'] config['maxEntities'] = options['maxEntities'] if options['maxEntities'] config['metadata'] = options['metadata'] if options['metadata'] request(:body => config) end
update_launch_config(group_id, options)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/update_launch_config.rb, line 18 def update_launch_config(group_id, options) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end config = group['launchConfiguration'] config['args'] = options['args'] if options['args'] config['type'] = options['type'] if options['type'] request(:body => config) end
update_policy(group_id, policy_id, options)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/update_policy.rb, line 16 def update_policy(group_id, policy_id, options) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = group['scalingPolicies'].find { |p| p["id"] == policy_id } policy.merge(options) request(:body => policy) end
update_webhook(group_id, policy_id, webhook_id, options)
click to toggle source
# File lib/fog/rackspace/requests/auto_scale/update_webhook.rb, line 18 def update_webhook(group_id, policy_id, webhook_id, options) group = self.data[:autoscale_groups][group_id] if group.nil? raise Fog::Rackspace::AutoScale::NotFound end policy = group['scalingPolicies'].find { |p| p["id"] == policy_id } if policy.nil? raise Fog::Rackspace::AutoScale::NotFound end webhook = policy['webhooks'].find { |w| w['id'] == webhook_id } if webhook.nil? raise Fog::Rackspace::AutoScale::NotFound end webhook.merge(options) response(:body => webhook) end