gapinc-fog 1.12.1.2.1 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (292) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +16 -1
  3. data/Gemfile.1.8.7 +10 -0
  4. data/README.md +23 -2
  5. data/Rakefile +2 -2
  6. data/changelog.txt +276 -0
  7. data/fog.gemspec +4 -6
  8. data/lib/fog/atmos/models/storage/file.rb +2 -2
  9. data/lib/fog/aws/elb.rb +3 -0
  10. data/lib/fog/aws/elb/policy_types.rb +441 -430
  11. data/lib/fog/aws/models/auto_scaling/activities.rb +11 -3
  12. data/lib/fog/aws/models/auto_scaling/groups.rb +6 -3
  13. data/lib/fog/aws/models/auto_scaling/policies.rb +7 -3
  14. data/lib/fog/aws/models/compute/volume.rb +1 -1
  15. data/lib/fog/aws/models/elb/backend_server_description.rb +11 -0
  16. data/lib/fog/aws/models/elb/backend_server_descriptions.rb +22 -0
  17. data/lib/fog/aws/models/elb/load_balancer.rb +15 -2
  18. data/lib/fog/aws/models/elb/policies.rb +28 -13
  19. data/lib/fog/aws/models/elb/policy.rb +20 -10
  20. data/lib/fog/aws/models/rds/instance_option.rb +21 -0
  21. data/lib/fog/aws/models/rds/instance_options.rb +30 -0
  22. data/lib/fog/aws/models/rds/log_file.rb +26 -0
  23. data/lib/fog/aws/models/rds/log_files.rb +50 -0
  24. data/lib/fog/aws/models/rds/server.rb +1 -0
  25. data/lib/fog/aws/models/rds/snapshots.rb +20 -13
  26. data/lib/fog/aws/parsers/auto_scaling/describe_policies.rb +5 -5
  27. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +44 -13
  28. data/lib/fog/aws/parsers/rds/db_parser.rb +28 -6
  29. data/lib/fog/aws/parsers/rds/describe_db_log_files.rb +44 -0
  30. data/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb +47 -0
  31. data/lib/fog/aws/parsers/rds/download_db_logfile_portion.rb +26 -0
  32. data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +1 -1
  33. data/lib/fog/aws/parsers/sts/assume_role.rb +30 -0
  34. data/lib/fog/aws/rds.rb +13 -0
  35. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb +9 -1
  36. data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +15 -1
  37. data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +0 -2
  38. data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +0 -2
  39. data/lib/fog/aws/requests/elb/create_load_balancer.rb +7 -0
  40. data/lib/fog/aws/requests/elb/create_load_balancer_policy.rb +11 -8
  41. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +21 -1
  42. data/lib/fog/aws/requests/elb/set_load_balancer_policies_for_backend_server.rb +67 -0
  43. data/lib/fog/aws/requests/rds/describe_db_log_files.rb +67 -0
  44. data/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb +76 -0
  45. data/lib/fog/aws/requests/rds/download_db_logfile_portion.rb +63 -0
  46. data/lib/fog/aws/requests/ses/send_raw_email.rb +1 -1
  47. data/lib/fog/aws/requests/ses/verify_domain_identity.rb +1 -1
  48. data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +6 -2
  49. data/lib/fog/aws/requests/storage/get_object.rb +1 -1
  50. data/lib/fog/aws/requests/sts/assume_role.rb +46 -0
  51. data/lib/fog/aws/ses.rb +25 -9
  52. data/lib/fog/aws/sts.rb +22 -6
  53. data/lib/fog/bin/openstack.rb +5 -0
  54. data/lib/fog/bin/rackspace.rb +4 -0
  55. data/lib/fog/brightbox/models/compute/collaboration.rb +10 -2
  56. data/lib/fog/brightbox/models/compute/collaborations.rb +26 -2
  57. data/lib/fog/brightbox/models/compute/user_collaboration.rb +16 -1
  58. data/lib/fog/brightbox/models/compute/user_collaborations.rb +10 -2
  59. data/lib/fog/cloudstack/models/compute/servers.rb +1 -1
  60. data/lib/fog/compute/models/server.rb +16 -10
  61. data/lib/fog/core.rb +1 -0
  62. data/lib/fog/core/collection.rb +18 -0
  63. data/lib/fog/core/mock.rb +16 -0
  64. data/lib/fog/digitalocean/compute.rb +32 -3
  65. data/lib/fog/digitalocean/models/compute/server.rb +43 -14
  66. data/lib/fog/digitalocean/models/compute/servers.rb +27 -4
  67. data/lib/fog/digitalocean/models/compute/ssh_keys.rb +2 -3
  68. data/lib/fog/digitalocean/requests/compute/create_server.rb +9 -7
  69. data/lib/fog/digitalocean/requests/compute/destroy_server.rb +3 -0
  70. data/lib/fog/digitalocean/requests/compute/list_images.rb +6 -6
  71. data/lib/fog/dnsimple/dns.rb +4 -1
  72. data/lib/fog/dnsimple/models/dns/record.rb +3 -3
  73. data/lib/fog/dnsimple/requests/dns/create_domain.rb +36 -0
  74. data/lib/fog/dnsimple/requests/dns/create_record.rb +27 -0
  75. data/lib/fog/dnsimple/requests/dns/delete_domain.rb +12 -0
  76. data/lib/fog/dnsimple/requests/dns/delete_record.rb +12 -0
  77. data/lib/fog/dnsimple/requests/dns/get_domain.rb +12 -0
  78. data/lib/fog/dnsimple/requests/dns/get_record.rb +24 -0
  79. data/lib/fog/dnsimple/requests/dns/list_domains.rb +12 -0
  80. data/lib/fog/dnsimple/requests/dns/list_records.rb +12 -0
  81. data/lib/fog/dnsimple/requests/dns/update_record.rb +20 -0
  82. data/lib/fog/glesys/models/compute/server.rb +6 -0
  83. data/lib/fog/google/README.md +28 -0
  84. data/lib/fog/google/Rakefile +17 -0
  85. data/lib/fog/google/examples/bootstrap.rb +9 -0
  86. data/lib/fog/google/examples/create.rb +37 -0
  87. data/lib/fog/google/examples/eric-fail.rb +19 -0
  88. data/lib/fog/google/examples/get_list_images.rb +27 -0
  89. data/lib/fog/google/examples/launch_micro_instance.rb +21 -0
  90. data/lib/fog/google/examples/metadata.rb +18 -0
  91. data/lib/fog/google/models/compute/disks.rb +16 -6
  92. data/lib/fog/google/models/compute/flavors.rb +2 -1
  93. data/lib/fog/google/models/compute/image.rb +16 -17
  94. data/lib/fog/google/models/compute/images.rb +38 -5
  95. data/lib/fog/google/models/compute/server.rb +2 -2
  96. data/lib/fog/google/models/compute/servers.rb +8 -5
  97. data/lib/fog/google/models/storage/file.rb +7 -1
  98. data/lib/fog/google/parsers/storage/access_control_list.rb +2 -2
  99. data/lib/fog/google/requests/compute/insert_server.rb +1 -2
  100. data/lib/fog/google/requests/compute/list_images.rb +3 -2
  101. data/lib/fog/google/requests/storage/get_object.rb +1 -1
  102. data/lib/fog/hp/requests/storage/get_object.rb +1 -1
  103. data/lib/fog/ibm/requests/compute/create_instance.rb +20 -15
  104. data/lib/fog/internet_archive/requests/storage/get_object.rb +1 -1
  105. data/lib/fog/metering.rb +25 -0
  106. data/lib/fog/openstack.rb +2 -1
  107. data/lib/fog/openstack/metering.rb +215 -0
  108. data/lib/fog/openstack/models/compute/server.rb +5 -2
  109. data/lib/fog/openstack/models/metering/resource.rb +24 -0
  110. data/lib/fog/openstack/models/metering/resources.rb +25 -0
  111. data/lib/fog/openstack/models/volume/volume.rb +3 -1
  112. data/lib/fog/openstack/models/volume/volumes.rb +2 -1
  113. data/lib/fog/openstack/network.rb +24 -1
  114. data/lib/fog/openstack/requests/compute/create_server.rb +19 -1
  115. data/lib/fog/openstack/requests/compute/get_host_details.rb +2 -1
  116. data/lib/fog/openstack/requests/metering/get_resource.rb +32 -0
  117. data/lib/fog/openstack/requests/metering/get_samples.rb +55 -0
  118. data/lib/fog/openstack/requests/metering/get_statistics.rb +56 -0
  119. data/lib/fog/openstack/requests/metering/list_meters.rb +50 -0
  120. data/lib/fog/openstack/requests/metering/list_resources.rb +32 -0
  121. data/lib/fog/openstack/requests/network/delete_quota.rb +26 -0
  122. data/lib/fog/openstack/requests/network/get_quota.rb +31 -0
  123. data/lib/fog/openstack/requests/network/get_quotas.rb +31 -0
  124. data/lib/fog/openstack/requests/network/update_quota.rb +33 -0
  125. data/lib/fog/openstack/requests/storage/put_object.rb +8 -5
  126. data/lib/fog/openstack/requests/volume/create_volume.rb +4 -2
  127. data/lib/fog/rackspace.rb +24 -4
  128. data/lib/fog/rackspace/block_storage.rb +8 -4
  129. data/lib/fog/rackspace/cdn.rb +21 -4
  130. data/lib/fog/rackspace/compute_v2.rb +15 -4
  131. data/lib/fog/rackspace/errors.rb +12 -5
  132. data/lib/fog/rackspace/mock_data.rb +18 -7
  133. data/lib/fog/rackspace/models/compute_v2/key_pair.rb +56 -0
  134. data/lib/fog/rackspace/models/compute_v2/key_pairs.rb +43 -0
  135. data/lib/fog/rackspace/models/compute_v2/server.rb +7 -2
  136. data/lib/fog/rackspace/models/compute_v2/servers.rb +2 -1
  137. data/lib/fog/rackspace/models/identity/service_catalog.rb +34 -16
  138. data/lib/fog/rackspace/models/monitoring/agent_token.rb +40 -0
  139. data/lib/fog/rackspace/models/monitoring/agent_tokens.rb +28 -0
  140. data/lib/fog/rackspace/models/monitoring/alarm.rb +51 -0
  141. data/lib/fog/rackspace/models/monitoring/alarm_example.rb +26 -0
  142. data/lib/fog/rackspace/models/monitoring/alarm_examples.rb +31 -0
  143. data/lib/fog/rackspace/models/monitoring/alarms.rb +40 -0
  144. data/lib/fog/rackspace/models/monitoring/base.rb +36 -0
  145. data/lib/fog/rackspace/models/monitoring/check.rb +75 -0
  146. data/lib/fog/rackspace/models/monitoring/check_type.rb +15 -0
  147. data/lib/fog/rackspace/models/monitoring/check_types.rb +23 -0
  148. data/lib/fog/rackspace/models/monitoring/checks.rb +40 -0
  149. data/lib/fog/rackspace/models/monitoring/data_point.rb +18 -0
  150. data/lib/fog/rackspace/models/monitoring/data_points.rb +49 -0
  151. data/lib/fog/rackspace/models/monitoring/entities.rb +48 -0
  152. data/lib/fog/rackspace/models/monitoring/entity.rb +64 -0
  153. data/lib/fog/rackspace/models/monitoring/metric.rb +25 -0
  154. data/lib/fog/rackspace/models/monitoring/metrics.rb +27 -0
  155. data/lib/fog/rackspace/monitoring.rb +149 -0
  156. data/lib/fog/rackspace/requests/compute_v2/create_keypair.rb +53 -0
  157. data/lib/fog/rackspace/requests/compute_v2/create_server.rb +10 -8
  158. data/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb +36 -0
  159. data/lib/fog/rackspace/requests/compute_v2/get_keypair.rb +41 -0
  160. data/lib/fog/rackspace/requests/compute_v2/list_keypairs.rb +37 -0
  161. data/lib/fog/rackspace/requests/monitoring/create_agent_token.rb +19 -0
  162. data/lib/fog/rackspace/requests/monitoring/create_alarm.rb +19 -0
  163. data/lib/fog/rackspace/requests/monitoring/create_check.rb +19 -0
  164. data/lib/fog/rackspace/requests/monitoring/create_entity.rb +19 -0
  165. data/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb +17 -0
  166. data/lib/fog/rackspace/requests/monitoring/delete_alarm.rb +18 -0
  167. data/lib/fog/rackspace/requests/monitoring/delete_check.rb +17 -0
  168. data/lib/fog/rackspace/requests/monitoring/delete_entity.rb +17 -0
  169. data/lib/fog/rackspace/requests/monitoring/evaluate_alarm_example.rb +21 -0
  170. data/lib/fog/rackspace/requests/monitoring/get_agent_token.rb +19 -0
  171. data/lib/fog/rackspace/requests/monitoring/get_alarm.rb +19 -0
  172. data/lib/fog/rackspace/requests/monitoring/get_alarm_example.rb +19 -0
  173. data/lib/fog/rackspace/requests/monitoring/get_check.rb +19 -0
  174. data/lib/fog/rackspace/requests/monitoring/get_entity.rb +19 -0
  175. data/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb +19 -0
  176. data/lib/fog/rackspace/requests/monitoring/list_alarm_examples.rb +18 -0
  177. data/lib/fog/rackspace/requests/monitoring/list_alarms.rb +18 -0
  178. data/lib/fog/rackspace/requests/monitoring/list_check_types.rb +17 -0
  179. data/lib/fog/rackspace/requests/monitoring/list_checks.rb +18 -0
  180. data/lib/fog/rackspace/requests/monitoring/list_data_points.rb +18 -0
  181. data/lib/fog/rackspace/requests/monitoring/list_entities.rb +19 -0
  182. data/lib/fog/rackspace/requests/monitoring/list_metrics.rb +18 -0
  183. data/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb +18 -0
  184. data/lib/fog/rackspace/requests/monitoring/list_overview.rb +19 -0
  185. data/lib/fog/rackspace/requests/monitoring/update_alarm.rb +18 -0
  186. data/lib/fog/rackspace/requests/monitoring/update_check.rb +18 -0
  187. data/lib/fog/rackspace/requests/monitoring/update_entity.rb +18 -0
  188. data/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb +75 -0
  189. data/lib/fog/rackspace/requests/storage/delete_static_large_object.rb +50 -0
  190. data/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb +44 -0
  191. data/lib/fog/rackspace/requests/storage/put_object.rb +1 -1
  192. data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +3 -30
  193. data/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb +60 -0
  194. data/lib/fog/rackspace/storage.rb +24 -16
  195. data/lib/fog/riakcs/provisioning.rb +2 -1
  196. data/lib/fog/riakcs/usage.rb +2 -1
  197. data/lib/fog/vcloud/compute.rb +1 -1
  198. data/lib/fog/vcloud/requests/compute/configure_vm.rb +2 -2
  199. data/lib/fog/version.rb +1 -1
  200. data/lib/fog/vsphere/compute.rb +131 -0
  201. data/lib/fog/vsphere/models/compute/server.rb +5 -1
  202. data/lib/fog/vsphere/requests/compute/get_datacenter.rb +3 -1
  203. data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +20 -38
  204. data/lib/fog/vsphere/requests/compute/list_datacenters.rb +1 -0
  205. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +8 -114
  206. data/lib/fog/vsphere/requests/compute/vm_clone.rb +18 -9
  207. data/lib/fog/vsphere/requests/compute/vm_power_off.rb +2 -0
  208. data/lib/fog/xenserver/compute.rb +14 -12
  209. data/lib/fog/xenserver/models/compute/console.rb +27 -0
  210. data/lib/fog/xenserver/models/compute/consoles.rb +25 -0
  211. data/lib/fog/xenserver/models/compute/server.rb +6 -2
  212. data/lib/fog/xenserver/models/compute/servers.rb +5 -0
  213. data/lib/fog/xenserver/requests/compute/create_server.rb +4 -0
  214. data/lib/fog/xml/sax_parser_connection.rb +3 -0
  215. data/lib/tasks/changelog_task.rb +2 -0
  216. data/tests/aws/models/compute/volume_tests.rb +1 -1
  217. data/tests/aws/models/elb/model_tests.rb +28 -1
  218. data/tests/aws/models/rds/instance_option_tests.rb +14 -0
  219. data/tests/aws/parsers/elb/describe_load_balancers.rb +65 -0
  220. data/tests/aws/requests/elb/helper.rb +2 -1
  221. data/tests/aws/requests/elb/listener_tests.rb +1 -1
  222. data/tests/aws/requests/elb/load_balancer_tests.rb +5 -1
  223. data/tests/aws/requests/elb/policy_tests.rb +85 -6
  224. data/tests/aws/requests/iam/helper.rb +4 -1
  225. data/tests/aws/requests/iam/server_certificate_tests.rb +2 -2
  226. data/tests/aws/requests/rds/helper.rb +35 -0
  227. data/tests/aws/requests/rds/instance_option_tests.rb +21 -0
  228. data/tests/aws/requests/rds/log_file_tests.rb +19 -0
  229. data/tests/aws/requests/sts/assume_role_tests.rb +19 -0
  230. data/tests/core/mocking_tests.rb +15 -0
  231. data/tests/digitalocean/helper.rb +23 -16
  232. data/tests/digitalocean/models/compute/flavor_tests.rb +2 -2
  233. data/tests/digitalocean/models/compute/image_tests.rb +2 -2
  234. data/tests/digitalocean/models/compute/region_tests.rb +2 -2
  235. data/tests/digitalocean/models/compute/server_tests.rb +11 -3
  236. data/tests/digitalocean/models/compute/servers_tests.rb +14 -28
  237. data/tests/digitalocean/models/compute/ssh_key_tests.rb +7 -3
  238. data/tests/digitalocean/models/compute/ssh_keys_tests.rb +5 -1
  239. data/tests/digitalocean/requests/compute/create_server_tests.rb +3 -6
  240. data/tests/digitalocean/requests/compute/destroy_server_tests.rb +1 -2
  241. data/tests/digitalocean/requests/compute/get_server_details_tests.rb +1 -1
  242. data/tests/digitalocean/requests/compute/get_ssh_key_tests.rb +4 -1
  243. data/tests/digitalocean/requests/compute/list_ssh_keys_tests.rb +5 -2
  244. data/tests/dnsimple/requests/dns/dns_tests.rb +30 -26
  245. data/tests/helper.rb +2 -2
  246. data/tests/helpers/collection_helper.rb +4 -4
  247. data/tests/helpers/mock_helper.rb +2 -0
  248. data/tests/openstack/requests/metering/meter_tests.rb +52 -0
  249. data/tests/openstack/requests/metering/resource_tests.rb +19 -0
  250. data/tests/openstack/requests/network/quota_tests.rb +65 -0
  251. data/tests/openstack/requests/storage/object_tests.rb +27 -2
  252. data/tests/rackspace/block_storage_tests.rb +2 -1
  253. data/tests/rackspace/cdn_tests.rb +9 -0
  254. data/tests/rackspace/compute_v2_tests.rb +16 -15
  255. data/tests/rackspace/databases_tests.rb +1 -1
  256. data/tests/rackspace/load_balancer_tests.rb +1 -1
  257. data/tests/rackspace/models/compute_v2/keypairs_tests.rb +47 -0
  258. data/tests/rackspace/models/identity/service_catalog_tests.rb +54 -29
  259. data/tests/rackspace/models/monitoring/agent_token_tests.rb +9 -0
  260. data/tests/rackspace/models/monitoring/agent_tokens_tests.rb +9 -0
  261. data/tests/rackspace/models/monitoring/alarm_example_tests.rb +18 -0
  262. data/tests/rackspace/models/monitoring/alarm_examples_tests.rb +19 -0
  263. data/tests/rackspace/models/monitoring/alarm_tests.rb +56 -0
  264. data/tests/rackspace/models/monitoring/alarms_tests.rb +25 -0
  265. data/tests/rackspace/models/monitoring/check_tests.rb +50 -0
  266. data/tests/rackspace/models/monitoring/check_types_tests.rb +14 -0
  267. data/tests/rackspace/models/monitoring/checks_tests.rb +16 -0
  268. data/tests/rackspace/models/monitoring/data_points_tests.rb +19 -0
  269. data/tests/rackspace/models/monitoring/entities_tests.rb +14 -0
  270. data/tests/rackspace/models/monitoring/entity_tests.rb +26 -0
  271. data/tests/rackspace/models/monitoring/metric_tests.rb +19 -0
  272. data/tests/rackspace/models/monitoring/metrics_tests.rb +17 -0
  273. data/tests/rackspace/monitoring_tests.rb +72 -0
  274. data/tests/rackspace/requests/compute_v2/keypair_tests.rb +55 -0
  275. data/tests/rackspace/requests/monitoring/agent_tests.rb +34 -0
  276. data/tests/rackspace/requests/monitoring/alarm_example_tests.rb +30 -0
  277. data/tests/rackspace/requests/monitoring/alarm_tests.rb +56 -0
  278. data/tests/rackspace/requests/monitoring/check_tests.rb +40 -0
  279. data/tests/rackspace/requests/monitoring/entity_tests.rb +37 -0
  280. data/tests/rackspace/requests/monitoring/helper.rb +78 -0
  281. data/tests/rackspace/requests/monitoring/list_tests.rb +60 -0
  282. data/tests/rackspace/requests/storage/large_object_tests.rb +303 -59
  283. data/tests/rackspace/requests/storage/object_tests.rb +73 -18
  284. data/tests/vsphere/models/compute/server_tests.rb +1 -1
  285. data/tests/vsphere/requests/compute/list_virtual_machines_tests.rb +2 -2
  286. data/tests/vsphere/requests/compute/vm_clone_tests.rb +14 -8
  287. data/tests/xenserver/compute_tests.rb +5 -5
  288. data/tests/xenserver/models/compute/console_test.rb +35 -0
  289. data/tests/xenserver/models/compute/consoles_test.rb +19 -0
  290. data/tests/xenserver/models/compute/server_tests.rb +25 -18
  291. data/tests/xenserver/models/compute/servers_tests.rb +1 -0
  292. metadata +177 -14
