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
@@ -20,13 +20,13 @@ module Fog
20
20
  def reset_alarm
21
21
  @alarm = {}
22
22
  end
23
-
23
+
24
24
  def start_element(name, attrs = [])
25
25
  super
26
26
  case name
27
27
  when 'Alarms'
28
- @in_alarms = true
29
- end
28
+ @in_alarms = true
29
+ end
30
30
  end
31
31
 
32
32
  def end_element(name)
@@ -36,7 +36,7 @@ module Fog
36
36
 
37
37
  when 'AdjustmentType', 'AutoScalingGroupName', 'PolicyARN', 'PolicyName'
38
38
  @scaling_policy[name] = value
39
- when 'Cooldown', 'ScalingAdjustment'
39
+ when 'Cooldown', 'MinAdjustmentStep', 'ScalingAdjustment'
40
40
  @scaling_policy[name] = value.to_i
41
41
 
42
42
  when 'NextToken'
@@ -47,7 +47,7 @@ module Fog
47
47
 
48
48
  when 'DescribePoliciesResponse'
49
49
  @response['DescribePoliciesResult'] = @results
50
-
50
+
51
51
  when 'Alarms'
52
52
  @in_alarms = false
53
53
  when 'member'
@@ -8,21 +8,26 @@ module Fog
8
8
  def reset
9
9
  reset_load_balancer
10
10
  reset_listener_description
11
- reset_policy
11
+ reset_stickiness_policy
12
+ reset_backend_server_description
12
13
  @results = { 'LoadBalancerDescriptions' => [] }
13
14
  @response = { 'DescribeLoadBalancersResult' => {}, 'ResponseMetadata' => {} }
14
15
  end
15
16
 
16
17
  def reset_load_balancer
17
- @load_balancer = { 'Subnets' => [], 'SecurityGroups' => [], 'ListenerDescriptions' => [], 'Instances' => [], 'AvailabilityZones' => [], 'Policies' => {'AppCookieStickinessPolicies' => [], 'LBCookieStickinessPolicies' => [] }, 'HealthCheck' => {}, 'SourceSecurityGroup' => {} }
18
+ @load_balancer = { 'Subnets' => [], 'SecurityGroups' => [], 'ListenerDescriptions' => [], 'Instances' => [], 'AvailabilityZones' => [], 'Policies' => {'AppCookieStickinessPolicies' => [], 'LBCookieStickinessPolicies' => [], 'OtherPolicies' => []}, 'HealthCheck' => {}, 'SourceSecurityGroup' => {}, 'BackendServerDescriptions' => [] }
18
19
  end
19
20
 
20
21
  def reset_listener_description
21
22
  @listener_description = { 'PolicyNames' => [], 'Listener' => {} }
22
23
  end
23
24
 
24
- def reset_policy
25
- @policy = {}
25
+ def reset_backend_server_description
26
+ @backend_server_description = {}
27
+ end
28
+
29
+ def reset_stickiness_policy
30
+ @stickiness_policy = {}
26
31
  end
27
32
 
28
33
  def start_element(name, attrs = [])
@@ -46,13 +51,19 @@ module Fog
46
51
  @in_lb_cookies = true
47
52
  when 'AppCookieStickinessPolicies'
48
53
  @in_app_cookies = true
54
+ when 'AppCookieStickinessPolicies'
55
+ @in_app_cookies = true
56
+ when 'OtherPolicies'
57
+ @in_other_policies = true
58
+ when 'BackendServerDescriptions'
59
+ @in_backend_server_descriptions = true
49
60
  end
50
61
  end
51
62
 
52
63
  def end_element(name)
53
64
  case name
54
65
  when 'member'
55
- if @in_policy_names
66
+ if @in_policy_names && @in_listeners
56
67
  @listener_description['PolicyNames'] << value
57
68
  elsif @in_availability_zones
58
69
  @load_balancer['AvailabilityZones'] << value
@@ -64,16 +75,34 @@ module Fog
64
75
  @load_balancer['ListenerDescriptions'] << @listener_description
65
76
  reset_listener_description
66
77
  elsif @in_app_cookies
67
- @load_balancer['Policies']['AppCookieStickinessPolicies'] << @policy
68
- reset_policy
78
+ @load_balancer['Policies']['AppCookieStickinessPolicies'] << @stickiness_policy
79
+ reset_stickiness_policy
69
80
  elsif @in_lb_cookies
