fog 0.8.1 → 0.8.2

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 (211) hide show
  1. data/Rakefile +106 -17
  2. data/bin/fog +1 -1
  3. data/changelog.txt +17 -0
  4. data/docs/_layouts/default.html +2 -1
  5. data/docs/about/contributing.markdown +1 -1
  6. data/docs/compute/index.markdown +104 -0
  7. data/docs/index.markdown +1 -0
  8. data/docs/storage/index.markdown +17 -0
  9. data/fog.gemspec +3 -2
  10. data/lib/fog.rb +1 -1
  11. data/lib/fog/aws/elb.rb +1 -0
  12. data/lib/fog/aws/iam.rb +1 -0
  13. data/lib/fog/aws/rds.rb +1 -0
  14. data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +5 -5
  15. data/lib/fog/aws/requests/simpledb/create_domain.rb +1 -1
  16. data/lib/fog/aws/requests/simpledb/delete_attributes.rb +3 -3
  17. data/lib/fog/aws/requests/simpledb/delete_domain.rb +1 -1
  18. data/lib/fog/aws/requests/simpledb/domain_metadata.rb +1 -1
  19. data/lib/fog/aws/requests/simpledb/get_attributes.rb +5 -5
  20. data/lib/fog/aws/requests/simpledb/list_domains.rb +2 -2
  21. data/lib/fog/aws/requests/simpledb/put_attributes.rb +6 -6
  22. data/lib/fog/aws/ses.rb +1 -0
  23. data/lib/fog/aws/simpledb.rb +8 -2
  24. data/lib/fog/bin.rb +2 -2
  25. data/lib/fog/cdn/aws.rb +8 -2
  26. data/lib/fog/cdn/rackspace.rb +8 -2
  27. data/lib/fog/compute/aws.rb +12 -3
  28. data/lib/fog/compute/bluebox.rb +8 -2
  29. data/lib/fog/compute/ecloud.rb +9 -4
  30. data/lib/fog/compute/go_grid.rb +8 -2
  31. data/lib/fog/compute/linode.rb +38 -6
  32. data/lib/fog/compute/models/aws/volumes.rb +4 -4
  33. data/lib/fog/compute/models/bluebox/server.rb +3 -3
  34. data/lib/fog/compute/models/brightbox/server.rb +9 -9
  35. data/lib/fog/compute/models/linode/data_center.rb +12 -0
  36. data/lib/fog/compute/models/linode/data_centers.rb +26 -0
  37. data/lib/fog/compute/models/linode/disk.rb +62 -0
  38. data/lib/fog/compute/models/linode/disks.rb +40 -0
  39. data/lib/fog/compute/models/linode/flavor.rb +23 -0
  40. data/lib/fog/compute/models/linode/flavors.rb +32 -0
  41. data/lib/fog/compute/models/linode/image.rb +14 -0
  42. data/lib/fog/compute/models/linode/images.rb +33 -0
  43. data/lib/fog/compute/models/linode/ip.rb +30 -0
  44. data/lib/fog/compute/models/linode/ips.rb +40 -0
  45. data/lib/fog/compute/models/linode/kernel.rb +12 -0
  46. data/lib/fog/compute/models/linode/kernels.rb +32 -0
  47. data/lib/fog/compute/models/linode/server.rb +88 -0
  48. data/lib/fog/compute/models/linode/servers.rb +32 -0
  49. data/lib/fog/compute/models/linode/stack_script.rb +13 -0
  50. data/lib/fog/compute/models/linode/stack_scripts.rb +32 -0
  51. data/lib/fog/compute/models/rackspace/server.rb +2 -2
  52. data/lib/fog/compute/models/slicehost/server.rb +2 -2
  53. data/lib/fog/compute/models/voxel/server.rb +3 -3
  54. data/lib/fog/compute/new_servers.rb +8 -2
  55. data/lib/fog/compute/rackspace.rb +8 -2
  56. data/lib/fog/compute/requests/aws/allocate_address.rb +4 -2
  57. data/lib/fog/compute/requests/aws/associate_address.rb +4 -2
  58. data/lib/fog/compute/requests/aws/attach_volume.rb +4 -2
  59. data/lib/fog/compute/requests/aws/authorize_security_group_ingress.rb +5 -3
  60. data/lib/fog/compute/requests/aws/create_image.rb +2 -1
  61. data/lib/fog/compute/requests/aws/create_key_pair.rb +4 -2
  62. data/lib/fog/compute/requests/aws/create_security_group.rb +5 -3
  63. data/lib/fog/compute/requests/aws/create_snapshot.rb +6 -4
  64. data/lib/fog/compute/requests/aws/create_tags.rb +7 -5
  65. data/lib/fog/compute/requests/aws/create_volume.rb +4 -2
  66. data/lib/fog/compute/requests/aws/delete_key_pair.rb +3 -1
  67. data/lib/fog/compute/requests/aws/delete_security_group.rb +4 -2
  68. data/lib/fog/compute/requests/aws/delete_snapshot.rb +3 -1
  69. data/lib/fog/compute/requests/aws/delete_tags.rb +5 -3
  70. data/lib/fog/compute/requests/aws/delete_volume.rb +4 -2
  71. data/lib/fog/compute/requests/aws/deregister_image.rb +2 -0
  72. data/lib/fog/compute/requests/aws/describe_addresses.rb +3 -1
  73. data/lib/fog/compute/requests/aws/describe_availability_zones.rb +2 -0
  74. data/lib/fog/compute/requests/aws/describe_images.rb +3 -1
  75. data/lib/fog/compute/requests/aws/describe_instances.rb +12 -10
  76. data/lib/fog/compute/requests/aws/describe_key_pairs.rb +3 -1
  77. data/lib/fog/compute/requests/aws/describe_regions.rb +2 -0
  78. data/lib/fog/compute/requests/aws/describe_reserved_instances.rb +2 -0
  79. data/lib/fog/compute/requests/aws/describe_reserved_instances_offerings.rb +2 -0
  80. data/lib/fog/compute/requests/aws/describe_security_groups.rb +3 -1
  81. data/lib/fog/compute/requests/aws/describe_snapshots.rb +5 -3
  82. data/lib/fog/compute/requests/aws/describe_tags.rb +2 -0
  83. data/lib/fog/compute/requests/aws/describe_volumes.rb +9 -7
  84. data/lib/fog/compute/requests/aws/detach_volume.rb +3 -1
  85. data/lib/fog/compute/requests/aws/disassociate_address.rb +4 -2
  86. data/lib/fog/compute/requests/aws/get_console_output.rb +3 -1
  87. data/lib/fog/compute/requests/aws/get_password_data.rb +15 -1
  88. data/lib/fog/compute/requests/aws/import_key_pair.rb +4 -2
  89. data/lib/fog/compute/requests/aws/modify_image_attributes.rb +4 -0
  90. data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +4 -0
  91. data/lib/fog/compute/requests/aws/monitor_instances.rb +3 -1
  92. data/lib/fog/compute/requests/aws/reboot_instances.rb +4 -2
  93. data/lib/fog/compute/requests/aws/register_image.rb +4 -0
  94. data/lib/fog/compute/requests/aws/release_address.rb +3 -1
  95. data/lib/fog/compute/requests/aws/revoke_security_group_ingress.rb +3 -1
  96. data/lib/fog/compute/requests/aws/run_instances.rb +12 -6
  97. data/lib/fog/compute/requests/aws/start_instances.rb +2 -0
  98. data/lib/fog/compute/requests/aws/stop_instances.rb +2 -0
  99. data/lib/fog/compute/requests/aws/terminate_instances.rb +5 -3
  100. data/lib/fog/compute/requests/aws/unmonitor_instances.rb +3 -1
  101. data/lib/fog/compute/requests/go_grid/grid_image_get.rb +1 -1
  102. data/lib/fog/compute/requests/go_grid/grid_image_list.rb +1 -1
  103. data/lib/fog/compute/requests/linode/avail_datacenters.rb +1 -2
  104. data/lib/fog/compute/requests/linode/avail_distributions.rb +1 -2
  105. data/lib/fog/compute/requests/linode/avail_kernels.rb +6 -5
  106. data/lib/fog/compute/requests/linode/avail_linodeplans.rb +9 -3
  107. data/lib/fog/compute/requests/linode/avail_stackscripts.rb +3 -15
  108. data/lib/fog/compute/requests/linode/linode_boot.rb +15 -0
  109. data/lib/fog/compute/requests/linode/linode_config_create.rb +21 -0
  110. data/lib/fog/compute/requests/linode/linode_config_list.rb +18 -0
  111. data/lib/fog/compute/requests/linode/linode_create.rb +3 -4
  112. data/lib/fog/compute/requests/linode/linode_delete.rb +0 -1
  113. data/lib/fog/compute/requests/linode/linode_disk_create.rb +21 -0
  114. data/lib/fog/compute/requests/linode/linode_disk_createfromdistribution.rb +22 -0
  115. data/lib/fog/compute/requests/linode/linode_disk_createfromstackscript.rb +24 -0
  116. data/lib/fog/compute/requests/linode/linode_disk_delete.rb +19 -0
  117. data/lib/fog/compute/requests/linode/linode_disk_list.rb +19 -0
  118. data/lib/fog/compute/requests/linode/linode_ip_addprivate.rb +15 -0
  119. data/lib/fog/compute/requests/linode/linode_ip_list.rb +19 -0
  120. data/lib/fog/compute/requests/linode/linode_list.rb +0 -1
  121. data/lib/fog/compute/requests/linode/linode_reboot.rb +1 -2
  122. data/lib/fog/compute/requests/linode/linode_shutdown.rb +15 -0
  123. data/lib/fog/compute/requests/linode/linode_update.rb +15 -0
  124. data/lib/fog/compute/requests/linode/stackscript_list.rb +31 -0
  125. data/lib/fog/compute/requests/rackspace/confirm_resized_server.rb +3 -3
  126. data/lib/fog/compute/requests/rackspace/create_image.rb +2 -2
  127. data/lib/fog/compute/requests/rackspace/create_server.rb +2 -2
  128. data/lib/fog/compute/requests/rackspace/delete_image.rb +2 -2
  129. data/lib/fog/compute/requests/rackspace/delete_server.rb +2 -2
  130. data/lib/fog/compute/requests/rackspace/list_images_detail.rb +2 -2
  131. data/lib/fog/compute/requests/rackspace/list_servers_detail.rb +2 -2
  132. data/lib/fog/compute/requests/rackspace/resize_server.rb +4 -4
  133. data/lib/fog/compute/requests/rackspace/revert_resized_server.rb +4 -4
  134. data/lib/fog/compute/slicehost.rb +8 -2
  135. data/lib/fog/compute/storm_on_demand.rb +12 -1
  136. data/lib/fog/compute/voxel.rb +8 -2
  137. data/lib/fog/core/mock.rb +14 -1
  138. data/lib/fog/dns/aws.rb +8 -2
  139. data/lib/fog/dns/bluebox.rb +8 -2
  140. data/lib/fog/dns/dnsimple.rb +15 -3
  141. data/lib/fog/dns/linode.rb +8 -2
  142. data/lib/fog/dns/slicehost.rb +8 -2
  143. data/lib/fog/dns/zerigo.rb +8 -2
  144. data/lib/fog/providers/aws.rb +5 -10
  145. data/lib/fog/providers/linode.rb +0 -3
  146. data/lib/fog/storage.rb +6 -4
  147. data/lib/fog/storage/aws.rb +8 -2
  148. data/lib/fog/storage/google.rb +8 -2
  149. data/lib/fog/storage/local.rb +8 -2
  150. data/lib/fog/storage/models/aws/file.rb +0 -1
  151. data/lib/fog/storage/models/google/file.rb +1 -5
  152. data/lib/fog/storage/models/local/file.rb +1 -1
  153. data/lib/fog/storage/models/rackspace/file.rb +1 -5
  154. data/lib/fog/storage/rackspace.rb +8 -2
  155. data/lib/fog/storage/requests/aws/copy_object.rb +2 -2
  156. data/lib/fog/storage/requests/aws/delete_bucket.rb +3 -3
  157. data/lib/fog/storage/requests/aws/delete_object.rb +1 -1
  158. data/lib/fog/storage/requests/aws/get_bucket.rb +1 -1
  159. data/lib/fog/storage/requests/aws/get_bucket_acl.rb +1 -1
  160. data/lib/fog/storage/requests/aws/get_bucket_location.rb +1 -1
  161. data/lib/fog/storage/requests/aws/get_object.rb +1 -1
  162. data/lib/fog/storage/requests/aws/get_object_acl.rb +1 -1
  163. data/lib/fog/storage/requests/aws/get_request_payment.rb +1 -1
  164. data/lib/fog/storage/requests/aws/get_service.rb +1 -1
  165. data/lib/fog/storage/requests/aws/put_bucket.rb +3 -3
  166. data/lib/fog/storage/requests/aws/put_object.rb +3 -3
  167. data/lib/fog/storage/requests/aws/put_request_payment.rb +1 -1
  168. data/lib/fog/storage/requests/google/copy_object.rb +2 -2
  169. data/lib/fog/storage/requests/google/delete_bucket.rb +3 -3
  170. data/lib/fog/storage/requests/google/delete_object.rb +1 -1
  171. data/lib/fog/storage/requests/google/get_bucket.rb +1 -1
  172. data/lib/fog/storage/requests/google/get_bucket_acl.rb +1 -1
  173. data/lib/fog/storage/requests/google/get_object.rb +1 -1
  174. data/lib/fog/storage/requests/google/get_object_acl.rb +1 -1
  175. data/lib/fog/storage/requests/google/get_service.rb +2 -2
  176. data/lib/fog/storage/requests/google/put_bucket.rb +3 -3
  177. data/lib/fog/storage/requests/google/put_object.rb +3 -3
  178. data/lib/fog/terremark/requests/shared/get_network.rb +1 -1
  179. data/lib/fog/terremark/requests/shared/get_organization.rb +1 -1
  180. data/lib/fog/terremark/requests/shared/get_organizations.rb +1 -1
  181. data/lib/fog/terremark/requests/shared/get_public_ips.rb +1 -1
  182. data/lib/fog/terremark/requests/shared/get_vdc.rb +1 -1
  183. data/lib/fog/terremark/shared.rb +4 -0
  184. data/lib/fog/terremark/vcloud.rb +11 -1
  185. data/spec/ecloud/bin_spec.rb +8 -2
  186. data/spec/ecloud/spec_helper.rb +3 -3
  187. data/tests/compute/helper.rb +1 -3
  188. data/tests/compute/models/aws/server_tests.rb +3 -2
  189. data/tests/compute/requests/aws/instance_tests.rb +12 -9
  190. data/tests/compute/requests/aws/key_pair_tests.rb +1 -1
  191. data/tests/compute/requests/aws/volume_tests.rb +2 -2
  192. data/tests/compute/requests/brightbox/helper.rb +3 -0
  193. data/tests/compute/requests/linode/kernel_tests.rb +27 -0
  194. data/tests/compute/requests/linode/linode_tests.rb +62 -4
  195. data/tests/compute/requests/linode/stackscripts_tests.rb +35 -0
  196. data/tests/compute/requests/rackspace/resize_tests.rb +2 -2
  197. data/tests/compute/requests/voxel/server_tests.rb +1 -0
  198. data/tests/core/credential_tests.rb +7 -2
  199. data/tests/core/parser_tests.rb +1 -1
  200. data/tests/helper.rb +1 -1
  201. data/tests/helpers/compute/server_helper.rb +6 -0
  202. data/tests/helpers/formats_helper.rb +2 -0
  203. data/tests/helpers/mock_helper.rb +8 -1
  204. data/tests/helpers/model_helper.rb +1 -3
  205. data/tests/helpers/responds_to_helper.rb +2 -2
  206. data/tests/storage/helper.rb +1 -1
  207. data/tests/storage/models/directories_tests.rb +8 -4
  208. data/tests/storage/models/directory_test.rb +15 -11
  209. data/tests/storage/models/file_tests.rb +6 -6
  210. data/tests/storage/models/files_tests.rb +5 -5
  211. metadata +105 -55