@@ -0,0 +1,19 @@
1
+ Shindo.tests('AWS::RDS | log file requests', %w[aws rds]) do
2
+ tests('success') do
3
+ pending if Fog.mocking?
4
+
5
+ suffix = rand(65536).to_s(16)
6
+ @db_instance_id = "fog-test-#{suffix}"
7
+
8
+ tests('#describe_db_log_files').formats(AWS::RDS::Formats::DESCRIBE_DB_LOG_FILES) do
9
+ result = Fog::AWS[:rds].describe_db_log_files(@db_instance_id).body['DescribeDBLogFilesResult']
10
+ returns(true) { result['DBLogFiles'].size > 0 }
11
+ result
12
+ end
13
+
14
+ end
15
+
16
+ tests('failures') do
17
+ raises(Fog::AWS::RDS::NotFound) {Fog::AWS[:rds].describe_db_log_files('doesntexist')}
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ Shindo.tests('AWS::STS | assume role', ['aws']) do
2
+
3
+ @policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
4
+
5
+ @response_format = {
6
+ 'SessionToken' => String,
7
+ 'SecretAccessKey' => String,
8
+ 'Expiration' => String,
9
+ 'AccessKeyId' => String,
10
+ 'Arn' => String,
11
+ 'RequestId' => String
12
+ }
13
+
14
+ tests("#assume_role('rolename', 'assumed_role_session', 'external_id', #{@policy.inspect}, 900)").formats(@response_format) do
15
+ pending if Fog.mocking?
16
+ Fog::AWS[:sts].assume_role("rolename","assumed_role_session","external_id", @policy, 900).body
17
+ end
18
+
19
+ end
@@ -52,6 +52,21 @@ Shindo.tests('Fog mocking', 'core') do
52
52
  end
