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
@@ -7,6 +7,10 @@ module Fog
7
7
  @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.get_by_name_label' }, label)
8
8
  end
9
9
 
10
+ def get_vm_by_uuid(uuid)
11
+ @connection.request({:parser => Fog::Parsers::XenServer::Base.new, :method => 'VM.get_by_uuid' }, uuid)
12
+ end
13
+
10
14
  def create_server_raw(config = {})
11
15
  config[:name_label] = config[:name] if config[:name]
12
16
  config.delete :name
@@ -26,12 +26,15 @@ module Fog
26
26
 
27
27
  # Prepare the SAX parser
28
28
  data_stream = Nokogiri::XML::SAX::PushParser.new(parser)
29
+ response_string = ""
29
30
  params[:response_block] = lambda do |chunk, remaining, total|
31
+ response_string << chunk if ENV['DEBUG_RESPONSE']
30
32
  data_stream << chunk
31
33
  end
32
34
 
33
35
  # Make request which read chunks into parser
34
36
  response = @excon.request(params)
37
+ Fog::Logger.debug "\n#{response_string}" if ENV['DEBUG_RESPONSE']
35
38
 
36
39
  # Cease parsing and override response.body with parsed data
37
40
  data_stream.finish
@@ -58,8 +58,10 @@ module Fog
58
58
  'Christopher Oliver',
59
59
  'Decklin Foster',
60
60
  'Dylan Egan',
61
+ 'Erik Michaels-Ober',
61
62
  'geemus',
62
63
  'Henry Addison',
64
+ 'James Bence',
63
65
  'Kevin Menard',
64
66
  'Kyle Rames',
65
67
  'Lincoln Stoll',
@@ -14,7 +14,7 @@ Shindo.tests("Fog::Compute[:aws] | volume", ['aws']) do
14
14
  @instance.wait_for { state == 'in-use' }
15
15
 
16
16
  tests('#server').succeeds do
17
- @instance.server
17
+ @instance.server.id == @server.id
18
18
  end
19
19
 
20
20
  tests('#server = nil').succeeds do
@@ -83,7 +83,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
83
83
 
84
84
  # Need to sleep here for IAM changes to propgate
85
85
  tests('with ListenerDescriptions') do
86
- @certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT_PUBLIC_KEY, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
86
+ @certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
87
87
  sleep(10) unless Fog.mocking?