70
- @load_balancer['Policies']['LBCookieStickinessPolicies'] << @policy
71
- reset_policy
72
- elsif !@in_instances && !@in_policies
81
+ @load_balancer['Policies']['LBCookieStickinessPolicies'] << @stickiness_policy
82
+ reset_stickiness_policy
83
+ elsif @in_other_policies
84
+ @load_balancer['Policies']['OtherPolicies'] << value
85
+ elsif @in_backend_server_descriptions && @in_policy_names
86
+ @backend_server_description['PolicyNames'] ||= []
87
+ @backend_server_description['PolicyNames'] << value
88
+ elsif @in_backend_server_descriptions && !@in_policy_names
89
+ @load_balancer['BackendServerDescriptions'] << @backend_server_description
90
+ reset_backend_server_description
91
+ elsif !@in_instances && !@in_policies && !@in_backend_server_descriptions
73
92
  @results['LoadBalancerDescriptions'] << @load_balancer
74
93
  reset_load_balancer
75
94
  end
76
95
 
96
+ when 'BackendServerDescriptions'
97
+ @in_backend_server_descriptions = false
98
+
99
+ when 'InstancePort'
100
+ if @in_backend_server_descriptions
101
+ @backend_server_description[name] = value.to_i
102
+ elsif @in_listeners
103
+ @listener_description['Listener'][name] = value.to_i
104
+ end
105
+
77
106
  when 'CanonicalHostedZoneName', 'CanonicalHostedZoneNameID', 'LoadBalancerName', 'DNSName', 'Scheme'
78
107
  @load_balancer[name] = value
79
108
  when 'CreatedTime'
@@ -85,7 +114,7 @@ module Fog
85
114
  @in_policy_names = false
86
115
  when 'Protocol', 'SSLCertificateId', 'InstanceProtocol'
87
116
  @listener_description['Listener'][name] = value
88
- when 'LoadBalancerPort', 'InstancePort'
117
+ when 'LoadBalancerPort'
89
118
  @listener_description['Listener'][name] = value.to_i
90
119
 
91
120
  when 'Instances'
@@ -108,6 +137,8 @@ module Fog
108
137
  @in_app_cookies = false
109
138
  when 'LBCookieStickinessPolicies'
110
139
  @in_lb_cookies = false
140
+ when 'OtherPolicies'
141
+ @in_other_policies = false
111
142
 
112
143
  when 'OwnerAlias', 'GroupName'
113
144
  @load_balancer['SourceSecurityGroup'][name] = value
@@ -118,9 +149,9 @@ module Fog
118
149
  @load_balancer['HealthCheck'][name] = value
119
150
 
120
151
  when 'PolicyName', 'CookieName'
121
- @policy[name] = value
152
+ @stickiness_policy[name] = value
122
153
  when 'CookieExpirationPeriod'
123
- @policy[name] = value.to_i
154
+ @stickiness_policy[name] = value.to_i
124
155
 
125
156
  when 'RequestId'
126
157
  @response['ResponseMetadata'][name] = value
@@ -33,6 +33,11 @@ module Fog
33
33
  when 'DBParameterGroups'
34
34
  @in_db_parameter_groups = true
35
35
  @db_parameter_groups = []
36
+ when 'VpcSecurityGroupMembership'
37
+ @vpc_security_group = {}
38
+ when 'VpcSecurityGroups'
39
+ @in_vpc_security_groups = true
40
+ @vpc_security_groups = []
36
41
  end
37
42
 
38
43
  end
@@ -47,9 +52,9 @@ module Fog
47
52
  'DBInstanceStatus', 'DBInstanceIdentifier', 'EngineVersion',
48
53
  'PreferredBackupWindow', 'PreferredMaintenanceWindow',
49
54
  'AvailabilityZone', 'MasterUsername', 'DBName', 'LicenseModel',
50
- 'DBSubnetGroupName', 'PubliclyAccessible'
55
+ 'DBSubnetGroupName'
51
56
  @db_instance[name] = value
52
- when 'MultiAZ', 'AutoMinorVersionUpgrade'
57
+ when 'MultiAZ', 'AutoMinorVersionUpgrade', 'PubliclyAccessible'
53
58
  if value == 'false'
54
59
  @db_instance[name] = false
55
60
  else
@@ -81,20 +86,37 @@ module Fog
81
86
  when 'DBSecurityGroups'
82
87
  @in_db_security_groups = false
83
88
  @db_instance['DBSecurityGroups'] = @db_security_groups
84
- when 'Status', 'DBSecurityGroupName'
85
- if @in_db_security_groups
86
- @db_security_group[name]=value
87
- end
89
+ when 'DBSecurityGroupName'
90
+ @db_security_group[name]=value
88
91
  when 'DBSecurityGroup'