53
53
  end
54
54
 
55
+ tests('Fog::Mock.random_ip') do
56
+ tests('Fog::Mock.random_ip').returns(true, "default to ipv4") do
57
+ IPAddr.new(Fog::Mock.random_ip).ipv4?
58
+ end
59
+ tests('Fog::Mock.random_ip').returns(true, "explicit ipv4") do
60
+ IPAddr.new(Fog::Mock.random_ip({:version => :v4})).ipv4?
61
+ end
62
+ tests('Fog::Mock.random_ip({:version => :v6})').returns(true, "changes to ipv6") do
63
+ IPAddr.new(Fog::Mock.random_ip({:version => :v6})).ipv6?
64
+ end
65
+ tests('Fog::Mock.random_ip({:version => :v5})').raises(ArgumentError) do
66
+ IPAddr.new(Fog::Mock.random_ip({:version => :v5})).ipv4?
67
+ end
68
+ end
69
+
55
70
  tests('Fog::Mock.not_implemented').raises(Fog::Errors::MockNotImplemented) do
56
71
  Fog::Mock.not_implemented
57
72
  end
@@ -4,36 +4,43 @@ def service
4
4
  Fog::Compute[:digitalocean]
5
5
  end
6
6
 
7
+ def fog_test_server_attributes
8
+ image = service.images.find { |i| i.name == 'Ubuntu 12.04 x64' }
9
+ region = service.regions.find { |r| r.name == 'New York 1' }
10
+ flavor = service.flavors.find { |r| r.name == '512MB' }
11
+
12
+ {
13
+ :image_id => image.id,
14
+ :region_id => region.id,
15
+ :flavor_id => flavor.id
16
+ }
17
+ end
18
+
19
+ def fog_server_name
20
+ "fog-server-test"
21
+ end
22
+
7
23
  # Create a long lived server for the tests
