1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[mock] cleanup and reset related fixes

This commit is contained in:
geemus 2011-05-19 15:35:33 -07:00
parent 1e39267fe2
commit 9ea5432fde
108 changed files with 282 additions and 216 deletions

View file

@ -201,7 +201,7 @@ For instance:
class Mock
def destroy_server(server_identity)
if data = @data[:servers].delete(server_identity)
if data = self.data[:servers].delete(server_identity)
response = Excon::Response.new
response.status = 202
response.body = data

View file

@ -34,16 +34,16 @@ module Fog
def batch_put_attributes(domain_name, items, replace_attributes = Hash.new([]))
response = Excon::Response.new
if @data[:domains][domain_name]
if self.data[:domains][domain_name]
for item_name, attributes in items do
for key, value in attributes do
@data[:domains][domain_name][item_name] ||= {}
self.data[:domains][domain_name][item_name] ||= {}
if replace_attributes[item_name] && replace_attributes[item_name].include?(key)
@data[:domains][domain_name][item_name][key.to_s] = []
self.data[:domains][domain_name][item_name][key.to_s] = []
else
@data[:domains][domain_name][item_name][key.to_s] ||= []
self.data[:domains][domain_name][item_name][key.to_s] ||= []
end
@data[:domains][domain_name][item_name][key.to_s] << value.to_s
self.data[:domains][domain_name][item_name][key.to_s] << value.to_s
end
end
response.status = 200

View file