88
88
  listeners = [{
89
89
  'Listener' => {
@@ -250,6 +250,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
250
250
  tests('create app policy') do
251
251
  elb.policies.create(:id => app_policy_id, :cookie => 'my-app-cookie', :cookie_stickiness => :app)
252
252
  returns(app_policy_id) { elb.policies.first.id }
253
+ returns("my-app-cookie") { elb.policies.get(app_policy_id).cookie }
253
254
  end
254
255
 
255
256
  tests('get policy') do
@@ -270,6 +271,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
270
271
  tests('setting a listener policy') do
271
272
  elb.set_listener_policy(80, lb_policy_id)
272
273
  returns([lb_policy_id]) { elb.listeners.get(80).policy_names }
274
+ returns(600) { elb.policies.get(lb_policy_id).expiration }
273
275
  end
274
276
 
275
277
  tests('unsetting a listener policy') do
@@ -277,11 +279,36 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
277
279
  returns([]) { elb.listeners.get(80).policy_names }
278
280
  end
279
281
 
282
+ public_key_policy_id = 'fog-public-key-policy'
283
+ tests('create public key policy') do
284
+ elb.policies.create(:id => public_key_policy_id, :type_name => 'PublicKeyPolicyType', :policy_attributes => {'PublicKey' => AWS::IAM::SERVER_CERT_PUBLIC_KEY})
285
+ policy = elb.policies.get(public_key_policy_id)
286
+
287
+ returns(public_key_policy_id) { policy.id }
288
+ returns("PublicKeyPolicyType") { policy.type_name }
289
+ returns(AWS::IAM::SERVER_CERT_PUBLIC_KEY) { policy.policy_attributes["PublicKey"] }
290
+ end
291
+
280
292
  tests('a malformed policy') do
281
293
  raises(ArgumentError) { elb.policies.create(:id => 'foo', :cookie_stickiness => 'invalid stickiness') }
282
294
  end
283
295
  end
284
296
 
297
+ tests('backend server descriptions') do
298
+ tests('default') do
299
+ returns(0) { elb.backend_server_descriptions.size }
300
+ end
301
+
302
+ tests('with a backend policy') do
303
+ policy = "EnableProxyProtocol"
304
+ port = 80
305
+ elb.policies.create(:id => policy, :type_name => 'ProxyProtocolPolicyType', :policy_attributes => { "ProxyProtocol" => true })
306
+ Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(elb.id, port, [policy]).body
307
+ elb.reload
308
+ returns([policy]) { elb.backend_server_descriptions.get(port).policy_names }
309
+ end
310
+ end
311
+
285
312
  tests('setting a new ssl certificate id') do
286
313
  elb.listeners.create(:instance_port => 443, :lb_port => 443, :protocol => 'HTTPS', :instance_protocol => 'HTTPS', :ssl_id => @certificate['Arn'])
287
314
  elb.set_listener_ssl_certificate(443, @certificate['Arn'])
@@ -0,0 +1,14 @@
1
+ Shindo.tests("AWS::RDS | db instance options", ['aws', 'rds']) do
2
+
3
+ params = {:engine => 'mysql'}
4
+
5
+ pending if Fog.mocking?
6
+
7
+ tests('#options') do
8
+ tests 'contains options' do
9
+ @instance = Fog::AWS[:rds].instance_options.new(params)
10
+ returns(true) { @instance.engine == 'mysql' }
11
+ end
12
+ end
13
+
14
+ end
@@ -0,0 +1,65 @@
1
+ require 'fog/xml'
2
+ require 'fog/aws/parsers/elb/describe_load_balancers'
3
+
4
+ DESCRIBE_LOAD_BALANCERS_RESULT = <<-EOF
5
+ <DescribeLoadBalancersResponse
6
+ xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
7
+ <DescribeLoadBalancersResult>
8
+ <LoadBalancerDescriptions>
9
+ <member>
10
+ <SecurityGroups/>
11
+ <CreatedTime>2013-08-01T15:47:20.930Z</CreatedTime>
12
+ <LoadBalancerName>fog-test-elb</LoadBalancerName>
13
+ <HealthCheck>
14
+ <Interval>30</Interval>
15
+ <Target>TCP:80</Target>
16
+ <HealthyThreshold>10</HealthyThreshold>
17
+ <Timeout>5</Timeout>
18
+ <UnhealthyThreshold>2</UnhealthyThreshold>
19
+ </HealthCheck>
20
+ <ListenerDescriptions>
21
+ <member>
22
+ <PolicyNames/>
23
+ <Listener>
24
+ <Protocol>HTTP</Protocol>
25
+ <LoadBalancerPort>80</LoadBalancerPort>
26
+ <InstanceProtocol>HTTP</InstanceProtocol>
27
+ <InstancePort>80</InstancePort>
28
+ </Listener>
29
+ </member>
30
+ </ListenerDescriptions>
31
+ <Instances/>
32
+ <Policies>
33
+ <AppCookieStickinessPolicies/>
34
+ <OtherPolicies/>
35
+ <LBCookieStickinessPolicies/>
36
+ </Policies>
37
+ <AvailabilityZones>
38
+ <member>us-east-1a</member>
39
+ </AvailabilityZones>
40
+ <CanonicalHostedZoneName>fog-test-elb-1965660309.us-east-1.elb.amazonaws.com</CanonicalHostedZoneName>
41
+ <CanonicalHostedZoneNameID>Z3DZXE0Q79N41H</CanonicalHostedZoneNameID>
42
+ <Scheme>internet-facing</Scheme>
43
+ <SourceSecurityGroup>
44
+ <OwnerAlias>amazon-elb</OwnerAlias>
45
+ <GroupName>amazon-elb-sg</GroupName>
46
+ </SourceSecurityGroup>
47
+ <DNSName>fog-test-elb-1965660309.us-east-1.elb.amazonaws.com</DNSName>
48
+ <BackendServerDescriptions/>
49
+ <Subnets/>
50
+ </member>
51
+ </LoadBalancerDescriptions>
52
+ </DescribeLoadBalancersResult>
53
+ <ResponseMetadata>
54
+ <RequestId>a6ea2117-fac1-11e2-abd3-1740ab4ef14e</RequestId>
55
+ </ResponseMetadata>
56
+ </DescribeLoadBalancersResponse>
57
+ EOF
58
+
59
+ Shindo.tests('AWS::ELB | parsers | describe_load_balancers', ['aws', 'elb', 'parser']) do
60
+ tests('parses the xml').formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCERS) do
61
+ parser = Nokogiri::XML::SAX::Parser.new(Fog::Parsers::AWS::ELB::DescribeLoadBalancers.new)
62
+ parser.parse(DESCRIBE_LOAD_BALANCERS_RESULT)
63
+ parser.document.response
64
+ end
65
+ end
@@ -8,6 +8,7 @@ class AWS
8
8
 
9
9
  LOAD_BALANCER = {
10
10
  "AvailabilityZones" => Array,
11
+ "BackendServerDescriptions" => Array,
11
12
  "CanonicalHostedZoneName" => String,
12
13
  "CanonicalHostedZoneNameID" => String,
13
14
  "CreatedTime" => Time,
@@ -25,7 +26,7 @@ class AWS
25
26
  }
26
27
  }],