8
24
  def fog_test_server
9
- server = service.servers.find { |s| s.name == 'fog-test-server' }
25
+ server = service.servers.find { |s| s.name == fog_server_name }
10
26
  unless server
11
- image = service.images.find { |i| i.name == 'Ubuntu 12.04 x64 Server' }
12
- region = service.regions.find { |r| r.name == 'New York 1' }
13
- flavor = service.flavors.find { |r| r.name == '512MB' }
14
- server = service.servers.create :name => 'fog-test-server',
15
- :image_id => image.id,
16
- :region_id => region.id,
17
- :flavor_id => flavor.id
18
- # Wait for the server to come up
19
- begin
20
- server.wait_for(120) { server.reload rescue nil; server.ready? }
21
- rescue Fog::Errors::TimeoutError
22
- # Server bootstrap took more than 120 secs!
23
- end
27
+ server = service.servers.create({
28
+ :name => fog_server_name
29
+ }.merge(fog_test_server_attributes))
30
+ server.wait_for { ready? }
24
31
  end
25
32
  server
26
33
  end
27
34
 
28
35
  # Destroy the long lived server
29
36
  def fog_test_server_destroy
30
- server = service.servers.find { |s| s.name == 'fog-test-server' }
37
+ server = service.servers.find { |s| s.name == fog_server_name }
31
38
  server.destroy if server
