fog 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. data/Gemfile.lock +11 -6
  2. data/changelog.txt +49 -0
  3. data/fog.gemspec +5 -4
  4. data/lib/fog.rb +1 -1
  5. data/lib/fog/aws/cloud_formation.rb +124 -0
  6. data/lib/fog/aws/elb.rb +4 -1
  7. data/lib/fog/aws/iam.rb +6 -0
  8. data/lib/fog/aws/parsers/cloud_formation/basic.rb +12 -0
  9. data/lib/fog/aws/parsers/cloud_formation/create_stack.rb +19 -0
  10. data/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb +31 -0
  11. data/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb +31 -0
  12. data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +72 -0
  13. data/lib/fog/aws/parsers/cloud_formation/get_template.rb +19 -0
  14. data/lib/fog/aws/parsers/cloud_formation/validate_template.rb +52 -0
  15. data/lib/fog/aws/parsers/iam/login_profile.rb +27 -0
  16. data/lib/fog/aws/parsers/iam/upload_server_certificate.rb +26 -0
  17. data/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb +38 -0
  18. data/lib/fog/aws/parsers/rds/create_db_instance.rb +34 -0
  19. data/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb +34 -0
  20. data/lib/fog/aws/parsers/rds/create_db_parameter_group.rb +35 -0
  21. data/lib/fog/aws/parsers/rds/create_db_security_group.rb +38 -0
  22. data/lib/fog/aws/parsers/rds/create_db_snapshot.rb +35 -0
  23. data/lib/fog/aws/parsers/rds/db_parser.rb +123 -0
  24. data/lib/fog/aws/parsers/rds/delete_db_instance.rb +35 -0
  25. data/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb +27 -0
  26. data/lib/fog/aws/parsers/rds/delete_db_security_group.rb +33 -0
  27. data/lib/fog/aws/parsers/rds/delete_db_snapshot.rb +34 -0
  28. data/lib/fog/aws/parsers/rds/describe_db_instances.rb +36 -0
  29. data/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb +38 -0
  30. data/lib/fog/aws/parsers/rds/describe_db_parameters.rb +44 -0
  31. data/lib/fog/aws/parsers/rds/describe_db_security_groups.rb +39 -0
  32. data/lib/fog/aws/parsers/rds/describe_db_snapshots.rb +39 -0
  33. data/lib/fog/aws/parsers/rds/modify_db_instance.rb +34 -0
  34. data/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb +28 -0
  35. data/lib/fog/aws/parsers/rds/reboot_db_instance.rb +35 -0
  36. data/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb +34 -0
  37. data/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb +35 -0
  38. data/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb +39 -0
  39. data/lib/fog/aws/parsers/rds/security_group_parser.rb +39 -0
  40. data/lib/fog/aws/parsers/rds/snapshot_parser.rb +40 -0
  41. data/lib/fog/aws/rds.rb +161 -0
  42. data/lib/fog/aws/rds/models/parameter.rb +21 -0
  43. data/lib/fog/aws/rds/models/parameter_group.rb +36 -0
  44. data/lib/fog/aws/rds/models/parameter_groups.rb +27 -0
  45. data/lib/fog/aws/rds/models/parameters.rb +37 -0
  46. data/lib/fog/aws/rds/models/security_group.rb +73 -0
  47. data/lib/fog/aws/rds/models/security_groups.rb +43 -0
  48. data/lib/fog/aws/rds/models/server.rb +105 -0
  49. data/lib/fog/aws/rds/models/servers.rb +27 -0
  50. data/lib/fog/aws/rds/models/snapshot.rb +49 -0
  51. data/lib/fog/aws/rds/models/snapshots.rb +45 -0
  52. data/lib/fog/aws/requests/cloud_formation/create_stack.rb +71 -0
  53. data/lib/fog/aws/requests/cloud_formation/delete_stack.rb +30 -0
  54. data/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb +44 -0
  55. data/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb +43 -0
  56. data/lib/fog/aws/requests/cloud_formation/describe_stacks.rb +42 -0
  57. data/lib/fog/aws/requests/cloud_formation/get_template.rb +32 -0
  58. data/lib/fog/aws/requests/cloud_formation/validate_template.rb +34 -0
  59. data/lib/fog/aws/requests/elb/create_load_balancer.rb +4 -0
  60. data/lib/fog/aws/requests/iam/create_login_profile.rb +36 -0
  61. data/lib/fog/aws/requests/iam/delete_login_profile.rb +31 -0
  62. data/lib/fog/aws/requests/iam/delete_server_certificate.rb +32 -0
  63. data/lib/fog/aws/requests/iam/get_login_profile.rb +35 -0
  64. data/lib/fog/aws/requests/iam/update_login_profile.rb +33 -0
  65. data/lib/fog/aws/requests/iam/upload_server_certificate.rb +45 -0
  66. data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +43 -0
  67. data/lib/fog/aws/requests/rds/create_db_instance.rb +56 -0
  68. data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +42 -0
  69. data/lib/fog/aws/requests/rds/create_db_parameter_group.rb +41 -0
  70. data/lib/fog/aws/requests/rds/create_db_security_group.rb +37 -0
  71. data/lib/fog/aws/requests/rds/create_db_snapshot.rb +36 -0
  72. data/lib/fog/aws/requests/rds/delete_db_instance.rb +40 -0
  73. data/lib/fog/aws/requests/rds/delete_db_parameter_group.rb +36 -0
  74. data/lib/fog/aws/requests/rds/delete_db_security_group.rb +36 -0
  75. data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +36 -0
  76. data/lib/fog/aws/requests/rds/describe_db_instances.rb +42 -0
  77. data/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb +45 -0
  78. data/lib/fog/aws/requests/rds/describe_db_parameters.rb +46 -0
  79. data/lib/fog/aws/requests/rds/describe_db_security_groups.rb +39 -0
  80. data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +42 -0
  81. data/lib/fog/aws/requests/rds/modify_db_instance.rb +54 -0
  82. data/lib/fog/aws/requests/rds/modify_db_parameter_group.rb +55 -0
  83. data/lib/fog/aws/requests/rds/reboot_db_instance.rb +34 -0
  84. data/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb +34 -0
  85. data/lib/fog/aws/requests/rds/restore_db_instance_to_point_in_time.rb +35 -0
  86. data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +44 -0
  87. data/lib/fog/aws/simpledb.rb +21 -7
  88. data/lib/fog/bin.rb +2 -1
  89. data/lib/fog/bin/aws.rb +8 -0
  90. data/lib/fog/bin/virtual_box.rb +52 -0
  91. data/lib/fog/cdn/aws.rb +9 -8
  92. data/lib/fog/cdn/rackspace.rb +6 -6
  93. data/lib/fog/cdn/requests/rackspace/post_container.rb +30 -0
  94. data/lib/fog/cdn/requests/rackspace/put_container.rb +1 -1
  95. data/lib/fog/compute.rb +6 -3
  96. data/lib/fog/compute/aws.rb +11 -7
  97. data/lib/fog/compute/bluebox.rb +5 -6
  98. data/lib/fog/compute/brightbox.rb +3 -0
  99. data/lib/fog/compute/go_grid.rb +5 -6
  100. data/lib/fog/compute/linode.rb +5 -6
  101. data/lib/fog/compute/models/aws/flavors.rb +19 -18
  102. data/lib/fog/compute/models/aws/server.rb +23 -0
  103. data/lib/fog/compute/models/aws/tag.rb +1 -1
  104. data/lib/fog/compute/models/brightbox/server.rb +7 -1
  105. data/lib/fog/compute/models/virtual_box/medium.rb +87 -0
  106. data/lib/fog/compute/models/virtual_box/medium_format.rb +34 -0
  107. data/lib/fog/compute/models/virtual_box/mediums.rb +32 -0
  108. data/lib/fog/compute/models/virtual_box/nat_engine.rb +65 -0
  109. data/lib/fog/compute/models/virtual_box/nat_redirect.rb +91 -0
  110. data/lib/fog/compute/models/virtual_box/nat_redirects.rb +41 -0
  111. data/lib/fog/compute/models/virtual_box/network_adapter.rb +82 -0
  112. data/lib/fog/compute/models/virtual_box/network_adapters.rb +42 -0
  113. data/lib/fog/compute/models/virtual_box/server.rb +241 -0
  114. data/lib/fog/compute/models/virtual_box/servers.rb +41 -0
  115. data/lib/fog/compute/models/virtual_box/storage_controller.rb +83 -0
  116. data/lib/fog/compute/models/virtual_box/storage_controllers.rb +38 -0
  117. data/lib/fog/compute/models/voxel/servers.rb +7 -6
  118. data/lib/fog/compute/new_servers.rb +5 -6
  119. data/lib/fog/compute/parsers/aws/monitor_unmonitor_instances.rb +35 -0
  120. data/lib/fog/compute/rackspace.rb +7 -7
  121. data/lib/fog/compute/requests/aws/delete_tags.rb +12 -9
  122. data/lib/fog/compute/requests/aws/monitor_instances.rb +52 -0
  123. data/lib/fog/compute/requests/aws/revoke_security_group_ingress.rb +24 -8
  124. data/lib/fog/compute/requests/aws/unmonitor_instances.rb +53 -0
  125. data/lib/fog/compute/requests/brightbox/activate_console_server.rb +20 -0
  126. data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +20 -0
  127. data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +20 -0
  128. data/lib/fog/compute/slicehost.rb +5 -6
  129. data/lib/fog/compute/virtual_box.rb +48 -0
  130. data/lib/fog/compute/voxel.rb +30 -27
  131. data/lib/fog/core.rb +1 -0
  132. data/lib/fog/core/attributes.rb +3 -1
  133. data/lib/fog/core/collection.rb +2 -2
  134. data/lib/fog/core/credentials.rb +13 -3
  135. data/lib/fog/core/scp.rb +0 -4
  136. data/lib/fog/core/service.rb +0 -8
  137. data/lib/fog/core/ssh.rb +0 -4
  138. data/lib/fog/dns.rb +3 -3
  139. data/lib/fog/dns/aws.rb +8 -8
  140. data/lib/fog/dns/bluebox.rb +5 -7
  141. data/lib/fog/dns/dnsimple.rb +7 -7
  142. data/lib/fog/dns/linode.rb +5 -6
  143. data/lib/fog/dns/models/dnsimple/record.rb +11 -1
  144. data/lib/fog/dns/models/dnsimple/records.rb +7 -7
  145. data/lib/fog/dns/models/dnsimple/zones.rb +2 -1
  146. data/lib/fog/dns/requests/dnsimple/get_record.rb +34 -0
  147. data/lib/fog/dns/slicehost.rb +5 -6
  148. data/lib/fog/dns/zerigo.rb +5 -7
  149. data/lib/fog/providers.rb +2 -1
  150. data/lib/fog/providers/aws.rb +10 -8
  151. data/lib/fog/providers/virtual_box.rb +11 -0
  152. data/lib/fog/storage.rb +21 -0
  153. data/lib/fog/storage/aws.rb +16 -32
  154. data/lib/fog/storage/google.rb +6 -27
  155. data/lib/fog/storage/local.rb +7 -7
  156. data/lib/fog/storage/models/rackspace/directory.rb +1 -1
  157. data/lib/fog/storage/models/rackspace/file.rb +1 -0
  158. data/lib/fog/storage/rackspace.rb +5 -27
  159. data/lib/fog/storage/requests/aws/put_object.rb +2 -2
  160. data/lib/fog/storage/requests/aws/upload_part.rb +1 -1
  161. data/lib/fog/storage/requests/google/put_object.rb +2 -2
  162. data/lib/fog/storage/requests/rackspace/put_object.rb +1 -1
  163. data/tests/aws/requests/cloud_formation/stack_tests.rb +130 -0
  164. data/tests/aws/requests/iam/login_profile_tests.rb +64 -0
  165. data/tests/aws/requests/rds/helper.rb +169 -0
  166. data/tests/aws/requests/rds/instance_tests.rb +129 -0
  167. data/tests/aws/requests/rds/model_tests.rb +98 -0
  168. data/tests/aws/requests/rds/parameter_group_tests.rb +68 -0
  169. data/tests/aws/requests/rds/parameter_request_tests.rb +35 -0
  170. data/tests/compute/models/aws/server_monitor_tests.rb +47 -0
  171. data/tests/compute/models/server_tests.rb +7 -23
  172. data/tests/compute/parsers/aws/monitor_unmonitor_instances_tests.rb +49 -0
  173. data/tests/compute/requests/aws/security_group_tests.rb +69 -52
  174. data/tests/compute/requests/aws/tag_tests.rb +5 -5
  175. data/tests/compute/requests/brightbox/helper.rb +7 -6
  176. data/tests/compute/requests/brightbox/server_tests.rb +5 -0
  177. data/tests/compute/requests/voxel/server_tests.rb +2 -3
  178. data/tests/storage/requests/aws/bucket_tests.rb +10 -0
  179. metadata +148 -12