@ -29,7 +29,7 @@ module Fog
def create_domain(domain_name)
response = Excon::Response.new
@data[:domains][domain_name] = {}
self.data[:domains][domain_name] = {}
response.status = 200
response.body = {
'BoxUsage' => Fog::AWS::Mock.box_usage,

View file

@ -37,11 +37,11 @@ module Fog
def delete_attributes(domain_name, item_name, attributes = nil)
response = Excon::Response.new
if @data[:domains][domain_name]
if self.data[:domains][domain_name]
if attributes
for key, value in attributes
if @data[:domains][domain_name][key]
@data[:domains][domain_name][key].delete('value')
if self.data[:domains][domain_name][key]
self.data[:domains][domain_name][key].delete('value')
end
end
end

View file

@ -29,7 +29,7 @@ module Fog
def delete_domain(domain_name)
response = Excon::Response.new
if @data[:domains].delete(domain_name)
if self.data[:domains].delete(domain_name)
response.status = 200
response.body = {
'BoxUsage' => Fog::AWS::Mock.box_usage,

View file

@ -38,7 +38,7 @@ module Fog
def domain_metadata(domain_name)
response = Excon::Response.new
if domain = @data[:domains][domain_name]
if domain = self.data[:domains][domain_name]
response.status = 200
attribute_names = []

View file

@ -42,16 +42,16 @@ module Fog
def get_attributes(domain_name, item_name, attributes = nil)
response = Excon::Response.new
if @data[:domains][domain_name]
if self.data[:domains][domain_name]
object = {}
if attributes
for attribute in attributes
if @data[:domains][domain_name][item_name] && @data[:domains][domain_name][item_name]
object[attribute] = @data[:domains][domain_name][item_name][attribute]
if self.data[:domains][domain_name][item_name] && self.data[:domains][domain_name][item_name]
object[attribute] = self.data[:domains][domain_name][item_name][attribute]
end
end
elsif @data[:domains][domain_name][item_name]
object = @data[:domains][domain_name][item_name]
elsif self.data[:domains][domain_name][item_name]
object = self.data[:domains][domain_name][item_name]
end
response.status = 200
response.body = {

View file

@ -34,11 +34,11 @@ module Fog
def list_domains(options = {})
response = Excon::Response.new
keys = @data[:domains].keys
keys = self.data[:domains].keys
max = options['MaxNumberOfDomains'] || keys.size
offset = options['NextToken'] || 0
domains = []
for key, value in @data[:domains].keys[offset...max]
for key, value in self.data[:domains].keys[offset...max]
domains << key
end
response.status = 200

View file

@ -43,20 +43,20 @@ module Fog
options[:expect] = {} unless options[:expect]
options[:replace] = [] unless options[:replace]
response = Excon::Response.new
if @data[:domains][domain_name]
if self.data[:domains][domain_name]
options[:expect].each do |ck, cv|
if @data[:domains][domain_name][item_name][ck] != [cv]
if self.data[:domains][domain_name][item_name][ck] != [cv]
response.status = 409
raise(Excon::Errors.status_error({:expects => 200}, response))
end
end
attributes.each do |key, value|
@data[:domains][domain_name][item_name] ||= {}
@data[:domains][domain_name][item_name][key.to_s] = [] unless @data[:domains][domain_name][item_name][key.to_s]
self.data[:domains][domain_name][item_name] ||= {}
self.data[:domains][domain_name][item_name][key.to_s] = [] unless self.data[:domains][domain_name][item_name][key.to_s]
if options[:replace].include?(key.to_s)
@data[:domains][domain_name][item_name][key.to_s] = [*value].map {|x| x.to_s}
self.data[:domains][domain_name][item_name][key.to_s] = [*value].map {|x| x.to_s}
else
@data[:domains][domain_name][item_name][key.to_s] += [*value].map {|x| x.to_s}
self.data[:domains][domain_name][item_name][key.to_s] += [*value].map {|x| x.to_s}
end
end
response.status = 200

View file

@ -32,12 +32,14 @@ module Fog
def initialize(options={})
@aws_access_key_id = options[:aws_access_key_id]
@data = self.class.data[@aws_access_key_id]
end
def data
self.class.data[@aws_access_key_id]
end
def reset_data
self.class.data.delete(@aws_access_key_id)
@data = self.class.data[@aws_access_key_id]
end
end

View file

@ -43,12 +43,14 @@ module Fog
require 'mime/types'
@aws_access_key_id = options[:aws_access_key_id]
@region = options[:region]
@data = self.class.data[@region][@aws_access_key_id]
end
def data
self.class.data[@region][@aws_access_key_id]
end
def reset_data
self.class.data[@region].delete(@aws_access_key_id)
@data = self.class.data[@region][@aws_access_key_id]
end
def signature(params)

View file

@ -35,12 +35,14 @@ module Fog
end
@rackspace_username = options[:rackspace_username]
@data = self.class.data[@rackspace_username]
end
def data
self.class.data[@rackspace_username]
end
def reset_data
self.class.data.delete(@rackspace_username)
@data = self.class.data[@rackspace_username]
end
end

View file

@ -146,14 +146,14 @@ module Fog
unless ['ap-northeast-1', 'ap-southeast-1', 'eu-west-1', 'us-east-1', 'us-west-1'].include?(@region)
raise ArgumentError, "Unknown region: #{@region.inspect}"
end
end
@data = self.class.data[@region][@aws_access_key_id]
@owner_id = @data[:owner_id]
def data
self.class.data[@region][@aws_access_key_id]
end
def reset_data
self.class.data[@region].delete(@aws_access_key_id)
@data = self.class.data[@region][@aws_access_key_id]
end
def apply_tag_filters(resources, filters)

View file

@ -46,12 +46,14 @@ module Fog
end
@bluebox_api_key = options[:bluebox_api_key]
@data = self.class.data[@bluebox_api_key]
end
def data
self.class.data[@bluebox_api_key]
end
def reset_data
self.class.data.delete(@bluebox_api_key)
@data = self.class.data[@bluebox_api_key]
end
end

View file

@ -1065,6 +1065,11 @@ module Fog
@mock_data = nil
end
def self.data_reset
Formatador.display_line("[yellow][WARN] #{self} => #data_reset is deprecated, use #reset instead[/] [light_black](#{caller.first})[/]")
self.reset
end
def initialize(options = {})
require 'builder'
require 'fog/core/parser'

View file

@ -50,12 +50,14 @@ module Fog
@go_grid_api_key = options[:go_grid_api_key]
@go_grid_shared_secret = options[:go_grid_shared_secret]
@data = self.class.data[@go_grid_api_key]
end
def data
self.class.data[@go_grid_api_key]
end
def reset_data
self.class.data.delete(@go_grid_api_key)
@data = self.class.data[@go_grid_api_key]
end
end

View file

@ -44,12 +44,14 @@ module Fog
end
@linode_api_key = options[:linode_api_key]
@data = self.class.data[@linode_api_key]
end
def data
self.class.data[@linode_api_key]
end
def reset_data
self.class.data.delete(@linode_api_key)
@data = self.class.data[@linode_api_key]
end
end

View file

@ -38,12 +38,14 @@ module Fog
end
@new_server_username = options[:new_servers_username]
@data = self.class.data[@new_server_username]
end
def data
self.class.data[@new_server_username]
end
def reset_data
self.class.data.delete(@new_server_username)
@data = self.class.data[@new_server_username]
end
end

View file

@ -66,12 +66,14 @@ module Fog
end
@rackspace_username = options[:rackspace_username]
@data = self.class.data[@rackspace_username]
end
def data
self.class.data[@rackspace_username]
end
def reset_data
self.class.data.delete(@rackspace_username)
@data = self.class.data[@rackspace_username]
end
end

View file

@ -27,14 +27,14 @@ module Fog
def allocate_address
response = Excon::Response.new
if describe_addresses.body['addressesSet'].size < @data[:limits][:addresses]
if describe_addresses.body['addressesSet'].size < self.data[:limits][:addresses]
response.status = 200
public_ip = Fog::AWS::Mock.ip_address
data ={
'instanceId' => nil,
'publicIp' => public_ip
}
@data[:addresses][public_ip] = data
self.data[:addresses][public_ip] = data
response.body = {
'publicIp' => public_ip,
'requestId' => Fog::AWS::Mock.request_id

View file

@ -35,8 +35,8 @@ module Fog
def associate_address(instance_id, public_ip)
response = Excon::Response.new
response.status = 200
instance = @data[:instances][instance_id]
address = @data[:addresses][public_ip]
instance = self.data[:instances][instance_id]
address = self.data[:addresses][public_ip]
if instance && address
address['instanceId'] = instance_id
instance['originalIpAddress'] = instance['ipAddress']

View file

@ -42,8 +42,8 @@ module Fog
response = Excon::Response.new
if instance_id && volume_id && device
response.status = 200
instance = @data[:instances][instance_id]
volume = @data[:volumes][volume_id]
instance = self.data[:instances][instance_id]
volume = self.data[:volumes][volume_id]
if instance && volume
unless volume['status'] == 'available'
raise Fog::AWS::Compute::Error.new("Client.VolumeInUse => Volume #{volume_id} is unavailable")

View file

@ -58,14 +58,14 @@ module Fog
end
response = Excon::Response.new
group = @data[:security_groups][group_name]
group = self.data[:security_groups][group_name]
if group
group['ipPermissions'] ||= []
if group_name && options['SourceSecurityGroupName'] && options['SourceSecurityGroupOwnerId']
['tcp', 'udp'].each do |protocol|
group['ipPermissions'] << {
'groups' => [{'groupName' => group_name, 'userId' => @owner_id}],
'groups' => [{'groupName' => group_name, 'userId' => self.data[:owner_id]}],
'fromPort' => 1,
'ipRanges' => [],
'ipProtocol' => protocol,
@ -73,7 +73,7 @@ module Fog
}
end
group['ipPermissions'] << {
'groups' => [{'groupName' => group_name, 'userId' => @owner_id}],
'groups' => [{'groupName' => group_name, 'userId' => self.data[:owner_id]}],
'fromPort' => -1,
'ipRanges' => [],
'ipProtocol' => 'icmp',

View file

@ -33,14 +33,14 @@ module Fog
def create_key_pair(key_name)
response = Excon::Response.new
unless @data[:key_pairs][key_name]
unless self.data[:key_pairs][key_name]
response.status = 200
data = {
'keyFingerprint' => Fog::AWS::Mock.key_fingerprint,
'keyMaterial' => Fog::AWS::Mock.key_material,
'keyName' => key_name
}
@data[:key_pairs][key_name] = data
self.data[:key_pairs][key_name] = data
response.body = {
'requestId' => Fog::AWS::Mock.request_id
}.merge!(data)

View file

@ -33,14 +33,14 @@ module Fog
def create_security_group(name, description)
response = Excon::Response.new
unless @data[:security_groups][name]
unless self.data[:security_groups][name]
data = {
'groupDescription' => description,
'groupName' => name,
'ipPermissions' => [],
'ownerId' => @owner_id
'ownerId' => self.data[:owner_id]
}
@data[:security_groups][name] = data
self.data[:security_groups][name] = data
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'return' => true

View file

@ -42,12 +42,12 @@ module Fog
def create_snapshot(volume_id, description = nil)
response = Excon::Response.new
if volume = @data[:volumes][volume_id]
if volume = self.data[:volumes][volume_id]
response.status = 200
snapshot_id = Fog::AWS::Mock.snapshot_id
data = {
'description' => description,
'ownerId' => @owner_id,
'ownerId' => self.data[:owner_id],
'progress' => nil,
'snapshotId' => snapshot_id,
'startTime' => Time.now,
@ -55,11 +55,11 @@ module Fog
'volumeId' => volume_id,
'volumeSize' => volume['size']
}
@data[:snapshots][snapshot_id] = data
self.data[:snapshots][snapshot_id] = data
response.body = {
'requestId' => Fog::AWS::Mock.request_id
}.merge!(data)
@data[:snapshots][snapshot_id]['tagSet'] = {}
self.data[:snapshots][snapshot_id]['tagSet'] = {}
else
response.status = 400
raise(Excon::Errors.status_error({:expects => 200}, response))

View file

@ -53,7 +53,7 @@ module Fog
when /^vol\-[a-z0-9]{8}$/i
'volume'
end
if type && @data[:"#{type}s"][resource_id]
if type && self.data[:"#{type}s"][resource_id]
{ 'resourceId' => resource_id, 'resourceType' => type }
else
raise(Fog::Service::NotFound.new("The #{type} ID '#{resource_id}' does not exist"))
@ -61,11 +61,11 @@ module Fog
end
tags.each do |key, value|
@data[:tags][key] ||= {}
@data[:tags][key][value] ||= []
@data[:tags][key][value] = @data[:tags][key][value] & tagged
self.data[:tags][key] ||= {}
self.data[:tags][key][value] ||= []
self.data[:tags][key][value] = self.data[:tags][key][value] & tagged
tagged.each {|resource| @data[:"#{resource['resourceType']}s"][resource['resourceId']]['tagSet'][key] = value}
tagged.each {|resource| self.data[:"#{resource['resourceType']}s"][resource['resourceId']]['tagSet'][key] = value}
end
response = Excon::Response.new

View file

@ -40,7 +40,7 @@ module Fog
def create_volume(availability_zone, size, snapshot_id = nil)
response = Excon::Response.new
if availability_zone && size
if snapshot_id && !@data[:snapshots][snapshot_id]
if snapshot_id && !self.data[:snapshots][snapshot_id]
raise Fog::AWS::Compute::NotFound.new("The snapshot '#{snapshot_id}' does not exist.")
end
@ -56,7 +56,7 @@ module Fog
'tagSet' => {},
'volumeId' => volume_id
}
@data[:volumes][volume_id] = data
self.data[:volumes][volume_id] = data
response.body = {
'requestId' => Fog::AWS::Mock.request_id
}.merge!(data.reject {|key,value| !['availabilityZone','createTime','size','snapshotId','status','volumeId'].include?(key) })

View file

@ -32,7 +32,7 @@ module Fog
def delete_key_pair(key_name)
response = Excon::Response.new
@data[:key_pairs].delete(key_name)
self.data[:key_pairs].delete(key_name)
response.status = 200
response.body = {
'requestId' => Fog::AWS::Mock.request_id,

View file

@ -31,8 +31,8 @@ module Fog
class Mock
def delete_security_group(name)
response = Excon::Response.new
if @data[:security_groups][name]
@data[:security_groups].delete(name)
if self.data[:security_groups][name]
self.data[:security_groups].delete(name)
response.status = 200
response.body = {
'requestId' => Fog::AWS::Mock.request_id,

View file

@ -32,7 +32,7 @@ module Fog
def delete_snapshot(snapshot_id)
response = Excon::Response.new
if snapshot = @data[:snapshots].delete(snapshot_id)
if snapshot = self.data[:snapshots].delete(snapshot_id)
response.status = true
response.body = {
'requestId' => Fog::AWS::Mock.request_id,

View file

@ -53,7 +53,7 @@ module Fog
when /^vol\-[a-z0-9]{8}$/i
'volume'
end
if type && @data[:"#{type}s"][resource_id]
if type && self.data[:"#{type}s"][resource_id]
{ 'resourceId' => resource_id, 'resourceType' => type }
else
raise(Fog::Service::NotFound.new("The #{type} ID '#{resource_id}' does not exist"))
@ -61,11 +61,11 @@ module Fog
end
tags.each do |key, value|
@data[:tags][key][value] = @data[:tags][key][value] - tagged
self.data[:tags][key][value] = self.data[:tags][key][value] - tagged
end
tagged.each do |resource|
object = @data[:"#{resource['resourceType']}s"][resource['resourceId']]
object = self.data[:"#{resource['resourceType']}s"][resource['resourceId']]
tags.each do |key, value|
tagset = object['tagSet']
tagset.delete(key) if tagset.has_key?(key) && (value.nil? || tagset[key] == value)

View file

@ -32,12 +32,12 @@ module Fog
def delete_volume(volume_id)
response = Excon::Response.new
if volume = @data[:volumes][volume_id]
if volume = self.data[:volumes][volume_id]
if volume["attachmentSet"].any?
attach = volume["attachmentSet"].first
raise Fog::AWS::Compute::Error.new("Client.VolumeInUse => Volume #{volume_id} is currently attached to #{attach["instanceId"]}")
end
@data[:deleted_at][volume_id] = Time.now
self.data[:deleted_at][volume_id] = Time.now
volume['status'] = 'deleting'
response.status = 200
response.body = {

View file

@ -44,7 +44,7 @@ module Fog
response = Excon::Response.new
addresses_set = @data[:addresses].values
addresses_set = self.data[:addresses].values
aliases = {'public-ip' => 'publicIp', 'instance-id' => 'instanceId'}
for filter_key, filter_value in filters

View file

@ -93,7 +93,7 @@ module Fog
'virtualization-type' => 'virtualizationType'
}
image_set = @data[:images].values
image_set = self.data[:images].values
for filter_key, filter_value in filters
aliased_key = aliases[filter_key]

View file

@ -83,7 +83,7 @@ module Fog
response = Excon::Response.new
instance_set = @data[:instances].values
instance_set = self.data[:instances].values
instance_set = apply_tag_filters(instance_set, filters)
aliases = {
@ -166,20 +166,20 @@ module Fog
when 'rebooting'
instance['instanceState'] = { 'code' => 16, 'name' => 'running' }
when 'shutting-down'
if Time.now - @data[:deleted_at][instance['instanceId']] >= Fog::Mock.delay * 2
@data[:deleted_at].delete(instance['instanceId'])
@data[:instances].delete(instance['instanceId'])
elsif Time.now - @data[:deleted_at][instance['instanceId']] >= Fog::Mock.delay
if Time.now - self.data[:deleted_at][instance['instanceId']] >= Fog::Mock.delay * 2
self.data[:deleted_at].delete(instance['instanceId'])
self.data[:instances].delete(instance['instanceId'])
elsif Time.now - self.data[:deleted_at][instance['instanceId']] >= Fog::Mock.delay
instance['instanceState'] = { 'code' => 48, 'name' => 'terminating' }
end
when 'terminating'
if Time.now - @data[:deleted_at][instance['instanceId']] >= Fog::Mock.delay
@data[:deleted_at].delete(instance['instanceId'])
@data[:instances].delete(instance['instanceId'])
if Time.now - self.data[:deleted_at][instance['instanceId']] >= Fog::Mock.delay
self.data[:deleted_at].delete(instance['instanceId'])
self.data[:instances].delete(instance['instanceId'])
end
end
if @data[:instances][instance['instanceId']]
if self.data[:instances][instance['instanceId']]
reservation_set[instance['reservationId']] ||= {
'groupSet' => instance['groupSet'],

View file

@ -44,7 +44,7 @@ module Fog
response = Excon::Response.new
key_set = @data[:key_pairs].values
key_set = self.data[:key_pairs].values
aliases = {'fingerprint' => 'keyFingerprint', 'key-name' => 'keyName'}
for filter_key, filter_value in filters

View file

@ -54,7 +54,7 @@ module Fog
response = Excon::Response.new
security_group_info = @data[:security_groups].values
security_group_info = self.data[:security_groups].values
aliases = {
'description' => 'groupDescription',

View file

@ -63,7 +63,7 @@ module Fog
response = Excon::Response.new
snapshot_set = @data[:snapshots].values
snapshot_set = self.data[:snapshots].values
if filters.delete('owner-alias')
Formatador.display_line("[yellow][WARN] describe_snapshots with owner-alias is not mocked[/] [light_black](#{caller.first})[/]")

View file

@ -54,7 +54,7 @@ module Fog
response = Excon::Response.new
volume_set = @data[:volumes].values
volume_set = self.data[:volumes].values
volume_set = apply_tag_filters(volume_set, filters)
aliases = {
@ -94,13 +94,13 @@ module Fog
volume['status'] = 'available'
end
when 'deleting'
if Time.now - @data[:deleted_at][volume['volumeId']] >= Fog::Mock.delay
@data[:deleted_at].delete(volume['volumeId'])
@data[:volumes].delete(volume['volumeId'])
if Time.now - self.data[:deleted_at][volume['volumeId']] >= Fog::Mock.delay
self.data[:deleted_at].delete(volume['volumeId'])
self.data[:volumes].delete(volume['volumeId'])
end
end
end
volume_set = volume_set.reject {|volume| !@data[:volumes][volume['volumeId']]}
volume_set = volume_set.reject {|volume| !self.data[:volumes][volume['volumeId']]}
response.status = 200
response.body = {

View file

@ -41,7 +41,7 @@ module Fog
def detach_volume(volume_id, options = {})
response = Excon::Response.new
response.status = 200
if (volume = @data[:volumes][volume_id]) && !volume['attachmentSet'].empty?
if (volume = self.data[:volumes][volume_id]) && !volume['attachmentSet'].empty?
data = volume['attachmentSet'].pop
volume['status'] = 'available'
response.status = 200

View file

@ -33,9 +33,9 @@ module Fog
def disassociate_address(public_ip)
response = Excon::Response.new
response.status = 200
if address = @data[:addresses][public_ip]
if address = self.data[:addresses][public_ip]
instance_id = address['instanceId']
instance = @data[:instances][instance_id]
instance = self.data[:instances][instance_id]
instance['ipAddress'] = instance['originalIpAddress']
instance['dnsName'] = Fog::AWS::Mock.dns_name_for(instance['ipAddress'])
address['instanceId'] = nil

View file

@ -34,7 +34,7 @@ module Fog
def get_console_output(instance_id)
response = Excon::Response.new
if instance = @data[:instances][instance_id]
if instance = self.data[:instances][instance_id]
response.status = 200
response.body = {
'instanceId' => instance_id,

View file

@ -36,7 +36,7 @@ module Fog
def get_password_data(instance_id)
response = Excon::Response.new
if instance = @data[:instances][instance_id]
if instance = self.data[:instances][instance_id]
response.status = 200
response.body = {
'instanceId' => instance_id,

View file

@ -34,13 +34,13 @@ module Fog
def import_key_pair(key_name, public_key_material)
response = Excon::Response.new
unless @data[:key_pairs][key_name]
unless self.data[:key_pairs][key_name]
response.status = 200
data = {
'keyFingerprint' => Fog::AWS::Mock.key_fingerprint,
'keyName' => key_name
}
@data[:key_pairs][key_name] = data
self.data[:key_pairs][key_name] = data
response.body = {
'requestId' => Fog::AWS::Mock.request_id
}.merge!(data)

View file

@ -36,7 +36,7 @@ module Fog
response = Excon::Response.new
response.status = 200
[*instance_ids].each do |instance_id|
if instance = @data[:instances][instance_id]
if instance = self.data[:instances][instance_id]
instance['monitoring']['state'] = 'enabled'
else
raise Fog::AWS::Compute::NotFound.new("The instance ID '#{instance_ids}' does not exist")

View file

@ -33,9 +33,9 @@ module Fog
def reboot_instances(instance_id = [])
response = Excon::Response.new
instance_id = [*instance_id]
if (@data[:instances].keys & instance_id).length == instance_id.length
if (self.data[:instances].keys & instance_id).length == instance_id.length
for instance_id in instance_id
@data[:instances][instance_id]['status'] = 'rebooting'
self.data[:instances][instance_id]['status'] = 'rebooting'
end
response.status = 200
response.body = {

View file

@ -29,7 +29,7 @@ module Fog
def release_address(public_ip)
response = Excon::Response.new
if (address = @data[:addresses].delete(public_ip))
if (address = self.data[:addresses].delete(public_ip))
response.status = 200
response.body = {
'requestId' => Fog::AWS::Mock.request_id,

View file

@ -56,7 +56,7 @@ module Fog
group_name = options['GroupName']
end
response = Excon::Response.new
group = @data[:security_groups][group_name]
group = self.data[:security_groups][group_name]
if group
if options['SourceSecurityGroupName'] && options['SourceSecurityGroupOwnerId']
group['ipPermissions'].delete_if {|permission|

View file

@ -147,10 +147,10 @@ module Fog
'rootDeviceType' => 'instance-store'
}
instances_set << instance
@data[:instances][instance_id] = instance.merge({
self.data[:instances][instance_id] = instance.merge({
'architecture' => 'i386',
'groupSet' => group_set,
'ownerId' => @owner_id,
'ownerId' => self.data[:owner_id],
'privateIpAddress' => nil,
'reservationId' => reservation_id,
'stateReason' => {},
@ -160,7 +160,7 @@ module Fog
response.body = {
'groupSet' => group_set,
'instancesSet' => instances_set,
'ownerId' => @owner_id,
'ownerId' => self.data[:owner_id],
'requestId' => Fog::AWS::Mock.request_id,
'reservationId' => reservation_id
}

View file

@ -40,15 +40,15 @@ module Fog
def terminate_instances(instance_id)
response = Excon::Response.new
instance_id = [*instance_id]
if (@data[:instances].keys & instance_id).length == instance_id.length
if (self.data[:instances].keys & instance_id).length == instance_id.length
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'instancesSet' => []
}
response.status = 200
for id in instance_id
instance = @data[:instances][id]
@data[:deleted_at][id] = Time.now
instance = self.data[:instances][id]
self.data[:deleted_at][id] = Time.now
code = case instance['instanceState']['name']
when 'pending'
0

View file

@ -36,7 +36,7 @@ module Fog
response = Excon::Response.new
response.status = 200
[*instance_ids].each do |instance_id|
if instance = @data[:instances][instance_id]
if instance = self.data[:instances][instance_id]
instance['monitoring']['state'] = 'enabled'
else
raise Fog::AWS::Compute::NotFound.new("The instance ID '#{instance_ids}' does not exist")

View file

@ -29,7 +29,7 @@ module Fog
def grid_image_get(options={})
#response = Excon::Response.new
#images = @data[:list].values
#images = self.data[:list].values
#for image in images
# case image['state']
# when 'Available'

View file

@ -32,7 +32,7 @@ module Fog
def grid_image_list(options={})
#response = Excon::Response.new
#images = @data[:list].values
#images = self.data[:list].values
#for image in images
# case image['state']
# when 'Available'

View file

@ -21,9 +21,9 @@ module Fog
response = Excon::Response.new
response.status = 204
@data[:servers][server_id].delete('old_flavorId')
@data[:last_modified][:servers][server_id] = Time.now
@data[:servers][server_id]['status'] = 'ACTIVE'
self.data[:servers][server_id].delete('old_flavorId')
self.data[:last_modified][:servers][server_id] = Time.now
self.data[:servers][server_id]['status'] = 'ACTIVE'
response
end

View file

@ -50,8 +50,8 @@ module Fog
'updated' => now.to_s,
}
@data[:last_modified][:images][data['id']] = now
@data[:images][data['id']] = data
self.data[:last_modified][:images][data['id']] = now
self.data[:images][data['id']] = data
response.body = { 'image' => data.reject {|key, value| !['id', 'name', 'serverId', 'status', 'updated'].include?(key)} }
response
end

View file

@ -82,8 +82,8 @@ module Fog
'progress' => 0,
'status' => 'BUILD'
}
@data[:last_modified][:servers][data['id']] = Time.now
@data[:servers][data['id']] = data
self.data[:last_modified][:servers][data['id']] = Time.now
self.data[:servers][data['id']] = data
response.body = { 'server' => data.merge({'adminPass' => 'password'}) }
response
end

View file

@ -27,8 +27,8 @@ module Fog
response.status = 409
raise(Excon::Errors.status_error({:expects => 202}, response))
else
@data[:last_modified][:images].delete(image_id)
@data[:images].delete(image_id)
self.data[:last_modified][:images].delete(image_id)
self.data[:images].delete(image_id)
response.status = 202
end
response

View file

@ -27,8 +27,8 @@ module Fog
response.status = 409
raise(Excon::Errors.status_error({:expects => 202}, response))
else
@data[:last_modified][:servers].delete(server_id)
@data[:servers].delete(server_id)
self.data[:last_modified][:servers].delete(server_id)
self.data[:servers].delete(server_id)
response.status = 202
end
response

View file

@ -28,11 +28,11 @@ module Fog
def list_images_detail
response = Excon::Response.new
images = @data[:images].values
images = self.data[:images].values
for image in images
case image['status']
when 'SAVING'
if Time.now - @data[:last_modified][:images][image['id']] >= Fog::Mock.delay
if Time.now - self.data[:last_modified][:images][image['id']] >= Fog::Mock.delay
image['status'] = 'ACTIVE'
end
end

View file

@ -35,11 +35,11 @@ module Fog
def list_servers_detail
response = Excon::Response.new
servers = @data[:servers].values
servers = self.data[:servers].values
for server in servers
case server['status']
when 'BUILD'
if Time.now - @data[:last_modified][:servers][server['id']] > 2
if Time.now - self.data[:last_modified][:servers][server['id']] > 2
server['status'] = 'ACTIVE'
end
end

View file

@ -24,11 +24,11 @@ module Fog
response.status = 202
# keep track of this for reverts
@data[:servers][server_id]['old_flavorId'] = @data[:servers][server_id]['flavorId']
self.data[:servers][server_id]['old_flavorId'] = self.data[:servers][server_id]['flavorId']
@data[:servers][server_id]['flavorId'] = flavor_id
@data[:last_modified][:servers][server_id] = Time.now
@data[:servers][server_id]['status'] = 'VERIFY_RESIZE'
self.data[:servers][server_id]['flavorId'] = flavor_id
self.data[:last_modified][:servers][server_id] = Time.now
self.data[:servers][server_id]['status'] = 'VERIFY_RESIZE'
response
end

View file

@ -21,10 +21,10 @@ module Fog
response = Excon::Response.new
response.status = 202
@data[:servers][server_id]['flavorId'] = @data[:servers][server_id]['old_flavorId']
@data[:servers][server_id].delete('old_flavorId')
@data[:last_modified][:servers][server_id] = Time.now
@data[:servers][server_id]['status'] = 'ACTIVE'
self.data[:servers][server_id]['flavorId'] = self.data[:servers][server_id]['old_flavorId']
self.data[:servers][server_id].delete('old_flavorId')
self.data[:last_modified][:servers][server_id] = Time.now
self.data[:servers][server_id]['status'] = 'ACTIVE'
response
end

View file

@ -47,12 +47,14 @@ module Fog
end
@slicehost_password = options[:slicehost_password]
@data = self.class.data[@slicehost_password]
end
def data
self.class.data[@slicehost_password]
end
def reset_data
self.class.data.delete(@slicehost_password)
@data = self.class.data[@slicehost_password]
end
end

View file

@ -68,7 +68,14 @@ module Fog
def initialize(options={})
@storm_on_demand_username = options[:storm_on_demand_username]
@data = self.class.data[@storm_on_demand_username]
end
def data
self.class.data[@storm_on_demand_username]
end
def reset_data
self.class.data.delete(@storm_on_demand_username)
end
end

View file

@ -54,12 +54,14 @@ module Fog
def initialize(options={})
@voxel_api_key = options[:voxel_api_key]
@data = self.class.data[@voxel_api_key]
end
def data
self.class.data[@voxel_api_key]
end
def reset_data
self.class.data.delete(@voxel_api_key)
@data = self.class.data[@voxel_api_key]
end
end

View file

@ -66,7 +66,7 @@ module Fog
def self.reset
providers = Fog.providers.map{|p| eval("Fog::#{p}")}
services = providers.map{|p| p.constants.map{|s| eval("#{p}::#{s}")}}.flatten
services.select!{|s| s.constants.include?(:Mock)}
services = services.select {|s| s.constants.include?(:Mock)}
services.each do |service|
next unless service::Mock.respond_to?(:reset)

View file

@ -48,12 +48,14 @@ module Fog
require 'mime/types'
@aws_access_key_id = options[:aws_access_key_id]
@region = options[:region]
@data = self.class.data[@region][@aws_access_key_id]
end
def data
self.class.data[@region][@aws_access_key_id]
end
def reset_data
self.class.data[@region].delete(@aws_access_key_id)
@data = self.class.data[@region][@aws_access_key_id]
end
def signature(params)

View file

@ -44,12 +44,14 @@ module Fog
@bluebox_customer_id = options[:bluebox_customer_id]
@bluebox_api_key = options[:bluebox_api_key]
@data = self.class.data[@bluebox_customer_id]
end
def data
self.class.data[@bluebox_customer_id]
end
def reset_data
self.class.data.delete(@bluebox_customer_id)
@data = self.class.data[@bluebox_customer_id]
end
end

View file

@ -45,12 +45,14 @@ module Fog
@dnsimple_email = options[:dnsimple_email]
@dnsimple_password = options[:dnsimple_password]
@data = self.class.data[@dnsimple_email]
end
def data
self.class.data[@dnsimple_email]
end
def reset_data
self.class.data.delete(@dnsimple_email)
@data = self.class.data[@dnsimple_email]
end
end

View file

@ -43,12 +43,14 @@ module Fog
end
@linode_api_key = options[:linode_api_key]
@data = self.class.data[@linode_api_key]
end
def data
self.class.data[@linode_api_key]
end
def reset_data
self.class.data.delete(@linode_api_key)
@data = self.class.data[@linode_api_key]
end
end

View file

@ -43,12 +43,14 @@ module Fog
end
@slicehost_password = options[:slicehost_password]
@data = self.class.data[@slicehost_password]
end
def data
self.class.data[@slicehost_password]
end
def reset_data
self.class.data.delete(@slicehost_password)
@data = self.class.data[@slicehost_password]
end
end

View file

@ -50,12 +50,14 @@ module Fog
@zerigo_email = options[:zerigo_email]
@zerigo_token = options[:zerigo_token]
@data = self.class.data[@zerigo_email]
end
def data
self.class.data[@zerigo_email]
end
def reset_data
self.class.data.delete(@zerigo_email)
@data = self.class.data[@zerigo_email]
end
end

View file

@ -179,12 +179,14 @@ module Fog
raise ArgumentError, "Unknown region: #{options[:region].inspect}"
end
@region = options[:region]
@data = self.class.data[@region][@aws_access_key_id]
end
def data
self.class.data[@region][@aws_access_key_id]
end
def reset_data
self.class.data[@region].delete(@aws_access_key_id)
@data = self.class.data[@region][@aws_access_key_id]
end
def signature(params)

View file

@ -119,6 +119,10 @@ module Fog
end
end
def self.reset
@data = nil
end
def initialize(options={})
unless options.delete(:provider)
location = caller.first
@ -129,16 +133,14 @@ module Fog
require 'mime/types'
@google_storage_access_key_id = options[:google_storage_access_key_id]
@data = self.class.data[@google_storage_access_key_id]
end
def self.reset
@data = nil
def data
self.class.data[@google_storage_access_key_id]
end
def reset_data
self.class.data.delete(@google_storage_access_key_id)
@data = self.class.data[@google_storage_access_key_id]
end
def signature(params)

View file

@ -35,7 +35,10 @@ module Fog
end
@local_root = ::File.expand_path(options[:local_root])
@data = self.class.data[@local_root]
end
def data
self.class.data[@local_root]
end
def local_root
@ -48,7 +51,6 @@ module Fog
def reset_data
self.class.data.delete(@local_root)
@data = self.class.data[@local_root]
end
end

View file

@ -60,12 +60,14 @@ module Fog
require 'mime/types'
@rackspace_api_key = options[:rackspace_api_key]
@rackspace_username = options[:rackspace_username]
@data = self.class.data[@rackspace_username]
end
def data
self.class.data[@rackspace_username]
end
def reset_data
self.class.data.delete(@rackspace_username)
@data = self.class.data[@rackspace_username]
end
end

View file

@ -47,9 +47,9 @@ module Fog
def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
response = Excon::Response.new
source_bucket = @data[:buckets][source_bucket_name]
source_bucket = self.data[:buckets][source_bucket_name]
source_object = source_bucket && source_bucket[:objects][source_object_name]
target_bucket = @data[:buckets][target_bucket_name]
target_bucket = self.data[:buckets][target_bucket_name]
if source_object && target_bucket
response.status = 200

View file

@ -30,14 +30,14 @@ module Fog
def delete_bucket(bucket_name)
response = Excon::Response.new
if @data[:buckets][bucket_name].nil?
if self.data[:buckets][bucket_name].nil?
response.status = 404
raise(Excon::Errors.status_error({:expects => 204}, response))
elsif @data[:buckets][bucket_name] && !@data[:buckets][bucket_name][:objects].empty?
elsif self.data[:buckets][bucket_name] && !self.data[:buckets][bucket_name][:objects].empty?
response.status = 409
raise(Excon::Errors.status_error({:expects => 204}, response))
else
@data[:buckets].delete(bucket_name)
self.data[:buckets].delete(bucket_name)
response.status = 204
end
response

View file

@ -33,7 +33,7 @@ module Fog
def delete_object(bucket_name, object_name)
response = Excon::Response.new
if bucket = @data[:buckets][bucket_name]
if bucket = self.data[:buckets][bucket_name]
response.status = 204
bucket[:objects].delete(object_name)
else

View file

@ -67,7 +67,7 @@ module Fog
Fog::Mock.not_implemented
end
response = Excon::Response.new
if bucket = @data[:buckets][bucket_name]
if bucket = self.data[:buckets][bucket_name]
contents = bucket[:objects].values.sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
(options['prefix'] && object['Key'][0...options['prefix'].length] != options['prefix']) ||
(options['marker'] && object['Key'] <= options['marker'])

View file

@ -50,7 +50,7 @@ module Fog
def get_bucket_acl(bucket_name)
response = Excon::Response.new
if acl = @data[:acls][:bucket][bucket_name]
if acl = self.data[:acls][:bucket][bucket_name]
response.status = 200
response.body = acl
else

View file

@ -36,7 +36,7 @@ module Fog
def get_bucket_location(bucket_name)
response = Excon::Response.new
if bucket = @data[:buckets][bucket_name]
if bucket = self.data[:buckets][bucket_name]
response.status = 200
response.body = {'LocationConstraint' => bucket['LocationConstraint'] }
else

View file

@ -65,7 +65,7 @@ module Fog
raise ArgumentError.new('object_name is required')
end
response = Excon::Response.new
if (bucket = @data[:buckets][bucket_name]) && (object = bucket[:objects][object_name])
if (bucket = self.data[:buckets][bucket_name]) && (object = bucket[:objects][object_name])
if options['If-Match'] && options['If-Match'] != object['ETag']
response.status = 412
elsif options['If-Modified-Since'] && options['If-Modified-Since'] > Time.parse(object['Last-Modified'])

View file

@ -61,7 +61,7 @@ module Fog
def get_object_acl(bucket_name, object_name)
response = Excon::Response.new
if acl = @data[:acls][:object][bucket_name] && @data[:acls][:object][bucket_name][object_name]
if acl = self.data[:acls][:object][bucket_name] && self.data[:acls][:object][bucket_name][object_name]
response.status = 200
response.body = acl
else

View file

@ -36,7 +36,7 @@ module Fog
def get_request_payment(bucket_name)
response = Excon::Response.new
if bucket = @data[:buckets][bucket_name]
if bucket = self.data[:buckets][bucket_name]
response.status = 200
response.body = { 'Payer' => bucket['Payer'] }
else

View file

@ -39,7 +39,7 @@ module Fog
def get_service
response = Excon::Response.new
response.headers['Status'] = 200
buckets = @data[:buckets].values.map do |bucket|
buckets = self.data[:buckets].values.map do |bucket|
bucket.reject do |key, value|
!['CreationDate', 'Name'].include?(key)
end

View file

@ -48,7 +48,7 @@ DATA
if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
else
@data[:acls][:bucket][bucket_name] = self.class.acls(acl)
self.data[:acls][:bucket][bucket_name] = self.class.acls(acl)
end
response = Excon::Response.new
@ -65,8 +65,8 @@ DATA
else
bucket['LocationConstraint'] = nil
end
unless @data[:buckets][bucket_name]
@data[:buckets][bucket_name] = bucket
unless self.data[:buckets][bucket_name]
self.data[:buckets][bucket_name] = bucket
end
response
end

View file

@ -52,8 +52,8 @@ module Fog
if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
else
@data[:acls][:object][bucket_name] ||= {}
@data[:acls][:object][bucket_name][object_name] = self.class.acls(acl)
self.data[:acls][:object][bucket_name] ||= {}
self.data[:acls][:object][bucket_name][object_name] = self.class.acls(acl)
end
data = Fog::Storage.parse_data(data)
@ -61,7 +61,7 @@ module Fog
data[:body] = data[:body].read
end
response = Excon::Response.new
if (bucket = @data[:buckets][bucket_name])
if (bucket = self.data[:buckets][bucket_name])
response.status = 200
object = {
:body => data[:body],

View file

@ -35,7 +35,7 @@ DATA
def put_request_payment(bucket_name, payer)
response = Excon::Response.new
if bucket = @data[:buckets][bucket_name]
if bucket = self.data[:buckets][bucket_name]
response.status = 200
bucket['Payer'] = payer
else

View file

@ -43,9 +43,9 @@ module Fog
def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
response = Excon::Response.new
source_bucket = @data[:buckets][source_bucket_name]
source_bucket = self.data[:buckets][source_bucket_name]
source_object = source_bucket && source_bucket[:objects][source_object_name]
target_bucket = @data[:buckets][target_bucket_name]
target_bucket = self.data[:buckets][target_bucket_name]
if source_object && target_bucket
response.status = 200

View file

@ -26,14 +26,14 @@ module Fog
def delete_bucket(bucket_name)
response = Excon::Response.new
if @data[:buckets][bucket_name].nil?
if self.data[:buckets][bucket_name].nil?
response.status = 404
raise(Excon::Errors.status_error({:expects => 204}, response))
elsif @data[:buckets][bucket_name] && !@data[:buckets][bucket_name][:objects].empty?
elsif self.data[:buckets][bucket_name] && !self.data[:buckets][bucket_name][:objects].empty?
response.status = 409
raise(Excon::Errors.status_error({:expects => 204}, response))
else
@data[:buckets].delete(bucket_name)
self.data[:buckets].delete(bucket_name)
response.status = 204
end
response

View file

@ -29,7 +29,7 @@ module Fog
def delete_object(bucket_name, object_name)
response = Excon::Response.new
if bucket = @data[:buckets][bucket_name]
if bucket = self.data[:buckets][bucket_name]
if object = bucket[:objects][object_name]
response.status = 204
bucket[:objects].delete(object_name)

View file

@ -64,7 +64,7 @@ module Fog
response = Excon::Response.new
name = /(\w+\.?)*/.match(bucket_name)
if bucket_name == name.to_s
if bucket = @data[:buckets][bucket_name]
if bucket = self.data[:buckets][bucket_name]
contents = bucket[:objects].values.sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
(options['prefix'] && object['Key'][0...options['prefix'].length] != options['prefix']) ||
(options['marker'] && object['Key'] <= options['marker'])

View file

@ -47,7 +47,7 @@ module Fog
def get_bucket_acl(bucket_name)
response = Excon::Response.new
if acl = @data[:acls][:bucket][bucket_name]
if acl = self.data[:acls][:bucket][bucket_name]
response.status = 200
response.body = acl
else

View file

@ -62,7 +62,7 @@ module Fog
raise ArgumentError.new('object_name is required')
end
response = Excon::Response.new
if (bucket = @data[:buckets][bucket_name]) && (object = bucket[:objects][object_name])
if (bucket = self.data[:buckets][bucket_name]) && (object = bucket[:objects][object_name])
if options['If-Match'] && options['If-Match'] != object['ETag']
response.status = 412
elsif options['If-Modified-Since'] && options['If-Modified-Since'] > Time.parse(object['Last-Modified'])

View file

@ -58,7 +58,7 @@ module Fog
def get_object_acl(bucket_name, object_name)
response = Excon::Response.new
if acl = @data[:acls][:object][bucket_name] && @data[:acls][:object][bucket_name][object_name]
if acl = self.data[:acls][:object][bucket_name] && self.data[:acls][:object][bucket_name][object_name]
response.status = 200
response.body = acl
else

View file

@ -35,14 +35,14 @@ module Fog
def get_service
response = Excon::Response.new
response.headers['Status'] = 200
buckets = @data[:buckets].values.map do |bucket|
buckets = self.data[:buckets].values.map do |bucket|
bucket.reject do |key, value|
!['CreationDate', 'Name'].include?(key)
end
end
response.body = {
'Buckets' => buckets,
'Owner' => { 'DisplayName' => 'owner', 'ID' => 'some_id'}
'Owner' => { 'ID' => 'some_id'}
}
response
end

View file

@ -44,7 +44,7 @@ DATA
if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
raise Excon::Errors::BadRequest.new('invalid x-goog-acl')
else
@data[:acls][:bucket][bucket_name] = self.class.acls(options[acl])
self.data[:acls][:bucket][bucket_name] = self.class.acls(options[acl])
end
response = Excon::Response.new
response.status = 200
@ -60,8 +60,8 @@ DATA
else
bucket['LocationConstraint'] = ''
end
if @data[:buckets][bucket_name].nil?
@data[:buckets][bucket_name] = bucket
if self.data[:buckets][bucket_name].nil?
self.data[:buckets][bucket_name] = bucket
else
response.status = 409
raise(Excon::Errors.status_error({:expects => 200}, response))

View file

@ -46,8 +46,8 @@ module Fog
if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
raise Excon::Errors::BadRequest.new('invalid x-goog-acl')
else
@data[:acls][:object][bucket_name] ||= {}
@data[:acls][:object][bucket_name][object_name] = self.class.acls(acl)
self.data[:acls][:object][bucket_name] ||= {}
self.data[:acls][:object][bucket_name][object_name] = self.class.acls(acl)
end
data = Fog::Storage.parse_data(data)
@ -55,7 +55,7 @@ module Fog
data[:body] = data[:body].read
end
response = Excon::Response.new
if (bucket = @data[:buckets][bucket_name])
if (bucket = self.data[:buckets][bucket_name])
response.status = 200
object = {
:body => data[:body],

Some files were not shown because too many files have changed in this diff Show more