27
28
  "LoadBalancerName" => String,
28
- "Policies" => {"LBCookieStickinessPolicies" => Array, "AppCookieStickinessPolicies" => Array},
29
+ "Policies" => {"LBCookieStickinessPolicies" => Array, "AppCookieStickinessPolicies" => Array, "OtherPolicies" => Array},
29
30
  "Scheme" => String,
30
31
  "SecurityGroups" => [Fog::Nullable::String],
31
32
  "SourceSecurityGroup" => {"GroupName" => String, "OwnerAlias" => String},
@@ -4,7 +4,7 @@ Shindo.tests('AWS::ELB | listener_tests', ['aws', 'elb']) do
4
4
 
5
5
  tests('success') do
6
6
  Fog::AWS[:elb].create_load_balancer(['us-east-1a'], @load_balancer_id, [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'HTTP'}])
7
- @certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT_PUBLIC_KEY, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
7
+ @certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
8
8
 
9
9
  tests("#create_load_balancer_listeners").formats(AWS::ELB::Formats::BASIC) do
10
10
  listeners = [
@@ -3,7 +3,11 @@ Shindo.tests('AWS::ELB | load_balancer_tests', ['aws', 'elb']) do
3
3
  @key_name = 'fog-test'
4
4
 
5
5
  tests('success') do
6
- @certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT_PUBLIC_KEY, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
6
+ if (Fog::AWS[:iam].get_server_certificate(@key_name) rescue nil)
7
+ Fog::AWS[:iam].delete_server_certificate(@key_name)
8
+ end
9
+
10
+ @certificate = Fog::AWS[:iam].upload_server_certificate(AWS::IAM::SERVER_CERT, AWS::IAM::SERVER_CERT_PRIVATE_KEY, @key_name).body['Certificate']
7
11
 
8
12
  tests("#create_load_balancer").formats(AWS::ELB::Formats::CREATE_LOAD_BALANCER) do
9
13
  zones = ['us-east-1a']
@@ -5,6 +5,10 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
5
5
  listeners = [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'HTTP'}]
6
6
  Fog::AWS[:elb].create_load_balancer(['us-east-1a'], @load_balancer_id, listeners)
7
7
 
8
+ tests("#describe_load_balancer_policy_types").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICY_TYPES) do
9
+ @policy_types = Fog::AWS[:elb].describe_load_balancer_policy_types.body
10
+ end
11
+
8
12
  tests("#create_app_cookie_stickiness_policy").formats(AWS::ELB::Formats::BASIC) do
9
13
  cookie, policy = 'fog-app-cookie', 'fog-app-policy'