@@ -36,7 +36,17 @@ module Fog
36
36
  options = {}
37
37
  options[:prio] = priority if priority
38
38
  options[:ttl] = ttl if ttl
39
- data = connection.create_record(zone.domain, name, type, ip, options)
39
+
40
+ # decide whether its a new record or update of an existing
41
+ if id.nil?
42
+ data = connection.create_record(zone.domain, name, type, ip, options)
43
+ else
44
+ options[:name] = name if name
45
+ options[:content] = ip if ip
46
+ options[:type] = type if type
47
+ data = connection.update_record(zone.domain, id, options)
48
+ end
49
+
40
50
  merge_attributes(data.body["record"])
41
51
  true
42
52
  end
@@ -13,16 +13,16 @@ module Fog
13
13
 
14
14
  def all
15
15
  requires :zone
16
- data = connection.list_records(zone.id).body
16
+ clear
17
+ data = connection.list_records(zone.id).body.map {|record| record['record']}
18
+ load(data)
17
19
  end
18
20
 
19
21
  def get(record_id)
20
- all.each do |record|
21
- if record["record"]["id"] == record_id
22
- return new(record)
23
- end
24
- end
25
-
22
+ requires :zone
23
+ data = connection.get_record(zone.id, record_id).body["record"]
24
+ new(data)
25
+ rescue Excon::Errors::NotFound
26
26
  nil
