fog 0.3.7 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. data/Gemfile.lock +6 -6
  2. data/README.rdoc +7 -1
  3. data/bin/fog +4 -3
  4. data/fog.gemspec +39 -24
  5. data/lib/fog.rb +4 -12
  6. data/lib/fog/aws.rb +14 -5
  7. data/lib/fog/aws/compute.rb +26 -9
  8. data/lib/fog/aws/elb.rb +3 -2
  9. data/lib/fog/aws/models/compute/address.rb +2 -1
  10. data/lib/fog/aws/models/compute/addresses.rb +11 -9
  11. data/lib/fog/aws/models/compute/flavor.rb +1 -1
  12. data/lib/fog/aws/models/compute/flavors.rb +13 -11
  13. data/lib/fog/aws/models/compute/image.rb +2 -1
  14. data/lib/fog/aws/models/compute/images.rb +7 -9
  15. data/lib/fog/aws/models/compute/key_pair.rb +1 -1
  16. data/lib/fog/aws/models/compute/key_pairs.rb +10 -8
  17. data/lib/fog/aws/models/compute/security_group.rb +1 -1
  18. data/lib/fog/aws/models/compute/security_groups.rb +11 -9
  19. data/lib/fog/aws/models/compute/server.rb +10 -3
  20. data/lib/fog/aws/models/compute/servers.rb +14 -8
  21. data/lib/fog/aws/models/compute/snapshot.rb +3 -2
  22. data/lib/fog/aws/models/compute/snapshots.rb +11 -16
  23. data/lib/fog/aws/models/compute/tag.rb +36 -0
  24. data/lib/fog/aws/models/compute/tags.rb +34 -0
  25. data/lib/fog/aws/models/compute/volume.rb +11 -10
  26. data/lib/fog/aws/models/compute/volumes.rb +11 -9
  27. data/lib/fog/aws/models/storage/directories.rb +1 -1
  28. data/lib/fog/aws/models/storage/directory.rb +1 -1
  29. data/lib/fog/aws/models/storage/file.rb +3 -2
  30. data/lib/fog/aws/models/storage/files.rb +1 -7
  31. data/lib/fog/aws/parsers/compute/describe_availability_zones.rb +4 -2
  32. data/lib/fog/aws/parsers/compute/describe_images.rb +23 -13
  33. data/lib/fog/aws/parsers/compute/describe_instances.rb +34 -8
  34. data/lib/fog/aws/parsers/compute/describe_security_groups.rb +4 -3
  35. data/lib/fog/aws/parsers/compute/describe_snapshots.rb +33 -13
  36. data/lib/fog/aws/parsers/compute/describe_tags.rb +30 -0
  37. data/lib/fog/aws/parsers/compute/describe_volumes.rb +17 -3
  38. data/lib/fog/aws/parsers/compute/run_instances.rb +4 -4
  39. data/lib/fog/aws/parsers/storage/get_bucket.rb +1 -1
  40. data/lib/fog/aws/parsers/storage/get_bucket_logging.rb +1 -1
  41. data/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb +3 -3
  42. data/lib/fog/aws/requests/compute/create_snapshot.rb +1 -0
  43. data/lib/fog/aws/requests/compute/create_tags.rb +78 -0
  44. data/lib/fog/aws/requests/compute/delete_tags.rb +45 -0
  45. data/lib/fog/aws/requests/compute/describe_addresses.rb +27 -19
  46. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +31 -25
  47. data/lib/fog/aws/requests/compute/describe_images.rb +11 -18
  48. data/lib/fog/aws/requests/compute/describe_instances.rb +125 -53
  49. data/lib/fog/aws/requests/compute/describe_key_pairs.rb +29 -21
  50. data/lib/fog/aws/requests/compute/describe_regions.rb +28 -23
  51. data/lib/fog/aws/requests/compute/describe_reserved_instances.rb +8 -4
  52. data/lib/fog/aws/requests/compute/describe_security_groups.rb +48 -19
  53. data/lib/fog/aws/requests/compute/describe_snapshots.rb +72 -35
  54. data/lib/fog/aws/requests/compute/describe_tags.rb +42 -0
  55. data/lib/fog/aws/requests/compute/describe_volumes.rb +67 -36
  56. data/lib/fog/aws/requests/compute/run_instances.rb +10 -3
  57. data/lib/fog/aws/simpledb.rb +3 -1
  58. data/lib/fog/aws/storage.rb +17 -8
  59. data/lib/fog/bluebox/models/compute/flavor.rb +1 -1
  60. data/lib/fog/bluebox/models/compute/flavors.rb +1 -1
  61. data/lib/fog/bluebox/models/compute/image.rb +1 -1
  62. data/lib/fog/bluebox/models/compute/images.rb +1 -1
  63. data/lib/fog/bluebox/models/compute/server.rb +8 -6
  64. data/lib/fog/bluebox/models/compute/servers.rb +1 -1
  65. data/lib/fog/bluebox/requests/compute/get_blocks.rb +1 -1
  66. data/lib/fog/core.rb +11 -0
  67. data/lib/fog/{attributes.rb → core/attributes.rb} +0 -0
  68. data/lib/fog/{bin.rb → core/bin.rb} +1 -1
  69. data/lib/fog/{collection.rb → core/collection.rb} +4 -0
  70. data/lib/fog/{connection.rb → core/connection.rb} +0 -0
  71. data/lib/fog/{credentials.rb → core/credentials.rb} +2 -0
  72. data/lib/fog/{deprecation.rb → core/deprecation.rb} +0 -0
  73. data/lib/fog/{errors.rb → core/errors.rb} +0 -0
  74. data/lib/fog/{hmac.rb → core/hmac.rb} +0 -0
  75. data/lib/fog/{model.rb → core/model.rb} +0 -0
  76. data/lib/fog/{parser.rb → core/parser.rb} +0 -0
  77. data/lib/fog/{provider.rb → core/provider.rb} +0 -0
  78. data/lib/fog/{service.rb → core/service.rb} +1 -0
  79. data/lib/fog/{ssh.rb → core/ssh.rb} +7 -7
  80. data/lib/fog/go_grid.rb +1 -1
  81. data/lib/fog/go_grid/compute.rb +6 -1
  82. data/lib/fog/go_grid/models/compute/image.rb +60 -0
  83. data/lib/fog/go_grid/models/compute/images.rb +33 -0
  84. data/lib/fog/go_grid/models/compute/server.rb +56 -0
  85. data/lib/fog/go_grid/models/compute/servers.rb +35 -0
  86. data/lib/fog/go_grid/requests/compute/grid_image_get.rb +41 -0
  87. data/lib/fog/go_grid/requests/compute/grid_image_list.rb +6 -1
  88. data/lib/fog/go_grid/requests/compute/grid_server_power.rb +2 -2
  89. data/lib/fog/google/models/storage/directories.rb +1 -1
  90. data/lib/fog/google/models/storage/directory.rb +1 -1
  91. data/lib/fog/google/models/storage/file.rb +3 -2
  92. data/lib/fog/google/models/storage/files.rb +1 -7
  93. data/lib/fog/google/parsers/storage/get_bucket.rb +1 -1
  94. data/lib/fog/linode/requests/compute/avail_linodeplans.rb +2 -2
  95. data/lib/fog/local/models/storage/directories.rb +1 -1
  96. data/lib/fog/local/models/storage/directory.rb +1 -1
  97. data/lib/fog/local/models/storage/file.rb +2 -2
  98. data/lib/fog/local/models/storage/files.rb +2 -5
  99. data/lib/fog/local/storage.rb +1 -1
  100. data/lib/fog/new_servers/compute.rb +1 -1
  101. data/lib/fog/rackspace/models/compute/flavor.rb +1 -3
  102. data/lib/fog/rackspace/models/compute/flavors.rb +1 -1
  103. data/lib/fog/rackspace/models/compute/image.rb +2 -1
  104. data/lib/fog/rackspace/models/compute/images.rb +1 -1
  105. data/lib/fog/rackspace/models/compute/server.rb +12 -11
  106. data/lib/fog/rackspace/models/compute/servers.rb +1 -1
  107. data/lib/fog/rackspace/models/storage/directories.rb +1 -1
  108. data/lib/fog/rackspace/models/storage/directory.rb +1 -1
  109. data/lib/fog/rackspace/models/storage/file.rb +4 -4
  110. data/lib/fog/rackspace/models/storage/files.rb +1 -1
  111. data/lib/fog/rackspace/requests/compute/create_image.rb +2 -2
  112. data/lib/fog/rackspace/requests/compute/delete_image.rb +1 -1
  113. data/lib/fog/rackspace/requests/compute/delete_server.rb +1 -1
  114. data/lib/fog/rackspace/requests/compute/get_server_details.rb +1 -1
  115. data/lib/fog/rackspace/requests/compute/list_addresses.rb +1 -1
  116. data/lib/fog/rackspace/requests/compute/list_images_detail.rb +2 -2
  117. data/lib/fog/rackspace/requests/compute/list_private_addresses.rb +1 -1
  118. data/lib/fog/rackspace/requests/compute/list_public_addresses.rb +1 -1
  119. data/lib/fog/rackspace/requests/compute/update_server.rb +1 -1
  120. data/lib/fog/rackspace/requests/storage/put_object.rb +4 -3
  121. data/lib/fog/slicehost/models/compute/flavor.rb +1 -1
  122. data/lib/fog/slicehost/models/compute/flavors.rb +1 -1
  123. data/lib/fog/slicehost/models/compute/image.rb +1 -1
  124. data/lib/fog/slicehost/models/compute/images.rb +1 -1
  125. data/lib/fog/slicehost/models/compute/server.rb +3 -1
  126. data/lib/fog/slicehost/models/compute/servers.rb +1 -1
  127. data/lib/fog/terremark/ecloud.rb +34 -33
  128. data/lib/fog/terremark/models/shared/address.rb +1 -1
  129. data/lib/fog/terremark/models/shared/network.rb +1 -1
  130. data/lib/fog/terremark/models/shared/server.rb +1 -1
  131. data/lib/fog/terremark/models/shared/servers.rb +1 -1
  132. data/lib/fog/terremark/models/shared/task.rb +1 -1
  133. data/lib/fog/terremark/models/shared/tasks.rb +1 -1
  134. data/lib/fog/terremark/models/shared/vdc.rb +1 -1
  135. data/lib/fog/terremark/parser.rb +1 -0
  136. data/lib/fog/terremark/vcloud.rb +4 -4
  137. data/lib/fog/vcloud.rb +15 -7
  138. data/lib/fog/vcloud/terremark/ecloud.rb +15 -3
  139. data/lib/fog/vcloud/terremark/ecloud/models/firewall_acls.rb +1 -1
  140. data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +1 -1
  141. data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +1 -1
  142. data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +1 -1
  143. data/lib/fog/vcloud/terremark/ecloud/models/nodes.rb +1 -1
  144. data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +1 -1
  145. data/lib/fog/vcloud/terremark/ecloud/models/servers.rb +1 -1
  146. data/lib/fog/vcloud/terremark/ecloud/models/tasks.rb +1 -1
  147. data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +1 -1
  148. data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +55 -49
  149. data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +19 -15
  150. data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +8 -1
  151. data/lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb +17 -12
  152. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog.rb +29 -1
  153. data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog_item.rb +38 -2
  154. data/lib/fog/vcloud/terremark/ecloud/requests/get_customization_options.rb +8 -2
  155. data/lib/fog/vcloud/terremark/ecloud/requests/instantiate_vapp_template.rb +46 -4
  156. data/spec/aws/models/compute/server_spec.rb +2 -0
  157. data/spec/aws/requests/simpledb/select_spec.rb +1 -0
  158. data/spec/spec_helper.rb +1 -1
  159. data/spec/vcloud/spec_helper.rb +1 -1
  160. data/spec/vcloud/terremark/ecloud/requests/get_catalog_item_spec.rb +62 -0
  161. data/spec/vcloud/terremark/ecloud/requests/get_catalog_spec.rb +44 -0
  162. data/spec/vcloud/terremark/ecloud/requests/get_customization_options_spec.rb +39 -0
  163. data/spec/vcloud/terremark/ecloud/requests/instantiate_vapp_template_spec.rb +73 -0
  164. data/tests/aws/requests/compute/address_tests.rb +2 -6
  165. data/tests/aws/requests/compute/availability_zone_tests.rb +3 -10
  166. data/tests/aws/requests/compute/image_tests.rb +4 -9
  167. data/tests/aws/requests/compute/instance_tests.rb +7 -8
  168. data/tests/aws/requests/compute/key_pair_tests.rb +2 -6
  169. data/tests/aws/requests/compute/region_tests.rb +2 -9
  170. data/tests/aws/requests/compute/security_group_tests.rb +3 -7
  171. data/tests/aws/requests/compute/snapshot_tests.rb +4 -7
  172. data/tests/aws/requests/compute/tag_tests.rb +49 -0
  173. data/tests/aws/requests/compute/volume_tests.rb +2 -6
  174. data/tests/aws/requests/storage/bucket_tests.rb +48 -0
  175. data/tests/aws/requests/storage/object_tests.rb +63 -0
  176. data/tests/bluebox/requests/compute/block_tests.rb +24 -11
  177. data/tests/bluebox/requests/compute/product_tests.rb +3 -0
  178. data/tests/bluebox/requests/compute/template_tests.rb +3 -0
  179. data/tests/go_grid/helper.rb +0 -0
  180. data/tests/go_grid/requests/compute/image_tests.rb +0 -0
  181. data/tests/helper.rb +5 -1
  182. data/tests/linode/requests/compute/datacenter_tests.rb +1 -0
  183. data/tests/linode/requests/compute/distribution_tests.rb +2 -0
  184. data/tests/linode/requests/compute/linode_tests.rb +6 -0
  185. data/tests/linode/requests/compute/linodeplans_tests.rb +2 -0
  186. data/tests/lorem.txt +1 -0
  187. data/tests/rackspace/requests/compute/flavor_tests.rb +4 -0
  188. data/tests/rackspace/requests/compute/image_tests.rb +12 -4
  189. data/tests/rackspace/requests/compute/server_tests.rb +9 -0
  190. data/tests/slicehost/requests/compute/backup_tests.rb +1 -0
  191. data/tests/slicehost/requests/compute/flavor_tests.rb +3 -0
  192. data/tests/slicehost/requests/compute/image_tests.rb +3 -0
  193. data/tests/slicehost/requests/compute/slice_tests.rb +14 -2
  194. metadata +42 -27
  195. data/spec/aws/requests/storage/delete_bucket_spec.rb +0 -35
  196. data/spec/aws/requests/storage/delete_object_spec.rb +0 -36
  197. data/spec/aws/requests/storage/get_object_spec.rb +0 -58
  198. data/spec/aws/requests/storage/get_service_spec.rb +0 -32
  199. data/spec/aws/requests/storage/head_object_spec.rb +0 -26
  200. data/spec/aws/requests/storage/put_bucket_spec.rb +0 -19
  201. data/spec/aws/requests/storage/put_object_spec.rb +0 -43