@@ -253,7 +253,7 @@ end
253
253
 
254
254
  Spec::Runner.configure do |config|
255
255
  config.after(:all) do
256
- Fog::Ecloud::Compute::Mock.data_reset
256
+ Fog::Ecloud::Compute::Mock.reset
257
257
  end
258
258
 
259
259
  config.before(:each, :type => :vcloud_request) do
@@ -261,12 +261,12 @@ Spec::Runner.configure do |config|
261
261
  end
262
262
 
263
263
  config.before(:each, :type => :mock_tmrk_ecloud_request) do
264
- Fog::Ecloud::Compute::Mock.data_reset
264
+ Fog::Ecloud::Compute::Mock.reset
265
265
  setup_ecloud_mock_data
266
266
  @vcloud = Fog::Ecloud::Compute.new(:ecloud_username => "foo", :ecloud_password => "bar", :ecloud_versions_uri => "http://fakey.com/api/versions")
267
267
  end
268
268
  config.before(:each, :type => :mock_tmrk_ecloud_model) do
269
- Fog::Ecloud::Compute::Mock.data_reset
269
+ Fog::Ecloud::Compute::Mock.reset
270
270
  setup_ecloud_mock_data
271
271
  @vcloud = Fog::Ecloud::Compute.new(:ecloud_username => "foo", :ecloud_password => "bar", :ecloud_versions_uri => "http://fakey.com/api/versions")