27
27
  end
28
28
 
@@ -10,7 +10,8 @@ module Fog
10
10
  model Fog::DNSimple::DNS::Zone
11
11
 
12
12
  def all
13
- data = connection.list_domains.body
13
+ clear
14
+ data = connection.list_domains.body.map {|zone| zone['domain']}
14
15
  load(data)
15
16
  end
16
17
 
@@ -0,0 +1,34 @@
1
+ module Fog
2
+ module DNSimple
3
+ class DNS
4
+ class Real
5
+
6
+ # Gets record from given domain.
7
+ #
8
+ # ==== Parameters
9
+ # * domain<~String>
10
+ # * record_id<~String>
11
+ # ==== Returns
12
+ # * response<~Excon::Response>:
13
+ # * record<~Hash>
14
+ # * name<~String>
15
+ # * ttl<~Integer>
16
+ # * created_at<~String>
17
+ # * special_type<~String>
18
+ # * updated_at<~String>
19
+ # * domain_id<~Integer>
20
+ # * id<~Integer>
21
+ # * content<~String>
22
+ # * record_type<~String>
23
+ # * prio<~Integer>
24
+ def get_record(domain, record_id)
25
+
26
+ request( :expects => 200,
27
+ :method => "GET",
28
+ :path => "/domains/#{domain}/records/#{record_id}" )
29
+ end
30
+
31
+ end
32
+ end
33
+ end
34
+ end
@@ -30,12 +30,6 @@ module Fog
30
30
  end