10
14
  Fog::AWS[:elb].create_app_cookie_stickiness_policy(@load_balancer_id, policy, cookie).body
@@ -21,17 +25,78 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
21
25
  Fog::AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy).body
22
26
  end
23
27
 
24
- tests("#describe_load_balancer_policy_types").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICY_TYPES) do
25
- @policy_types = Fog::AWS[:elb].describe_load_balancer_policy_types.body
26
- end
27
-
28
28
  tests("#create_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
29
29
  policy = 'fog-policy'
30
30
  Fog::AWS[:elb].create_load_balancer_policy(@load_balancer_id, policy, 'PublicKeyPolicyType', {'PublicKey' => AWS::IAM::SERVER_CERT_PUBLIC_KEY}).body
31
31
  end
32
32
 
33
- tests("#describe_load_balancer_policies").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICIES) do
34
- Fog::AWS[:elb].describe_load_balancer_policies(@load_balancer_id).body
33
+ tests("#describe_load_balancer_policies") do
34
+ body = Fog::AWS[:elb].describe_load_balancer_policies(@load_balancer_id).body
35
+ formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICIES) { body }
36
+
37
+ # Check the result of each policy by name
38
+ returns({
39
+ "PolicyAttributeDescriptions"=>[{
40
+ "AttributeName"=>"CookieName",
41
+ "AttributeValue"=>"fog-app-cookie"
42
+ }],
43
+ "PolicyName"=>"fog-app-policy",
44
+ "PolicyTypeName"=>"AppCookieStickinessPolicyType"
45
+ }) do
46
+ body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-app-policy' }
47
+ end
48
+
49
+ returns({
50
+ "PolicyAttributeDescriptions"=>[{
51
+ "AttributeName"=>"CookieExpirationPeriod",
52
+ "AttributeValue"=>"300"
53
+ }],
54
+ "PolicyName"=>"fog-lb-expiry",
55
+ "PolicyTypeName"=>"LBCookieStickinessPolicyType"
56
+ }) do
57
+ body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-lb-expiry' }
58
+ end
59
+
60
+ returns({
61
+ "PolicyAttributeDescriptions"=>[{
62
+ "AttributeName"=>"CookieExpirationPeriod",
63
+ "AttributeValue"=>"0"
64
+ }],
65
+ "PolicyName"=>"fog-lb-no-expiry",
66
+ "PolicyTypeName"=>"LBCookieStickinessPolicyType"
67
+ }) do
68
+ body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-lb-no-expiry' }
69
+ end
70
+
71
+ returns({
72
+ "PolicyAttributeDescriptions"=>[{
73
+ "AttributeName"=>"PublicKey",
74
+ "AttributeValue"=> AWS::IAM::SERVER_CERT_PUBLIC_KEY
75
+ }],
76
+ "PolicyName"=>"fog-policy",
77
+ "PolicyTypeName"=>"PublicKeyPolicyType"
78
+ }) do
79
+ body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].detect{|e| e['PolicyName'] == 'fog-policy' }
80
+ end
81
+ end
82
+
83
+ tests("#describe_load_balancer includes all policies") do
84
+ lb = Fog::AWS[:elb].describe_load_balancers("LoadBalancerNames" => [@load_balancer_id]).body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"].first
85
+ returns([
86
+ {"PolicyName"=>"fog-app-policy", "CookieName"=>"fog-app-cookie"}
87
+ ]) { lb["Policies"]["AppCookieStickinessPolicies"] }
88
+
89
+ returns([
90
+ {"PolicyName"=>"fog-lb-expiry", "CookieExpirationPeriod"=> 300}
91
+ ]) { lb["Policies"]["LBCookieStickinessPolicies"].select{|e| e["PolicyName"] == "fog-lb-expiry"} }
92
+
93
+ returns([
94
+ {"PolicyName" => "fog-lb-no-expiry"}
95
+ ]) { lb["Policies"]["LBCookieStickinessPolicies"].select{|e| e["PolicyName"] == "fog-lb-no-expiry"} }
96
+
97
+ returns([
98
+ "fog-policy"
99
+ ]) { lb["Policies"]["OtherPolicies"] }
35
100
  end