32
39
  end
33
40
 
34
41
  at_exit do
35
42
  unless Fog.mocking? || Fog.credentials[:digitalocean_api_key].nil?
36
- server = service.servers.find { |s| s.name == 'fog-test-server' }
43
+ server = service.servers.find { |s| s.name == fog_server_name }
37
44
  if server
38
45
  server.wait_for(120) do
39
46
  reload rescue nil; ready?
@@ -2,14 +2,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | flavor model", ['digitalocean', 'com
2
2
 
3
3
  service = Fog::Compute[:digitalocean]
4
4
  flavor = service.flavors.first
5
-
5
+
6
6
  tests('The flavor model should') do
7
7
  tests('have the action') do
8
8
  test('reload') { flavor.respond_to? 'reload' }
9
9
  end
10
10
  tests('have attributes') do
11
11
  model_attribute_hash = flavor.attributes
12
- attributes = [
12
+ attributes = [
13
13
  :id,
14
14
  :name,
15
15
  ]
@@ -2,14 +2,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | image model", ['digitalocean', 'comp
2
2
 
3
3
  service = Fog::Compute[:digitalocean]
4
4
  image = service.images.first
5
-
5
+
6
6
  tests('The image model should') do
7
7
  tests('have the action') do
8
8
  test('reload') { image.respond_to? 'reload' }
9
9
  end
10
10
  tests('have attributes') do
11
11
  model_attribute_hash = image.attributes
12
- attributes = [
12
+ attributes = [
13
13
  :id,
14
14
  :name,
15
15
  :distribution
@@ -2,14 +2,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | region model", ['digitalocean', 'com
2
2
 
3
3
  service = Fog::Compute[:digitalocean]
4
4
  region = service.regions.first
5
-
5
+
6
6
  tests('The region model should') do
7
7
  tests('have the action') do
8
8
  test('reload') { region.respond_to? 'reload' }
9
9
  end
10
10
  tests('have attributes') do
11
11
  model_attribute_hash = region.attributes
12
- attributes = [
12
+ attributes = [
13
13
  :id,
14
14
  :name,
15
15
  ]
@@ -16,6 +16,7 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
16
16
  test(action) { server.respond_to? action }
17
17
  end
18
18
  end
19
+
19
20
  tests('have attributes') do
20
21
  model_attribute_hash = server.attributes
21
22
  attributes = [
@@ -23,10 +24,11 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
23
24
  :name,
24
25
  :state,
25
26
  :backups_active,
26
- :ip_address,
27
+ :public_ip_address,
27
28
  :flavor_id,
28
29
  :region_id,
29
- :image_id
30
+ :image_id,
31
+ :ssh_keys=
30
32
  ]
31
33
  tests("The server model should respond to") do
32
34
  attributes.each do |attribute|
@@ -34,12 +36,14 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
34
36
  end
35
37
  end
36
38
  end
39
+
37
40
  test('#reboot') do
38
41
  pending if Fog.mocking?
39
42
  server.reboot
40
43
  server.wait_for { server.state == 'off' }
41
44
  server.state == 'off'
42
45
  end
46
+
43
47
  test('#power_cycle') do
44
48
  pending if Fog.mocking?
45
49
  server.wait_for { server.ready? }
@@ -47,16 +51,19 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
47
51
  server.wait_for { server.state == 'off' }
48
52
  server.state == 'off'
49
53
  end
54
+
50
55
  test('#stop') do
51
56
  server.stop
52
57
  server.wait_for { server.state == 'off' }
53
58
  server.state == 'off'
54
59
  end
60
+
55
61
  test('#start') do
56
62
  server.start
57
63
  server.wait_for { ready? }
58
64
  server.ready?
59
65
  end
66
+
60
67
  # DigitalOcean shutdown is unreliable
61
68
  # so disable it in real mode for now
62
69
  test('#shutdown') do
@@ -67,6 +74,7 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
67
74
  server.wait_for { server.state == 'off' }
68
75
  server.state == 'off'
69
76
  end
77
+
70
78
  test('#update') do
71
79
  begin
72
80
  server.update
@@ -74,11 +82,11 @@ Shindo.tests("Fog::Compute[:digitalocean] | server model", ['digitalocean', 'com
74
82
  true
75
83
  end
76
84
  end
77
-
78
85
  end
79
86
 
80
87
  # restore server state
81
88
  server.start
89
+ server.wait_for { ready? }
82
90
 
83
91
  end
84
92
 
@@ -1,35 +1,21 @@
1
1
  Shindo.tests('Fog::Compute[:digitalocean] | servers collection', ['digitalocean']) do
2
+ service = Fog::Compute[:digitalocean]
2
3
 
3
- service = Fog::Compute[:digitalocean]
4
+ options = {
5
+ :name => "#{fog_server_name}-#{Time.now.to_i.to_s}"
6
+ }.merge fog_test_server_attributes
4
7
 
5
- tests('The servers collection') do
6
- servers = service.servers.all
7
-
8
- server = fog_test_server
9
-
10
- test('should NOT be empty') do
11
- servers.reload
12
- !servers.empty?
13
- end
14
-
15
- test('should be a kind of Fog::Compute::DigitalOcean::Servers') do
16
- servers.kind_of? Fog::Compute::DigitalOcean::Servers
17
- end
18
-
19
- tests('should have Fog::Compute::DigitalOcean::Servers inside') do
20
- servers.each do |s|
21
- test { s.kind_of? Fog::Compute::DigitalOcean::Server }
22
- end
23
- end
24
-
25
- tests('should be able to reload itself').succeeds { servers.reload }
26
-
27
- tests('should be able to get a model') do
28
- test('by instance id') do
29
- servers.get(server.id).kind_of? Fog::Compute::DigitalOcean::Server
30
- end
31
- end
8
+ collection_tests(service.servers, options, true) do
9
+ @instance.wait_for { ready? }
10
+ end
32
11
 
12
+ tests("#bootstrap").succeeds do
13
+ pending if Fog.mocking?
14
+ @server = service.servers.bootstrap({
15
+ :public_key_path => File.join(File.dirname(__FILE__), '../../fixtures/id_rsa.pub'),
16
+ :private_key_path => File.join(File.dirname(__FILE__), '../../fixtures/id_rsa')
17
+ }.merge(options))
33
18
  end
34
19
 
20
+ @server.destroy if @server
35
21
  end
@@ -3,33 +3,37 @@ Shindo.tests("Fog::Compute[:digitalocean] | ssh_key model", ['digitalocean', 'co
3
3
  service = Fog::Compute[:digitalocean]
4
4
 
5
5
  tests('The ssh_key model should') do
6
-
6
+
7
7
  test('#save') do
8
8
  @key = service.ssh_keys.create :name => 'fookey',
9
9
  :ssh_pub_key => 'fookey'
10
10
  @key.is_a? Fog::Compute::DigitalOcean::SshKey
11
11
  end
12
+
12
13
  tests('have the action') do
13
14
  test('reload') { @key.respond_to? 'reload' }
14
- %w{
15
+ %w{
15
16
  save
16
17
  destroy
17
18
  }.each do |action|
18
19
  test(action) { @key.respond_to? action }
19
20
  end
20
21
  end
22
+
21
23
  tests('have attributes') do
22
- attributes = [
24
+ attributes = [
23
25
  :id,
24
26
  :name,
25
27
  :ssh_pub_key
26
28
  ]
29
+
27
30
  tests("The key model should respond to") do
28
31
  attributes.each do |attribute|
29
32
  test("#{attribute}") { @key.respond_to? attribute }
30
33
  end
31
34
  end
32
35
  end
36
+
33
37
  test('#destroy') do
34
38
  @key.destroy
35
39
  end
@@ -19,10 +19,14 @@ Shindo.tests('Fog::Compute[:digitalocean] | ssh_keys collection', ['digitalocean
19
19
 
20
20
  tests('should be able to get a model') do
21
21
  test('by instance id') do
22
- service.ssh_keys.get(key.id).kind_of? Fog::Compute::DigitalOcean::SshKey
22
+ retrieved_key = service.ssh_keys.get(key.id)
23
+ test { retrieved_key.kind_of? Fog::Compute::DigitalOcean::SshKey }
24
+ test { retrieved_key.name == key.name }
23
25
  end
24
26
  end
25
27
 
28
+ key.destroy
29
+
26
30
  end
27
31
 
28
32
  end
@@ -5,7 +5,7 @@ Shindo.tests('Fog::Compute[:digitalocean] | create_server request', ['digitaloce
5
5
  'name' => String,
6
6
  'image_id' => Integer,
7
7
  'size_id' => Integer,
8
- 'event_id' => Integer
8
+ 'event_id' => Integer
9
9
  }
10
10
 
11
11
  service = Fog::Compute[:digitalocean]
@@ -13,16 +13,13 @@ Shindo.tests('Fog::Compute[:digitalocean] | create_server request', ['digitaloce
13
13
  tests('success') do
14
14
 
15
15
  tests('#create_server').formats({'status' => 'OK', 'droplet' => @server_format}) do
16
- image = service.images.find { |img| img.name == 'Ubuntu 12.04 x64 Server' }
16
+ image = service.images.find { |img| img.name == 'Ubuntu 12.04 x64' }
17
17
  flavor = service.flavors.find { |f| f.name == '512MB' }
18
- data = Fog::Compute[:digitalocean].create_server 'fog-test-server',
18
+ data = Fog::Compute[:digitalocean].create_server fog_server_name,
19
19
  flavor.id,
20
20
  image.id,
21
21
  service.regions.first.id
22
22
  data.body
23
23
  end
24
-
25
24
  end
26
-
27
-
28
25
  end
@@ -7,9 +7,8 @@ Shindo.tests('Fog::Compute[:digitalocean] | destroy_server request', ['digitaloc
7
7
 
8
8
  test('#destroy_server') do
9
9
  service.destroy_server(server.id).body['status'] == 'OK'
10
+ service.servers.get(server.id) == nil
10
11
  end
11
12
 
12
13
  end
13
-
14
-
15
14
  end
@@ -5,7 +5,7 @@ Shindo.tests('Fog::Compute[:digitalocean] | get_server_details request', ['digit
5
5
  test('#get_server_details') do
6
6
  server = fog_test_server
7
7
  body = Fog::Compute[:digitalocean].get_server_details(server.id).body
8
- body['droplet']['name'] == 'fog-test-server'
8
+ body['droplet']['name'] == fog_server_name
9
9
  end
10
10
 
11
11
  end
@@ -5,16 +5,19 @@ Shindo.tests('Fog::Compute[:digitalocean] | get_ssh_keys request', ['digitalocea
5
5
  'name' => String,
6
6
  'ssh_pub_key' => String,
7
7
  }
8
-
8
+
9
9
  service = Fog::Compute[:digitalocean]
10
10
 
11
11
  tests('success') do
12
12
 
13
13
  tests('#get_ssh_key') do
14
14
  key = service.create_ssh_key 'fookey', 'ssh-dss FOO'
15
+
15
16
  tests('format').data_matches_schema(@ssh_key_format) do
16
17
  service.get_ssh_key(key.body['ssh_key']['id']).body['ssh_key']
17
18
  end
19
+
20
+ service.destroy_ssh_key(key.body['ssh_key']['id'])
18
21
  end
19
22
 
20
23
  end
@@ -7,15 +7,18 @@ Shindo.tests('Fog::Compute[:digitalocean] | list_ssh_keys request', ['digitaloce
7
7
 
8
8
  tests('success') do
9
9
 
10
+ ssh_key = service.create_ssh_key 'fookey', 'ssh-dss FOO'
11
+
10
12
  tests('#list_ssh_keys') do
11
- Fog::Compute[:digitalocean].create_ssh_key 'fookey', 'ssh-dss FOO'
12
- Fog::Compute[:digitalocean].list_ssh_keys.body['ssh_keys'].each do |key|
13
+ service.list_ssh_keys.body['ssh_keys'].each do |key|
13
14
  tests('format').data_matches_schema(@ssh_key_format) do
14
15
  key
15
16
  end
16
17
  end
17
18
  end
18
19
 
20
+ service.destroy_ssh_key(ssh_key.body['ssh_key']['id'])
21
+
19
22
  end
20
23
 
21
24
  end