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:
parent
1e39267fe2
commit
9ea5432fde
108 changed files with 282 additions and 216 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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']
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) })
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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'],
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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})[/]")
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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|
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'])
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'])
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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],
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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'])
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'])
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
Loading…
Add table
Reference in a new issue