89
92
  @db_security_groups << @db_security_group
90
93
  @db_security_group = {}
91
94
 
95
+ when 'VpcSecurityGroups'
96
+ @in_vpc_security_groups = false
97
+ @db_instance['VpcSecurityGroups'] = @vpc_security_groups
98
+ when 'VpcSecurityGroupMembership'
99
+ @vpc_security_groups << @vpc_security_group
100
+ @vpc_security_group = {}
101
+ when 'VpcSecurityGroupId'
102
+ @vpc_security_group[name] = value
92
103
  when 'AllocatedStorage'
93
104
  if @in_pending_modified_values
94
105
  @pending_modified_values[name] = value.to_i
95
106
  else
96
107
  @db_instance[name] = value.to_i
97
108
  end
109
+
110
+ when 'Status'
111
+ # Unfortunately, status is used in VpcSecurityGroupMemebership and
112
+ # DBSecurityGroups
113
+ if @in_db_security_groups
114
+ @db_security_group[name]=value
115
+ end
116
+ if @in_vpc_security_groups
117
+ @vpc_security_group[name] = value
118
+ end
119
+
98
120
  when 'Address'
99
121
  @endpoint[name] = value
100
122
  when 'Port'
@@ -0,0 +1,44 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module RDS
5
+
6
+ class DescribeDBLogFiles < Fog::Parsers::Base
7
+
8
+ attr_reader :rds_id
9
+
10
+ def initialize(rds_id)
11
+ @rds_id = rds_id
12
+ super()
13
+ end
14
+
15
+ def reset
16
+ @response = { 'DescribeDBLogFilesResult' => {'DBLogFiles' => []}, 'ResponseMetadata' => {} }
17
+ fresh_log_file
18
+ end
19
+
20
+ def fresh_log_file
21
+ @db_log_file = {'DBInstanceIdentifier' => @rds_id}
22
+ end
23
+
24
+ def start_element(name, attrs = [])
25
+ super
26
+ end
27
+
28
+ def end_element(name)
29
+ case name
30
+ when 'LastWritten' then @db_log_file[name] = Time.at(value.to_i / 1000)
31
+ when 'LogFileName' then @db_log_file[name] = value
32
+ when 'Size' then @db_log_file[name] = value.to_i
33
+ when 'DescribeDBLogFilesDetails'
34
+ @response['DescribeDBLogFilesResult']['DBLogFiles'] << @db_log_file
35
+ fresh_log_file
36
+ when 'Marker' then @response['DescribeDBLogFilesResult'][name] = value
37
+ when 'RequestId' then @response['ResponseMetadata'][name] = value
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,47 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module RDS
5
+
6
+ class DescribeOrderableDBInstanceOptions < Fog::Parsers::Base
7
+
8
+ def reset
9
+ @response = { 'DescribeOrderableDBInstanceOptionsResult' => {'OrderableDBInstanceOptions' => []}, 'ResponseMetadata' => {} }
10
+ @db_instance_option = {}
11
+ @db_instance_options = []
12
+ end
13
+
14
+ def start_element(name, attrs = [])
15
+ case name
16
+ when 'AvailabilityZones' then @availability_zones = []
17
+ when 'AvailabilityZone' then @availability_zone = {}
18
+ end
19
+ super
20
+ end
21
+
22
+ def end_element(name)
23
+ case name
24
+ when 'MultiAZCapable', 'ReadReplicaCapable', 'Vpc' then @db_instance_option[name] = to_boolean(value)
25
+ when 'Engine', 'LicenseModel', 'EngineVersion', 'DBInstanceClass' then @db_instance_option[name] = value
26
+ when 'AvailabilityZones' then @db_instance_option[name] = @availability_zones
27
+ when 'AvailabilityZone' then @availability_zones << @availability_zone unless @availability_zone.empty?
28
+ when 'Name' then @availability_zone[name] = value
29
+ when 'ProvisionedIopsCapable' then @availability_zone[name] = to_boolean(value)
30
+ when 'OrderableDBInstanceOption'
31
+ @db_instance_options << @db_instance_option
32
+ @db_instance_option = {}
33
+ when 'OrderableDBInstanceOptions'
34
+ @response['DescribeOrderableDBInstanceOptionsResult']['OrderableDBInstanceOptions'] = @db_instance_options
35
+ when 'Marker' then @response['DescribeOrderableDBInstanceOptionsResult'][name] = value
36
+ when 'RequestId' then @response['ResponseMetadata'][name] = value
37
+ end
38
+ end
39
+
40
+ def to_boolean(v)
41
+ (v =~ /\A\s*(true|yes|1|y)\s*$/i) == 0
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module RDS
5
+
6
+ class DownloadDBLogFilePortion < Fog::Parsers::Base
7
+
8
+ def reset
9
+ @response = { 'DownloadDBLogFilePortionResult' => {}, 'ResponseMetadata' => {} }
10
+ end
11
+
12
+ def start_element(name, attrs = [])
13
+ super
14
+ end
15
+
16
+ def end_element(name)
17
+ key = (name == 'RequestId') ? 'ResponseMetadata' : 'DownloadDBLogFilePortionResult'
18
+ @response[key][name] = value
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end
@@ -11,7 +11,7 @@ module Fog
11
11
 