@@ -13,7 +13,7 @@ module Fog
13
13
  # * response<~Excon::Response>:
14
14
  # * body<~Array>:
15
15
  # TODO: docs
16
- def grid_server_delete(server, power)
16
+ def grid_server_power(server, power)
17
17
  request(
18
18
  :path => 'grid/server/power',
19
19
  :query => {'server' => server}
@@ -24,7 +24,7 @@ module Fog
24
24
 
25
25
  class Mock
26
26
 
27
- def grid_server_delete(server)
27
+ def grid_server_power(server)
28
28
  Fog::Mock.not_implemented
29
29
  end
30
30
 
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/google/models/storage/directory'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
  require 'fog/google/models/storage/files'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
 
3
3
  module Fog
4
4
  module Google
@@ -8,7 +8,7 @@ module Fog
8
8
 
9
9
  identity :key, :aliases => 'Key'
10
10
 
11
- attr_accessor :body
11
+ attr_writer :body
12
12
  attribute :content_length, :aliases => 'Content-Length'
13
13
  attribute :content_type, :aliases => 'Content-Type'
14
14
  attribute :etag, :aliases => ['Etag', 'ETag']
@@ -53,6 +53,7 @@ module Fog
53
53
  true
54
54
  end
55
55
 
56
+ remove_method :owner=
56
57
  def owner=(new_owner)
57
58
  if new_owner
58
59
  @owner = {
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/google/models/storage/file'
3
3
 
4
4
  module Fog
@@ -81,12 +81,6 @@ module Fog
81
81
  super({ :directory => directory }.merge!(attributes))
82
82
  end
83
83
 
84
- private
85
-
86
- def directory=(new_directory)
87
- @directory = new_directory
88
- end
89
-
90
84
  end
91
85
 
92
86
  end
@@ -33,7 +33,7 @@ module Fog
33
33
  @response['MaxKeys'] = @value.to_i
34
34
  when 'Size'
35
35
  @object['Size'] = @value.to_i
36
- when 'Delimeter', 'Key', 'Name', 'StorageClass'
36
+ when 'Delimeter', 'Key', 'StorageClass'
37
37
  @object[name] = @value
38
38
  end
39
39
  end
@@ -9,7 +9,7 @@ module Fog
9
9
  # * response<~Excon::Response>:
10
10
  # * body<~Array>:
11
11
  # TODO: docs
12
- def avail_linodeplans(linodeplan_id=nil)
12
+ def avail_linodeplans(linodeplan_id = nil)
13
13
  options = {}
14
14
  if linodeplan_id
15
15
  options.merge!(:planId => linodeplan_id)
@@ -25,7 +25,7 @@ module Fog
25
25
 
26
26
  class Mock
27
27
 
28
- def avail_linodeplans
28
+ def avail_linodeplans(linodeplan_id = nil)
29
29
  Fog::Mock.not_implemented
30
30
  end
31
31
 
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/local/models/storage/directory'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
  require 'fog/local/models/storage/files'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
 
3
3
  module Fog
4
4
  module Local
@@ -8,7 +8,7 @@ module Fog
8
8
 
9
9
  identity :key, :aliases => 'Key'
10
10
 
11
- attr_accessor :body
11
+ attr_writer :body
12
12
  attribute :content_length, :aliases => 'Content-Length'
13
13
  # attribute :content_type, :aliases => 'Content-Type'
14
14
  attribute :last_modified, :aliases => 'Last-Modified'
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/local/models/storage/file'
3
3
 
4
4
  module Fog
@@ -45,10 +45,7 @@ module Fog
45
45
  file.close
46
46
  new(data)
47
47
  else
48
- body = nil
49
- ::File.open(path) do |file|
50
- body = file.read
51
- end
48
+ body = ::File.read(path)
52
49
  new(data.merge!(:body => body))
53
50
  end
54
51
  else
@@ -1,6 +1,6 @@
1
1
  module Fog
2
2
  module Local
3
- class Storage < Fog::Service
3
+ class Storage < Fog::Service
4
4
 
5
5
  requires :local_root
6
6
 
@@ -1,4 +1,4 @@
1
- require 'fog/parser'
1
+ require 'fog/core/parser'
2
2
 
3
3
  module Fog
4
4
  module NewServers
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
 
3
3
  module Fog
4
4
  module Rackspace
@@ -8,8 +8,6 @@ module Fog
8
8
 
9
9
  identity :id
10
10
 
11
- attribute :bits
12
- attribute :cores
13
11
  attribute :disk
14
12
  attribute :name
15
13
  attribute :ram
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/rackspace/models/compute/flavor'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
 
3
3
  module Fog
4
4
  module Rackspace
@@ -33,6 +33,7 @@ module Fog
33
33
  end
34
34
 
35
35
  def save
36
+ raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
36
37
  requires :server_id
37
38
 
38
39
  data = connection.create_image(@server_id, 'name' => name)
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/rackspace/models/compute/image'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
 
3
3
  module Fog
4
4
  module Rackspace
@@ -47,16 +47,6 @@ module Fog
47
47
  connection.images(:server => self)
48
48
  end
49
49
 
50
- def ready?
51
- @status == 'ACTIVE'
52
- end
53
-
54
- def reboot(type = 'SOFT')
55
- requires :id
56
- connection.reboot_server(@id, type)
57
- true
58
- end
59
-
60
50
  def private_key_path
61
51
  File.expand_path(@private_key_path ||= Fog.credentials[:private_key_path])
62
52
  end
@@ -73,7 +63,18 @@ module Fog
73
63
  @public_key ||= File.read(public_key_path)
74
64
  end
75
65
 
66
+ def ready?
67
+ @status == 'ACTIVE'
68
+ end
69
+
70
+ def reboot(type = 'SOFT')
71
+ requires :id
72
+ connection.reboot_server(@id, type)
73
+ true
74
+ end
75
+
76
76
  def save
77
+ raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
77
78
  requires :flavor_id, :image_id, :name
78
79
  options = {
79
80
  'metadata' => @metadata,
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/rackspace/models/compute/server'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/rackspace/models/storage/directory'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
  require 'fog/rackspace/models/storage/files'
3
3
 
4
4
  module Fog
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
 
3
3
  module Fog
4
4
  module Rackspace
@@ -8,7 +8,7 @@ module Fog
8
8
 
9
9
  identity :key, :aliases => 'Key'
10
10
 
11
- attr_accessor :body
11
+ attr_writer :body
12
12
  attribute :content_length, :aliases => 'Content-Length'
13
13
  attribute :content_type, :aliases => 'Content-Type'
14
14
  attribute :etag, :aliases => 'Etag'
@@ -41,9 +41,9 @@ module Fog
41
41
  end
42
42
  end
43
43
 
44
- def save
44
+ def save(options = {})
45
45
  requires :body, :directory, :key
46
- data = connection.put_object(directory.name, @key, @body)
46
+ data = connection.put_object(directory.name, @key, @body, options)
47
47
  @etag = data.headers['ETag']
48
48
  true
49
49
  end
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/rackspace/models/storage/file'
3
3
 
4
4
  module Fog
@@ -47,12 +47,12 @@ module Fog
47
47
  'name' => options['name'] || '',
48
48
  'serverId' => server_id,
49
49
  'status' => 'SAVING',
50
- 'updated' => now,
50
+ 'updated' => now.to_s,
51
51
  }
52
52
 
53
53
  @data[:last_modified][:images][data['id']] = now
54
54
  @data[:images][data['id']] = data
55
- response.body = { 'image' => data.reject {|key, value| !['id', 'name', 'serverId'].include?(key)} }
55
+ response.body = { 'image' => data.reject {|key, value| !['id', 'name', 'serverId', 'status', 'updated'].include?(key)} }
56
56
  response
57
57
  end
58
58
 
@@ -22,7 +22,7 @@ module Fog
22
22
 
23
23
  def delete_image(image_id)
24
24
  response = Excon::Response.new
25
- if image = list_images_detail.body['images'].detect {|image| image['id'] == image_id}
25
+ if image = list_images_detail.body['images'].detect {|_| _['id'] == image_id}
26
26
  if image['status'] == 'SAVING'
27
27
  response.status = 409
28
28
  raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -22,7 +22,7 @@ module Fog
22
22
 
23
23
  def delete_server(server_id)
24
24
  response = Excon::Response.new
25
- if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
25
+ if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
26
26
  if server['status'] == 'BUILD'
27
27
  response.status = 409
28
28
  raise(Excon::Errors.status_error({:expects => 202}, response))
@@ -37,7 +37,7 @@ module Fog
37
37
 
38
38
  def get_server_details(server_id)
39
39
  response = Excon::Response.new
40
- if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
40
+ if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
41
41
  response.status = [200, 203][rand(1)]
42
42
  response.body = { 'server' => server }
43
43
  response
@@ -28,7 +28,7 @@ module Fog
28
28
 
29
29
  def list_addresses(server_id)
30
30
  response = Excon::Response.new
31
- if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
31
+ if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
32
32
  response.status = [200, 203][rand(1)]
33
33
  response.body = { 'addresses' => server['addresses'] }
34
34
  response
@@ -32,14 +32,14 @@ module Fog
32
32
  for image in images
33
33
  case image['status']
34
34
  when 'SAVING'
35
- if Time.now - @data[:last_modified][:images][image['id']] > 2
35
+ if Time.now - @data[:last_modified][:images][image['id']] > Fog::Mock.delay
36
36
  image['status'] = 'ACTIVE'
37
37
  end
38
38
  end
39
39
  end
40
40
 
41
41
  response.status = [200, 203][rand(1)]
42
- response.body = { 'images' => images }
42
+ response.body = { 'images' => images.map {|image| image.reject {|key, value| !['id', 'name', 'status', 'updated'].include?(key)}} }
43
43
  response
44
44
  end
45
45
 
@@ -26,7 +26,7 @@ module Fog
26
26
 
27
27
  def list_private_addresses(server_id)
28
28
  response = Excon::Response.new
29
- if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
29
+ if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
30
30
  response.status = [200, 203][rand(1)]
31
31
  response.body = { 'private' => server['addresses']['private'] }
32
32
  response
@@ -26,7 +26,7 @@ module Fog
26
26
 
27
27
  def list_public_addresses(server_id)
28
28
  response = Excon::Response.new
29
- if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
29
+ if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
30
30
  response.status = [200, 203][rand(1)]
31
31
  response.body = { 'public' => server['addresses']['public'] }
32
32
  response
@@ -25,7 +25,7 @@ module Fog
25
25
 
26
26
  def update_server(server_id, options)
27
27
  response = Excon::Response.new
28
- if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
28
+ if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
29
29
  if options['adminPass']
30
30
  server['adminPass'] = options['adminPass']
31
31
  end
@@ -8,12 +8,13 @@ module Fog
8
8
  # ==== Parameters
9
9
  # * container<~String> - Name for container, should be < 256 bytes and must not contain '/'
10
10
  #
11
- def put_object(container, object, data)
11
+ def put_object(container, object, data, options = {})
12
12
  data = parse_data(data)
13
+ headers = data[:headers].merge!(options)
13
14
  response = storage_request(
14
15
  :body => data[:body],
15
16
  :expects => 201,
16
- :headers => data[:headers],
17
+ :headers => headers,
17
18
  :method => 'PUT',
18
19
  :path => "#{CGI.escape(container)}/#{CGI.escape(object)}"
19
20
  )
@@ -24,7 +25,7 @@ module Fog
24
25
 
25
26
  class Mock
26
27
 
27
- def put_object(container, object, data)
28
+ def put_object(container, object, data, options = {})
28
29
  Fog::Mock.not_implemented
29
30
  end
30
31
 
@@ -1,4 +1,4 @@
1
- require 'fog/model'
1
+ require 'fog/core/model'
2
2
 
3
3
  module Fog
4
4
  module Slicehost
@@ -1,4 +1,4 @@
1
- require 'fog/collection'
1
+ require 'fog/core/collection'
2
2
  require 'fog/slicehost/models/compute/flavor'
3
3
 
4
4
  module Fog