31
31
  end
32
32
 
33
- def self.reset_data(keys=data.keys)
34
- for key in [*keys]
35
- data.delete(key)
36
- end
37
- end
38
-
39
33
  def initialize(options={})
40
34
  unless options.delete(:provider)
41
35
  location = caller.first
@@ -45,6 +39,11 @@ module Fog
45
39
  end
46
40
 
47
41
  @slicehost_password = options[:slicehost_password]
42
+ reset_data
43
+ end
44
+
45
+ def reset_data
46
+ self.class.data.delete(@slicehost_password)
48
47
  @data = self.class.data[@slicehost_password]
49
48
  end
50
49
 
@@ -36,12 +36,6 @@ module Fog
36
36
  end
37
37
  end
38
38
 
39
- def self.reset_data(keys=data.keys)
40
- for key in [*keys]
41
- data.delete(key)
42
- end
43
- end
44
-
45
39
  def initialize(options={})
46
40
  unless options.delete(:provider)
47
41
  location = caller.first
@@ -52,8 +46,12 @@ module Fog
52
46
 
53
47
  @zerigo_email = options[:zerigo_email]
54
48
  @zerigo_token = options[:zerigo_token]
49
+ reset_data
50
+ end
51
+
52
+ def reset_data
53
+ self.class.data.delete(@zerigo_email)
55
54
  @data = self.class.data[@zerigo_email]