12
12
  def end_element(name)
13
13
  case name
14
- when 'Bucket', 'ETag', 'Key', 'Location'
14
+ when 'Bucket', 'ETag', 'Key', 'Location', 'Code', 'Message'
15
15
  @response[name] = value
16
16
  end
17
17
  end
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module STS
5
+
6
+ class AssumeRole < Fog::Parsers::Base
7
+
8
+ def reset
9
+ @response = {}
10
+ end
11
+
12
+ def end_element(name)
13
+ case name
14
+ when 'SessionToken', 'SecretAccessKey', 'Expiration', 'AccessKeyId'
15
+ @response[name] = @value.strip
16
+ when 'Arn', 'AssumedRoleId'
17
+ @response[name] = @value.strip
18
+ when 'PackedPolicySize'
19
+ @response[name] = @value
20
+ when 'RequestId'
21
+ @response[name] = @value
22
+ end
23
+ end
24
+
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
@@ -51,11 +51,18 @@ module Fog
51
51
  request :describe_db_subnet_groups
52
52
  # TODO: :delete_db_subnet_group, :modify_db_subnet_group
53
53
 
54
+ request :describe_orderable_db_instance_options
55
+
56
+ request :describe_db_log_files
57
+ request :download_db_logfile_portion
58
+
54
59
  model_path 'fog/aws/models/rds'
55
60
  model :server
56
61
  collection :servers
62
+
57
63
  model :snapshot
58
64
  collection :snapshots
65
+
59
66
  model :parameter_group
60
67
  collection :parameter_groups
61
68
 
@@ -68,6 +75,12 @@ module Fog
68
75
  model :subnet_group
69
76
  collection :subnet_groups
70
77
 
78
+ model :instance_option
79
+ collection :instance_options
80
+
81
+ model :log_file
82
+ collection :log_files
83
+
71
84
  class Mock
72
85
 
73
86
  def self.data
@@ -111,7 +111,15 @@ module Fog
111
111
 
112
112
  def describe_auto_scaling_groups(options = {})
113
113
  results = { 'AutoScalingGroups' => [] }
114
- self.data[:auto_scaling_groups].each do |asg_name, asg_data|
114
+ asg_set = self.data[:auto_scaling_groups]
115
+
116
+ if !options["AutoScalingGroupNames"].nil?
117
+ asg_set = asg_set.reject do |asg_name, asg_data|
118
+ ![*options["AutoScalingGroupNames"]].include?(asg_name)
119
+ end
120
+ end
121
+
122
+ asg_set.each do |asg_name, asg_data|
115
123
  results['AutoScalingGroups'] << {
116
124
  'AutoScalingGroupName' => asg_name
117
125
  }.merge!(asg_data)
@@ -76,7 +76,21 @@ module Fog
76
76
 
77
77
  def describe_policies(options = {})
78
78
  results = { 'ScalingPolicies' => [] }
79
- self.data[:scaling_policies].each do |asp_name, asp_data|
79
+ policy_set = self.data[:scaling_policies]
80
+
81
+ for opt_key, opt_value in options
82
+ if opt_key == "PolicyNames" && opt_value != nil && opt_value != ""
83
+ policy_set = policy_set.reject do |asp_name, asp_data|
84
+ ![*options["PolicyNames"]].include?(asp_name)
85
+ end
86
+ elsif opt_key == "AutoScalingGroupName" && opt_value != nil && opt_value != ""
87
+ policy_set = policy_set.reject do |asp_name, asp_data|
88
+ options["AutoScalingGroupName"] != asp_data["AutoScalingGroupName"]
89
+ end
90
+ end
91
+ end
92
+
93
+ policy_set.each do |asp_name, asp_data|
80
94
  results['ScalingPolicies'] << {
81
95
  'PolicyName' => asp_name
82
96
  }.merge!(asp_data)