272
272
  end
@@ -1,9 +1,7 @@
1
1
  def compute_providers
2
2
  {
3
3
  AWS => {
4
- :server_attributes => {
5
- :image_id => 'ami-1a837773' # image ami-1a837773 = Ubuntu
6
- },
4
+ :server_attributes => {},
7
5
  :mocked => true
8
6
  },
9
7
  Bluebox => {
@@ -1,10 +1,11 @@
1
1
  Shindo.tests("AWS::Compute | monitor", ['aws']) do
2
2
 
3
- [:addresses, :flavor, :key_pair, :key_pair=, :volume].each do |association|
3
+ @instance = AWS[:compute].servers.new
4
+
5
+ [:addresses, :flavor, :key_pair, :key_pair=, :volumes].each do |association|
4
6
  responds_to(association)
5
7
  end
6
8
 
7
- @instance = AWS[:compute].servers.new
8
9
 
9
10
  tests('new instance') do
10
11
 
@@ -4,7 +4,7 @@ Shindo.tests('AWS::Compute | instance requests', ['aws']) do
4
4
  # 'architecture' => String,
5
5
  'amiLaunchIndex' => Integer,
6
6
  'blockDeviceMapping' => [],
7
- 'clientToken' => NilClass,
7
+ 'clientToken' => Fog::Nullable::String,
8
8
  'dnsName' => NilClass,
9
9
  'imageId' => String,
10
10
  'instanceId' => String,
@@ -60,7 +60,7 @@ Shindo.tests('AWS::Compute | instance requests', ['aws']) do
60
60
 
61
61
  @get_password_data_format = {
62
62
  'instanceId' => String,
63
- 'passwordData' => String,
63
+ 'passwordData' => Fog::Nullable::String,
64
64
  'requestId' => String,
65
65
  'timestamp' => Time
66
66
  }
@@ -119,15 +119,18 @@ Shindo.tests('AWS::Compute | instance requests', ['aws']) do
119
119
  end
120
120
 
121
121
  tests("#get_password_data('#{@instance_id}')").formats(@get_password_data_format) do
122
- pending if Fog.mock?
123
- result = nil
124
- Fog.wait_for do
125
- result = AWS[:compute].get_password_data(@instance_id).body
126
- !result['passwordData'].nil?
127
- end
122
+ result = AWS[:compute].get_password_data(@instance_id).body
128
123
 
129
124
  tests("key can decrypt passwordData").returns(true) do
130
- decoded_password = Base64.decode64(result['passwordData'])
125
+
126
+ pending if Fog.mocking?
127
+
128
+ password_data = result['passwordData']
129
+ Fog.wait_for do
130
+ password_data ||= AWS[:compute].get_password_data(@instance_id).body['passwordData']
131
+ end
132
+
133
+ decoded_password = Base64.decode64(password_data)
131
134
  pkey = OpenSSL::PKey::RSA.new(key.private_key)
132
135
  String === pkey.private_decrypt(decoded_password)
133
136
  end
@@ -21,7 +21,7 @@ Shindo.tests('AWS::Compute | key pair requests', ['aws']) do
21
21
 
22
22
  tests("#create_key_pair('#{@key_pair_name}')").formats(@keypair_format.merge({'keyMaterial' => String})) do
23
23
  body = AWS[:compute].create_key_pair(@key_pair_name).body
24
- tests("private key is valid RSA key").returns(OpenSSL::PKey::RSA) do
24
+ tests("key material").returns(OpenSSL::PKey::RSA, "is a valid private RSA key") do
25
25
  OpenSSL::PKey::RSA.new(body['keyMaterial']).class
26
26
  end
27
27
  body
@@ -22,12 +22,12 @@ Shindo.tests('AWS::Compute | volume requests', ['aws']) do
22
22
  @volumes_format = {
23
23
  'volumeSet' => [{
24
24
  'availabilityZone' => String,
25
- 'attachmentSet' => [],
25
+ 'attachmentSet' => Array,
26
26
  'createTime' => Time,
27
27
  'size' => Integer,
28
28
  'snapshotId' => Fog::Nullable::String,
29
29
  'status' => String,
30
- 'tagSet' => {},
30
+ 'tagSet' => Hash,
31
31
  'volumeId' => String
32
32
  }],
33
33
  'requestId' => String
@@ -270,6 +270,9 @@ class Brightbox
270
270
  "library_ftp_host" => String,
271
271
  "library_ftp_user" => String,
272
272
  "library_ftp_password" => Fog::Nullable::String,
273
+ "verified_telephone" => Fog::Nullable::Boolean,
274
+ "verified_at" => Fog::Nullable::Time,
275
+ "verified_ip" => Fog::Nullable::String,
273
276
  "owner" => Brightbox::Compute::Formats::Nested::USER,
274
277
  "users" => [Brightbox::Compute::Formats::Nested::USER],
275
278
  "clients" => [Brightbox::Compute::Formats::Nested::API_CLIENT],
@@ -0,0 +1,27 @@
1
+ Shindo.tests('Linode::Compute | kernel requests', ['linode']) do
2
+
3
+ @kernels_format = Linode::Compute::Formats::BASIC.merge({
4
+ 'DATA' => [{
5
+ 'LABEL' => String,
6
+ 'ISXEN' => Integer,
7
+ 'ISPVOPS' => Integer,
8
+ 'KERNELID' => Integer
9
+ }]
10
+ })
11
+
12
+ tests('success') do
13
+ @kernel_id = nil
14
+
15
+ tests('#avail_kernels').formats(@kernels_format) do
16
+ pending if Fog.mocking?
17
+ data = Linode[:compute].avail_kernels.body
18
+ @kernel_id = data['DATA'].first['KERNELID']
19
+ data
20
+ end
21
+
22
+ tests("@avail_kernels(#{@kernel_id})").formats(@kernels_format) do
23
+ pending if Fog.mocking?
24
+ Linode[:compute].avail_kernels(@kernel_id).body
25
+ end
26
+ end
27
+ end
@@ -35,6 +35,28 @@ Shindo.tests('Linode::Compute | linode requests', ['linode']) do
35
35
  'DATA' => { 'JobID' => Integer }
36
36
  })
37
37
 
38
+ @ip_format = Linode::Compute::Formats::BASIC.merge({
39
+ 'DATA' => { 'IPAddressID' => Integer }
40
+ })
41
+
42
+ @disks_format = Linode::Compute::Formats::BASIC.merge({
43
+ 'DATA' => [{
44
+ "UPDATE_DT" => String,
45
+ "DISKID" => Integer,
46
+ "LABEL" => String,
47
+ "TYPE" => String,
48
+ "LINODEID" => Integer,
49
+ "ISREADONLY" => Integer,
50
+ "STATUS" => Integer,
51
+ "CREATE_DT" => String,
52
+ "SIZE" => Integer
53
+ }]
54
+ })
55
+
56
+ @disk_format = Linode::Compute::Formats::BASIC.merge({
57
+ 'DATA' => { 'JobID' => Integer, 'DiskID' => Integer }
58
+ })
59
+
38
60
  tests('success') do
39
61
 
40
62
  @linode_id = nil
@@ -53,16 +75,52 @@ Shindo.tests('Linode::Compute | linode requests', ['linode']) do
53
75
  end
54
76
 
55
77
  tests('#linode_list').formats(@linodes_format) do
56
- pending if Fog.mocking?
78
+ pending if Fog.mocking?
57
79
  Linode[:compute].linode_list.body
58
80
  end
59
81
 
82
+ tests('#linode_update').formats(@linode_format) do
83
+ pending if Fog.mocking?
84
+ Linode[:compute].linode_update(@linode_id, :label => 'testing').body
85
+ end
86
+
87
+ tests('#linode_ip_addprivate').formats(@ip_format) do
88
+ pending if Fog.mocking?
89
+ Linode[:compute].linode_ip_addprivate(@linode_id).body
90
+ end
91
+
92
+ tests('#linode_disk_create').formats(@disk_format) do
93
+ pending if Fog.mocking?
94
+ data = Linode[:compute].linode_disk_create(@linode_id, 'test1', 'ext3', 1).body
95
+ @disk1_id = data['DATA']['DiskID']
96
+ data
97
+ end
98
+
99
+ tests('#linode_disk_createfromdistribution').formats(@disk_format) do
100
+ pending if Fog.mocking?
101
+ data = Linode[:compute].linode_disk_createfromdistribution(@linode_id, 73, 'test1', 600, 'P@SSW)RD').body
102
+ @disk2_id = data['DATA']['DiskID']
103
+ data
104
+ end
105
+
106
+ tests('#linode_disk_list').formats(@disks_format) do
107
+ pending if Fog.mocking?
108
+ Linode[:compute].linode_disk_list(@linode_id).body
109
+ end
110
+
60
111
  # tests("#linode_reboot(#{@linode_id})").formats(@reboot_format) do
61
112
  # Linode[:compute].linode_reboot(@linode_id).body
62
- # end
113
+ # end
114
+
115
+ tests('#linode_disk_delete').formats(@disk_format) do
116
+ pending if Fog.mocking?
117
+ Linode[:compute].linode_disk_delete(@linode_id, @disk1_id).body
118
+ Linode[:compute].linode_disk_delete(@linode_id, @disk2_id).body
119
+ end
63
120
 
64
121
  tests('#linode_delete(#{@linode_id})').succeeds do
65
122
  pending if Fog.mocking?
123
+ sleep 1 until Linode[:compute].linode_disk_list(@linode_id).body['DATA'].size == 0
66
124
  Linode[:compute].linode_delete(@linode_id)
67
125
  end
68
126
 
@@ -72,12 +130,12 @@ Shindo.tests('Linode::Compute | linode requests', ['linode']) do
72
130
 
73
131
  tests('#linode_reboot(0)').raises(Fog::Linode::Compute::NotFound) do
74
132
  pending if Fog.mocking?
75
- Linode[:compute].linode_reboot(0)
133
+ Linode[:compute].linode_reboot(1)
76
134
  end
77
135
 
78
136
  tests('#linode_delete(0)').raises(Fog::Linode::Compute::NotFound) do
79
137
  pending if Fog.mocking?
80
- Linode[:compute].linode_delete(0)
138
+ Linode[:compute].linode_delete(1)
81
139
  end
82
140
 
83
141
  end
@@ -0,0 +1,35 @@
1
+ Shindo.tests('Linode::Compute | stack_script requests', ['linode']) do
2
+
3
+ @stack_scripts_format = Linode::Compute::Formats::BASIC.merge({
4
+ 'DATA' => [{
5
+ 'STACKSCRIPTID' => Integer,
6
+ 'SCRIPT' => String,
7
+ 'DESCRIPTION' => String,
8
+ 'DISTRIBUTIONIDLIST' => String,
9
+ 'LABEL' => String,
10
+ 'DEPLOYMENTSTOTAL' => Integer,
11
+ 'LATESTREV' => Integer,
12
+ 'CREATE_DT' => String,
13
+ 'DEPLOYMENTSACTIVE' => Integer,
14
+ 'REV_NOTE' => String,
15
+ 'REV_DT' => String,
16
+ 'ISPUBLIC' => Integer,
17
+ 'USERID' => Integer
18
+ }]
19
+ })
20
+
21
+ tests('success') do
22
+
23
+ tests('#avail_stackscripts').formats(@stack_scripts_format) do
24
+ pending if Fog.mocking?
25
+ Linode[:compute].avail_stackscripts.body
26
+ end
27
+
28
+ tests('#stackscript_list').formats(@stack_scripts_format) do
29
+ pending if Fog.mocking?
30
+ Linode[:compute].stackscript_list.body
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -14,12 +14,12 @@ Shindo.tests('Rackspace::Compute | resize request', ['rackspace']) do
14
14
  Rackspace[:compute].resize_server(@revert_server.id, 2)
15
15
  end
16
16
 
17
- @confirm_server.wait_for { status == 'VERIFY_RESIZE' }
17
+ @confirm_server.wait_for { state == 'VERIFY_RESIZE' }
18
18
  tests("#confirm_resized_server(#{@confirm_server.id})").succeeds do
19
19
  Rackspace[:compute].confirm_resized_server(@confirm_server.id)
20
20
  end
21
21
 
22
- @revert_server.wait_for { status == 'VERIFY_RESIZE' }
22
+ @revert_server.wait_for { state == 'VERIFY_RESIZE' }
23
23
  tests("#revert_resized_server(#{@revert_server.id})").succeeds do
24
24
  Rackspace[:compute].revert_resized_server(@revert_server.id)
25
25
  end
@@ -34,6 +34,7 @@ Shindo.tests('Voxel::Compute | server requests', ['voxel']) do
34
34
  'id' => String,
35
35
  'value' => String
36
36
  },