56
- @data = self.class.data[@zerigo_password]
57
55
  end
58
56
 
59
57
  end
@@ -9,6 +9,7 @@ end
9
9
  require 'fog/providers/aws'
10
10
  require 'fog/providers/bluebox'
11
11
  require 'fog/providers/brightbox'
12
+ require 'fog/providers/dnsimple'
12
13
  require 'fog/providers/ecloud'
13
14
  require 'fog/providers/go_grid'
14
15
  require 'fog/providers/google'
@@ -17,6 +18,6 @@ require 'fog/providers/local'
17
18
  require 'fog/providers/new_servers'
18
19
  require 'fog/providers/rackspace'
19
20
  require 'fog/providers/slicehost'
21
+ require 'fog/providers/virtual_box'
20
22
  require 'fog/providers/voxel'
21
23
  require 'fog/providers/zerigo'
22
- require 'fog/providers/dnsimple'
@@ -6,14 +6,16 @@ module Fog
6
6
 
7
7
  extend Fog::Provider
8
8
 
9
- service(:cdn, 'cdn/aws')
10
- service(:compute, 'compute/aws')
11
- service(:dns, 'dns/aws')
12
- service(:elb, 'aws/elb')
13
- service(:iam, 'aws/iam')
14
- service(:ses, 'aws/ses')
15
- service(:simpledb, 'aws/simpledb')
16
- service(:storage, 'storage/aws')
9
+ service(:cdn, 'cdn/aws')
10
+ service(:compute, 'compute/aws')
11
+ service(:cloud_formation, 'aws/cloud_formation')
12
+ service(:dns, 'dns/aws')
13
+ service(:elb, 'aws/elb')
14
+ service(:iam, 'aws/iam')
15
+ service(:rds, 'aws/rds')
16
+ service(:ses, 'aws/ses')
17
+ service(:simpledb, 'aws/simpledb')
18
+ service(:storage, 'storage/aws')
17
19
 
18
20
  def self.indexed_param(key, values)
19
21
  params = {}
@@ -0,0 +1,11 @@
1
+ require 'fog/core'
2
+
3
+ module Fog
4
+ module VirtualBox
5
+
6
+ extend Fog::Provider
7
+
8
+ service(:compute, 'compute/virtual_box')
9
+
10
+ end
11
+ end
@@ -21,5 +21,26 @@ module Fog
21
21
  end
22
22
  end
23
23
 
24
+ def self.parse_data(data)
25
+ metadata = {
26
+ :body => nil,
27
+ :headers => {}
28
+ }
29
+
30
+ if data.is_a?(String)
31
+ metadata[:body] = data
32
+ metadata[:headers]['Content-Length'] = metadata[:body].size
33
+ else
34
+ filename = ::File.basename(data.path)
35
+ unless (mime_types = MIME::Types.of(filename)).empty?
36
+ metadata[:headers]['Content-Type'] = mime_types.first.content_type
37
+ end
38
+ metadata[:body] = data
39
+ metadata[:headers]['Content-Length'] = ::File.size(data.path)
40
+ end
41
+ # metadata[:headers]['Content-MD5'] = Base64.encode64(Digest::MD5.digest(metadata[:body])).strip
42
+ metadata
43
+ end
44
+
24
45
  end
25
46
  end
@@ -58,27 +58,6 @@ module Fog
58
58
  )
59
59
  end
60
60
 
61
- def parse_data(data)
62
- metadata = {
63
- :body => nil,
64
- :headers => {}
65
- }
66
-
67
- if data.is_a?(String)
68
- metadata[:body] = data
69
- metadata[:headers]['Content-Length'] = metadata[:body].size
70
- else
71
- filename = ::File.basename(data.path)
72
- unless (mime_types = MIME::Types.of(filename)).empty?
73
- metadata[:headers]['Content-Type'] = mime_types.first.content_type
74
- end
75
- metadata[:body] = data
76
- metadata[:headers]['Content-Length'] = ::File.size(data.path)
77
- end
78
- # metadata[:headers]['Content-MD5'] = Base64.encode64(Digest::MD5.digest(metadata[:body])).strip
79
- metadata
80
- end
81
-
82
61
  def url(params, expires)