36
101
 
37
102
  tests("#delete_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
@@ -49,6 +114,20 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
49
114
  Fog::AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, []).body
50
115
  end
51
116
 
117
+ proxy_policy = "EnableProxyProtocol"
118
+ Fog::AWS[:elb].create_load_balancer_policy(@load_balancer_id, proxy_policy, 'ProxyProtocolPolicyType', { "ProxyProtocol" => true })
119
+
120
+ tests("#set_load_balancer_policies_for_backend_server replaces policies on port").formats(AWS::ELB::Formats::BASIC) do
121
+ Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(@load_balancer_id, 80, [proxy_policy]).body
122
+ end
123
+
124
+ tests("#describe_load_balancers has other policies") do
125
+ Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(@load_balancer_id, 80, [proxy_policy]).body
126
+ description = Fog::AWS[:elb].describe_load_balancers("LoadBalancerNames" => [@load_balancer_id]).body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"].first
127
+ returns(true) { description["Policies"]["OtherPolicies"].include?(proxy_policy) }
128
+ end
129
+
52
130
  Fog::AWS[:elb].delete_load_balancer(@load_balancer_id)
53
131
  end
54
132
  end
133
+
@@ -4,7 +4,7 @@ class AWS
4
4
  # A self-signed test keypair. Generated using the command:
5
5
  # openssl req -new -newkey rsa:1024 -days 3650 -nodes -x509 -keyout server-private.key -out server-public.crt
6
6
  # NB: Amazon returns an error on extraneous linebreaks
7
- SERVER_CERT_PUBLIC_KEY = %{-----BEGIN CERTIFICATE-----
7
+ SERVER_CERT = %{-----BEGIN CERTIFICATE-----
8
8
  MIIDQzCCAqygAwIBAgIJAJaZ8wH+19AtMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV
9
9
  BAYTAlVTMREwDwYDVQQIEwhOZXcgWW9yazERMA8GA1UEBxMITmV3IFlvcmsxHzAd
10
10
  BgNVBAoTFkZvZyBUZXN0IFNuYWtlb2lsIENlcnQxHzAdBgNVBAsTFkZvZyBUZXN0
@@ -25,6 +25,9 @@ DF3qnnPyArLFx0HLB7wQdm9xYVIqQuLO+V6GRuOd+uSX//aDLDZhwbERf35hoyto
25
25
  Jfk4gX/qwuRFNy0vjQeTzdvhB1igG/w=
26
26
  -----END CERTIFICATE-----
27
27
  }
28
+ # The public key for SERVER_CERT. Generated using the command:
29
+ # openssl x509 -inform pem -in server-public.crt -pubkey -noout > server.pubkey
30
+ SERVER_CERT_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0CR76sovjdmpWRmEaf8XaG+nGe7czhpdLKkau2b16VtSjkPctxPL5U4vaMxQUboLPr+9oL+9fSYN31VzDD4hyaeGoeI5fhnGeqk71kq5uHONBOQUMbZbBQ8PVd9Sdk+y9JJ6E5fC+GhLL5I+y2DK7syBzyymq1Wi6rPp1XXF7AQIDAQAB"
28
31
 
29
32
  SERVER_CERT_PRIVATE_KEY = %{-----BEGIN RSA PRIVATE KEY-----
30
33
  MIICXAIBAAKBgQC0CR76sovjdmpWRmEaf8XaG+nGe7czhpdLKkau2b16VtSjkPct
@@ -25,7 +25,7 @@ Shindo.tests('AWS::IAM | server certificate requests', ['aws']) do
25
25
  }
26
26
 
27
27
  tests('#upload_server_certificate') do
28
- public_key = AWS::IAM::SERVER_CERT_PUBLIC_KEY
28
+ public_key = AWS::IAM::SERVER_CERT
29
29
  private_key = AWS::IAM::SERVER_CERT_PRIVATE_KEY
30
30
  private_key_pkcs8 = AWS::IAM::SERVER_CERT_PRIVATE_KEY_PKCS8
31
31
  private_key_mismatch = AWS::IAM::SERVER_CERT_PRIVATE_KEY_MISMATCHED
@@ -68,7 +68,7 @@ Shindo.tests('AWS::IAM | server certificate requests', ['aws']) do
68
68
  end
69
69
 
70
70
  tests('#update_server_certificate') do
71
- public_key = AWS::IAM::SERVER_CERT_PUBLIC_KEY
71
+ public_key = AWS::IAM::SERVER_CERT
72
72
  private_key = AWS::IAM::SERVER_CERT_PRIVATE_KEY
73
73
  key_name = "update-key"
74
74
 
@@ -8,6 +8,11 @@ class AWS
8
8
  'ResponseMetadata' => {'RequestId' => String}
9
9
  }