37
+ 'position' => Fog::Nullable::Integer,
37
38
  'rack' => {
38
39
  'id' => String,
39
40
  'value' => String
@@ -21,12 +21,17 @@ Shindo.tests do
21
21
  Fog.credentials_path
22
22
  }
23
23
 
24
- returns('/home/me/.fog', 'falls back to home path if FOG_RC not set') {
25
- ENV['HOME'] = '/home/me'
24
+ returns(File.join(ENV['HOME'], '.fog'), 'falls back to home path if FOG_RC not set') {
26
25
  ENV.delete('FOG_RC')
27
26
  Fog.credentials_path
28
27
  }
29
28
 
29
+ returns(nil, 'ignores home path if it does not exist') {
30
+ ENV.delete('FOG_RC')
31
+ ENV['HOME'] = '/no/such/path'
32
+ Fog.credentials_path
33
+ }
34
+
30
35
  returns(nil, 'returns nil when neither FOG_RC or HOME are set') {
31
36
  ENV.delete('HOME')
32
37
  ENV.delete('FOG_RC')
@@ -59,7 +59,7 @@ posuere eu odio. Donec sodales, ante porta condimentum
59
59
  }
60
60
 
61
61
 
62
- tests('TestParser').returns(@response) do
62
+ tests('TestParser').returns(@response, "returns the response") do
63
63
  test_parser = TestParser.new
64
64
  Nokogiri::XML::SAX::Parser.new(test_parser).parse(@xml)
65
65
  test_parser.response
@@ -9,7 +9,7 @@ end
9
9
 
10
10
  # check to see which credentials are available and add others to the skipped tags list
11
11
  all_providers = ['aws', 'bluebox', 'brightbox', 'dnsimple', 'ecloud', 'gogrid', 'google', 'linode', 'local', 'newservers', 'rackspace', 'slicehost', 'stormondemand', 'voxel', 'zerigo']
12
- available_providers = Fog.providers.map {|provider| provider.downcase}
12
+ available_providers = Fog.available_providers.map {|provider| provider.downcase}
13
13
  for provider in (all_providers - available_providers)
14
14
  Formatador.display_line("[yellow]Skipping tests for [bold]#{provider}[/] [yellow]due to lacking credentials (add some to '~/.fog' to run them)[/]")
15
15
  Thread.current[:tags] << ('-' << provider)
@@ -2,6 +2,12 @@ def server_tests(connection, params = {}, mocks_implemented = true)
2
2
 
3
3
  model_tests(connection.servers, params, mocks_implemented) do
4
4
 
5
+ tests('#reload').returns(true) do
6
+ pending if Fog.mocking? && !mocks_implemented
7
+ identity = @instance.identity
8
+ !identity.nil? && identity == @instance.reload.identity
9
+ end
10
+
5
11
  responds_to([:ready?, :state])
6
12
 
7
13
  tests('#reboot').succeeds do
@@ -4,12 +4,14 @@
4
4
  module Fog
5
5
  module Boolean; end
6
6
  module Nullable
7
+ module Boolean; end
7
8
  module Integer; end
8
9
  module String; end
9
10
  module Time; end
10
11
  end
11
12
  end
12
13
  [FalseClass, TrueClass].each {|klass| klass.send(:include, Fog::Boolean)}
14
+ [NilClass, Fog::Boolean].each {|klass| klass.send(:include, Fog::Nullable::Boolean)}
13
15
  [NilClass, String].each {|klass| klass.send(:include, Fog::Nullable::String)}
14
16
  [NilClass, Time].each {|klass| klass.send(:include, Fog::Nullable::Time)}
15
17
  [Integer, NilClass].each {|klass| klass.send(:include, Fog::Nullable::Integer)}
@@ -15,12 +15,17 @@ if Fog.mock?
15
15
  :bluebox_customer_id => 'bluebox_customer_id',
16
16
  :brightbox_client_id => 'brightbox_client_id',
17
17
  :brightbox_secret => 'brightbox_secret',
18
+ :dnsimple_email => 'dnsimple_email',
19
+ :dnsimple_password => 'dnsimple_password',
20
+ :ecloud_username => 'ecloud_username',
21
+ :ecloud_password => 'ecloud_password',
22
+ :ecloud_versions_uri => 'http://ecloud.versions.uri',
18
23
  :go_grid_api_key => 'go_grid_api_key',
19
24
  :go_grid_shared_secret => 'go_grid_shared_secret',
20
25
  :google_storage_access_key_id => 'google_storage_access_key_id',
21
26
  :google_storage_secret_access_key => 'google_storage_secret_access_key',
22
27
  :linode_api_key => 'linode_api_key',
23
- # :local_root => '~/.fog'
28
+ :local_root => '~/.fog',
24
29
  :new_servers_password => 'new_servers_password',
25
30
  :new_servers_username => 'new_servers_username',
26
31
  # :public_key_path => '~/.ssh/id_rsa.pub',
@@ -28,6 +33,8 @@ if Fog.mock?
28
33
  :rackspace_api_key => 'rackspace_api_key',
29
34
  :rackspace_username => 'rackspace_username',
30
35
  :slicehost_password => 'slicehost_password',
36
+ :storm_on_demand_username => 'storm_on_demand_username',
37
+ :storm_on_demand_password => 'storm_on_demand_password',
31
38
  :voxel_api_key => 'voxel_api_key',
32
39
  :voxel_api_secret => 'voxel_api_secret',
33
40
  :zerigo_email => 'zerigo_email',
@@ -2,9 +2,7 @@ def model_tests(collection, params = {}, mocks_implemented = true)
2
2
 
3
3
  tests('success') do
4
4
 
5
- if !Fog.mocking? || mocks_implemented
6
- @instance = collection.new(params)
7
- end
5
+ @instance = collection.new(params)
8
6
 
9
7
  tests("#save").succeeds do
10
8
  pending if Fog.mocking? && !mocks_implemented
@@ -3,11 +3,11 @@ module Shindo
3
3
 
4
4
  def responds_to(method_names)
5
5
  for method_name in [*method_names]
6
- tests("#respond_to?(:#{method_name})").succeeds do
6
+ tests("#respond_to?(:#{method_name})").returns(true) do
7
7
  @instance.respond_to?(method_name)
8
8
  end
9
9
  end
10
10
  end
11
11
 
12
12
  end
13
- end
13
+ end
@@ -7,7 +7,7 @@ def storage_providers
7
7
  :mocked => true
8
8
  },
9
9
  Local => {
10
- :mocked => true
10
+ :mocked => false
11
11
  },
12
12
  Rackspace => {
13
13
  :mocked => false