83
62
  params[:headers]['Date'] = expires.to_i
84
63
  params[:path] = CGI.escape(params[:path]).gsub('%2F', '/')
@@ -169,12 +148,6 @@ module Fog
169
148
  end
170
149
  end
171
150
 
172
- def self.reset_data(keys=data.keys)
173
- for key in [*keys]
174
- data.delete(key)
175
- end
176
- end
177
-
178
151
  def initialize(options={})
179
152
  unless options.delete(:provider)
180
153
  location = caller.first
@@ -188,23 +161,32 @@ module Fog
188
161
  @aws_secret_access_key = options[:aws_secret_access_key]
189
162
  options[:region] ||= 'us-east-1'
190
163
  @host = options[:host] || case options[:region]
164
+ when 'ap-northeast-1'
165
+ 's3-ap-northeast-1.amazonaws.com'
166
+ when 'ap-southeast-1'
167
+ 's3-ap-southeast-1.amazonaws.com'
191
168
  when 'eu-west-1'
192
169
  's3-eu-west-1.amazonaws.com'
193
170
  when 'us-east-1'
194
171
  's3.amazonaws.com'
195
- when 'ap-southeast-1'
196
- 's3-ap-southeast-1.amazonaws.com'
197
172
  when 'us-west-1'
198
173
  's3-us-west-1.amazonaws.com'
199
174
  else
200
175
  raise ArgumentError, "Unknown region: #{options[:region].inspect}"
201
176
  end
202
- @data = self.class.data[options[:region]][@aws_access_key_id]
177
+ @region = options[:region]
178
+ reset_data
179
+ end
180
+
181
+ def reset_data
182
+ self.class.data[@region].delete(@aws_access_key_id)
183
+ @data = self.class.data[@region][@aws_access_key_id]
203
184
  end
204
185
 
205
186
  def signature(params)
206
187
  "foo"
207
188
  end
189
+
208
190
  end
209
191
 
210
192
  class Real
@@ -250,12 +232,14 @@ module Fog
250
232
  else
251
233
  options[:region] ||= 'us-east-1'
252
234
  @host = options[:host] || case options[:region]
235
+ when 'ap-northeast-1'
236
+ 's3-ap-northeast-1.amazonaws.com'
237
+ when 'ap-southeast-1'
238
+ 's3-ap-southeast-1.amazonaws.com'
253
239
  when 'eu-west-1'
254
240
  's3-eu-west-1.amazonaws.com'
255
241
  when 'us-east-1'
256
242
  's3.amazonaws.com'
257
- when 'ap-southeast-1'
258
- 's3-ap-southeast-1.amazonaws.com'
259
243
  when 'us-west-1'
260
244
  's3-us-west-1.amazonaws.com'
261
245
  else
@@ -31,27 +31,6 @@ module Fog
31
31
 
32
32
  module Utils
33
33
 
34
- def parse_data(data)
35
- metadata = {
36
- :body => nil,
37
- :headers => {}
38
- }
39
-
40
- if data.is_a?(String)
41
- metadata[:body] = data
42
- metadata[:headers]['Content-Length'] = metadata[:body].size
43
- else
44
- filename = ::File.basename(data.path)
45
- unless (mime_types = MIME::Types.of(filename)).empty?
46
- metadata[:headers]['Content-Type'] = mime_types.first.content_type
47
- end
48
- metadata[:body] = data
49
- metadata[:headers]['Content-Length'] = ::File.size(data.path)
50
- end
51
- # metadata[:headers]['Content-MD5'] = Base64.encode64(Digest::MD5.digest(metadata[:body])).strip
52
- metadata
53
- end
54
-
55
34
  def url(params, expires)
56
35
  params[:headers]['Date'] = expires.to_i
57
36
  params[:path] = CGI.escape(params[:path]).gsub('%2F', '/')
@@ -140,12 +119,6 @@ module Fog
140
119
  end
141
120
  end
142
121
 