10
10
 
11
+ DB_AVAILABILITY_ZONE_OPTION = {
12
+ 'Name' => String,
13
+ 'ProvisionedIopsCapable' => Fog::Boolean
14
+ }
15
+
11
16
  DB_PARAMETER_GROUP = {
12
17
  'DBParameterGroupFamily' => String,
13
18
  'DBParameterGroupName'=> String,
@@ -79,6 +84,23 @@ class AWS
79
84
  }
80
85
  }
81
86
 
87
+ ORDERABLE_DB_INSTANCE_OPTION = {
88
+ 'MultiAZCapable' => Fog::Boolean,
89
+ 'Engine' => String,
90
+ 'LicenseModel' => String,
91
+ 'ReadReplicaCapable' => Fog::Boolean,
92
+ 'EngineVersion' => String,
93
+ 'AvailabilityZones' => [DB_AVAILABILITY_ZONE_OPTION],
94
+ 'DBInstanceClass' => String,
95
+ 'Vpc' => Fog::Boolean
96
+ }
97
+
98
+ DESCRIBE_ORDERABLE_DB_INSTANCE_OPTION = BASIC.merge({
99
+ 'DescribeOrderableDBInstanceOptionsResult' =>{
100
+ 'OrderableDBInstanceOptions' => [ORDERABLE_DB_INSTANCE_OPTION]
101
+ }
102
+ })
103
+
82
104
  MODIFY_PARAMETER_GROUP = BASIC.merge({
83
105
  'ModifyDBParameterGroupResult' => {
84
106
  'DBParameterGroupName' => String
@@ -105,6 +127,19 @@ class AWS
105
127
 
106
128
  })
107
129
 
130
+ DB_LOG_FILE = {
131
+ 'LastWritten' => Time,
132
+ 'Size' => Integer,
133
+ 'LogFileName' => String
134
+ }
135
+
136
+ DESCRIBE_DB_LOG_FILES = BASIC.merge({
137
+ 'DescribeDBLogFilesResult' => {
138
+ 'Marker' => Fog::Nullable::String,
139
+ 'DBLogFiles' => [DB_LOG_FILE]
140
+ }
141
+ })
142
+
108
143
  SNAPSHOT={
109
144
  'AllocatedStorage' => Integer,
110
145
  'AvailabilityZone' => String,
@@ -0,0 +1,21 @@
1
+ Shindo.tests('AWS::RDS | db instance option requests', ['aws', 'rds']) do
2
+ tests('success') do
3
+
4
+ tests("#describe_orderable_db_instance_options('mysql)").formats(AWS::RDS::Formats::DESCRIBE_ORDERABLE_DB_INSTANCE_OPTION) do
5
+
6
+ body = Fog::AWS[:rds].describe_orderable_db_instance_options('mysql').body
7
+
8
+ returns(2) {body['DescribeOrderableDBInstanceOptionsResult']['OrderableDBInstanceOptions'].length}
9
+
10
+ group = body['DescribeOrderableDBInstanceOptionsResult']['OrderableDBInstanceOptions'].first
11
+ returns( true ) { group['MultiAZCapable'] }
12
+ returns( 'mysql' ) { group['Engine'] }
13
+ returns( true ) { group['ReadReplicaCapable'] }
14
+ returns( true ) { group['AvailabilityZones'].length >= 1 }
15
+
16
+ body
17
+ end
18
+
19
+ end
20
+
21
+ end