143
- def self.reset_data(keys=data.keys)
144
- for key in [*keys]
145
- data.delete(key)
146
- end
147
- end
148
-
149
122
  def initialize(options={})
150
123
  unless options.delete(:provider)
151
124
  location = caller.first
@@ -156,12 +129,18 @@ module Fog
156
129
 
157
130
  require 'mime/types'
158
131
  @google_storage_access_key_id = options[:google_storage_access_key_id]
132
+ reset_data
133
+ end
134
+
135
+ def reset_data
136
+ self.class.data.delete(@google_storage_access_key_id)
159
137
  @data = self.class.data[@google_storage_access_key_id]
160
138
  end
161
139
 
162
140
  def signature(params)
163
141
  "foo"
164
142
  end
143
+
165
144
  end
166
145
 
167
146
 
@@ -19,12 +19,6 @@ module Fog
19
19
  end
20
20
  end
21
21
 
22
- def self.reset_data(keys=data.keys)
23
- for key in [*keys]
24
- data.delete(key)
25
- end
26
- end
27
-
28
22
  def initialize(options={})
29
23
  Fog::Mock.not_implemented
30
24
 
@@ -37,7 +31,7 @@ module Fog
37
31
  end
38
32
 
39
33
  @local_root = ::File.expand_path(options[:local_root])
40
- @data = self.class.data[@local_root]
34
+ reset_data
41
35
  end
42
36
 
43
37
  def local_root
@@ -47,6 +41,12 @@ module Fog
47
41
  def path_to(partial)
48
42
  ::File.join(@local_root, partial)
49
43
  end
44
+
45
+ def reset_data
46
+ self.class.data.delete(@local_root)
47
+ @data = self.class.data[@local_root]
48
+ end
49
+
50
50
  end
51
51
 
52
52
  class Real
@@ -15,7 +15,7 @@ module Fog
15
15
  def destroy
16
16
  requires :key
17
17
  connection.delete_container(key)
18
- connection.cdn.put_container(key, 'X-CDN-Enabled' => 'False')
18
+ connection.cdn.post_container(key, 'X-CDN-Enabled' => 'False')
19
19
  true
20
20
  rescue Excon::Errors::NotFound
21
21
  false
@@ -57,6 +57,7 @@ module Fog
57
57
 
58
58
  def save(options = {})
59
59
  requires :body, :directory, :key
60
+ options['Content-Type'] = content_type if content_type
60
61
  data = connection.put_object(directory.key, key, body, options)
61
62
  merge_attributes(data.headers)
62
63
  if body.is_a?(String)
@@ -34,27 +34,6 @@ module Fog
34
34
  )
35
35
  end
36
36
 
37
- def parse_data(data)
38
- metadata = {
39
- :body => nil,
40
- :headers => {}
41
- }
42
-
43
- if data.is_a?(String)
44
- metadata[:body] = data
45
- metadata[:headers]['Content-Length'] = metadata[:body].size.to_s
46
- else
47
- filename = ::File.basename(data.path)
48
- unless (mime_types = MIME::Types.of(filename)).empty?
49
- metadata[:headers]['Content-Type'] = mime_types.first.content_type
50
- end
51
- metadata[:body] = data.read
52
- metadata[:headers]['Content-Length'] = ::File.size(data.path).to_s
53
- end
54
- # metadata[:headers]['Content-MD5'] = Base64.encode64(Digest::MD5.digest(metadata[:body])).strip
55
- metadata
56
- end
57
-
58
37
  end
59
38
 
60
39
  class Mock
@@ -66,12 +45,6 @@ module Fog
66
45
  end
67
46
  end
68
47
 
69
- def self.reset_data(keys=data.keys)
70
- for key in [*keys]
71
- data.delete(key)
72
- end
73
- end
74
-
75
48
  def initialize(options={})
76
49
  unless options.delete(:provider)
77
50
  location = caller.first
@@ -83,6 +56,11 @@ module Fog
83
56
  require 'mime/types'
84
57
  @rackspace_api_key = options[:rackspace_api_key]
85
58
  @rackspace_username = options[:rackspace_username]
59
+ reset_data
60
+ end
61
+
62
+ def reset_data
63
+ self.class.data.delete(@rackspace_username)
86
64
  @data = self.class.data[@rackspace_username]
87
65
  end
88
66