fog-aws 3.5.2 → 3.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (333) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +485 -22
  3. data/LICENSE.md +1 -1
  4. data/README.md +117 -7
  5. data/fog-aws.gemspec +8 -8
  6. data/lib/fog/aws/compute.rb +6 -3
  7. data/lib/fog/aws/credential_fetcher.rb +75 -7
  8. data/lib/fog/aws/elasticache.rb +4 -2
  9. data/lib/fog/aws/elb.rb +1 -1
  10. data/lib/fog/aws/elbv2.rb +72 -0
  11. data/lib/fog/aws/kinesis.rb +23 -15
  12. data/lib/fog/aws/models/compute/flavors.rb +2563 -521
  13. data/lib/fog/aws/models/compute/security_group.rb +13 -5
  14. data/lib/fog/aws/models/compute/server.rb +6 -2
  15. data/lib/fog/aws/models/compute/servers.rb +2 -0
  16. data/lib/fog/aws/models/compute/snapshot.rb +7 -6
  17. data/lib/fog/aws/models/compute/vpc.rb +8 -2
  18. data/lib/fog/aws/models/storage/directories.rb +1 -0
  19. data/lib/fog/aws/models/storage/directory.rb +0 -1
  20. data/lib/fog/aws/models/storage/file.rb +164 -20
  21. data/lib/fog/aws/models/storage/files.rb +32 -2
  22. data/lib/fog/aws/parsers/compute/create_snapshot.rb +1 -1
  23. data/lib/fog/aws/parsers/compute/create_subnet.rb +33 -6
  24. data/lib/fog/aws/parsers/compute/describe_security_groups.rb +18 -4
  25. data/lib/fog/aws/parsers/compute/describe_subnets.rb +33 -6
  26. data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +1 -1
  27. data/lib/fog/aws/parsers/dns/get_hosted_zone.rb +3 -3
  28. data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +3 -1
  29. data/lib/fog/aws/parsers/elbv2/create_load_balancer.rb +88 -0
  30. data/lib/fog/aws/parsers/elbv2/describe_listeners.rb +110 -0
  31. data/lib/fog/aws/parsers/elbv2/describe_load_balancers.rb +88 -0
  32. data/lib/fog/aws/parsers/elbv2/describe_tags.rb +53 -0
  33. data/lib/fog/aws/parsers/elbv2/empty.rb +10 -0
  34. data/lib/fog/aws/parsers/iam/get_group_policy.rb +1 -1
  35. data/lib/fog/aws/parsers/iam/get_role_policy.rb +1 -1
  36. data/lib/fog/aws/parsers/iam/get_user_policy.rb +1 -1
  37. data/lib/fog/aws/parsers/iam/policy_version.rb +1 -1
  38. data/lib/fog/aws/parsers/storage/get_object_tagging.rb +33 -0
  39. data/lib/fog/aws/parsers/storage/upload_part_copy_object.rb +18 -0
  40. data/lib/fog/aws/parsers/sts/assume_role_with_web_identity.rb +1 -1
  41. data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +15 -0
  42. data/lib/fog/aws/requests/compute/create_network_interface.rb +7 -4
  43. data/lib/fog/aws/requests/compute/create_subnet.rb +3 -3
  44. data/lib/fog/aws/requests/compute/create_vpc.rb +2 -2
  45. data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -0
  46. data/lib/fog/aws/requests/compute/request_spot_instances.rb +1 -1
  47. data/lib/fog/aws/requests/compute/run_instances.rb +64 -0
  48. data/lib/fog/aws/requests/compute/stop_instances.rb +11 -3
  49. data/lib/fog/aws/requests/elbv2/add_tags.rb +45 -0
  50. data/lib/fog/aws/requests/elbv2/create_load_balancer.rb +160 -0
  51. data/lib/fog/aws/requests/elbv2/describe_listeners.rb +38 -0
  52. data/lib/fog/aws/requests/elbv2/describe_load_balancers.rb +100 -0
  53. data/lib/fog/aws/requests/elbv2/describe_tags.rb +50 -0
  54. data/lib/fog/aws/requests/elbv2/remove_tags.rb +45 -0
  55. data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +12 -10
  56. data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +10 -7
  57. data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +9 -8
  58. data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +18 -8
  59. data/lib/fog/aws/requests/storage/get_object.rb +1 -1
  60. data/lib/fog/aws/requests/storage/get_object_tagging.rb +41 -0
  61. data/lib/fog/aws/requests/storage/get_service.rb +1 -1
  62. data/lib/fog/aws/requests/storage/put_object_tagging.rb +42 -0
  63. data/lib/fog/aws/requests/storage/shared_mock_methods.rb +1 -0
  64. data/lib/fog/aws/requests/storage/sync_clock.rb +9 -1
  65. data/lib/fog/aws/requests/storage/upload_part_copy.rb +119 -0
  66. data/lib/fog/aws/requests/sts/assume_role_with_web_identity.rb +7 -6
  67. data/lib/fog/aws/storage.rb +56 -5
  68. data/lib/fog/aws/version.rb +1 -1
  69. data/lib/fog/aws.rb +7 -2
  70. metadata +35 -295
  71. data/.gitignore +0 -16
  72. data/.travis.yml +0 -53
  73. data/Gemfile +0 -14
  74. data/Rakefile +0 -14
  75. data/gemfiles/Gemfile-edge +0 -14
  76. data/gemfiles/Gemfile-ruby-2.0 +0 -7
  77. data/stale.yml +0 -17
  78. data/tests/credentials_tests.rb +0 -87
  79. data/tests/helper.rb +0 -29
  80. data/tests/helpers/collection_helper.rb +0 -90
  81. data/tests/helpers/compute/flavors_helper.rb +0 -28
  82. data/tests/helpers/compute/server_helper.rb +0 -23
  83. data/tests/helpers/compute/servers_helper.rb +0 -8
  84. data/tests/helpers/dns_helper.rb +0 -56
  85. data/tests/helpers/formats_helper.rb +0 -100
  86. data/tests/helpers/formats_helper_tests.rb +0 -107
  87. data/tests/helpers/mock_helper.rb +0 -109
  88. data/tests/helpers/model_helper.rb +0 -30
  89. data/tests/helpers/responds_to_helper.rb +0 -11
  90. data/tests/helpers/schema_validator_tests.rb +0 -104
  91. data/tests/helpers/succeeds_helper.rb +0 -9
  92. data/tests/lorem.txt +0 -1
  93. data/tests/models/auto_scaling/activities_tests.rb +0 -6
  94. data/tests/models/auto_scaling/configuration_test.rb +0 -13
  95. data/tests/models/auto_scaling/configurations_tests.rb +0 -11
  96. data/tests/models/auto_scaling/groups_test.rb +0 -27
  97. data/tests/models/auto_scaling/helper.rb +0 -0
  98. data/tests/models/auto_scaling/instance_tests.rb +0 -15
  99. data/tests/models/auto_scaling/instances_tests.rb +0 -6
  100. data/tests/models/beanstalk/application_tests.rb +0 -69
  101. data/tests/models/beanstalk/applications_tests.rb +0 -7
  102. data/tests/models/beanstalk/environment_tests.rb +0 -131
  103. data/tests/models/beanstalk/environments_tests.rb +0 -34
  104. data/tests/models/beanstalk/template_tests.rb +0 -47
  105. data/tests/models/beanstalk/templates_tests.rb +0 -62
  106. data/tests/models/beanstalk/version_tests.rb +0 -66
  107. data/tests/models/beanstalk/versions_tests.rb +0 -60
  108. data/tests/models/cdn/distribution_tests.rb +0 -15
  109. data/tests/models/cdn/distributions_tests.rb +0 -15
  110. data/tests/models/cdn/invalidation_tests.rb +0 -31
  111. data/tests/models/cdn/invalidations_tests.rb +0 -14
  112. data/tests/models/cdn/streaming_distribution_tests.rb +0 -15
  113. data/tests/models/cdn/streaming_distributions_tests.rb +0 -15
  114. data/tests/models/cloud_watch/alarm_data_tests.rb +0 -42
  115. data/tests/models/cloud_watch/alarm_history_tests.rb +0 -22
  116. data/tests/models/cloud_watch/metric_statistics_tests.rb +0 -51
  117. data/tests/models/cloud_watch/metrics_tests.rb +0 -32
  118. data/tests/models/compute/address_tests.rb +0 -43
  119. data/tests/models/compute/addresses_tests.rb +0 -5
  120. data/tests/models/compute/dhcp_option_tests.rb +0 -3
  121. data/tests/models/compute/dhcp_options_tests.rb +0 -3
  122. data/tests/models/compute/internet_gateway_tests.rb +0 -3
  123. data/tests/models/compute/internet_gateways_tests.rb +0 -3
  124. data/tests/models/compute/key_pair_tests.rb +0 -26
  125. data/tests/models/compute/key_pairs_tests.rb +0 -5
  126. data/tests/models/compute/network_acl_tests.rb +0 -109
  127. data/tests/models/compute/network_acls_tests.rb +0 -20
  128. data/tests/models/compute/network_interfaces_test.rb +0 -12
  129. data/tests/models/compute/security_group_tests.rb +0 -98
  130. data/tests/models/compute/security_groups_tests.rb +0 -5
  131. data/tests/models/compute/server_tests.rb +0 -94
  132. data/tests/models/compute/snapshot_tests.rb +0 -10
  133. data/tests/models/compute/snapshots_tests.rb +0 -10
  134. data/tests/models/compute/subnet_tests.rb +0 -13
  135. data/tests/models/compute/subnets_tests.rb +0 -5
  136. data/tests/models/compute/volume_tests.rb +0 -65
  137. data/tests/models/compute/volumes_tests.rb +0 -5
  138. data/tests/models/compute/vpc_tests.rb +0 -26
  139. data/tests/models/compute/vpcs_tests.rb +0 -19
  140. data/tests/models/data_pipeline/pipeline_tests.rb +0 -8
  141. data/tests/models/data_pipeline/pipelines_tests.rb +0 -8
  142. data/tests/models/dns/record_tests.rb +0 -33
  143. data/tests/models/dns/records_tests.rb +0 -41
  144. data/tests/models/dns/zone_tests.rb +0 -4
  145. data/tests/models/dns/zones_tests.rb +0 -4
  146. data/tests/models/efs/file_system_tests.rb +0 -12
  147. data/tests/models/efs/mount_target_tests.rb +0 -45
  148. data/tests/models/efs/mount_targets_tests.rb +0 -30
  149. data/tests/models/elasticache/cluster_tests.rb +0 -30
  150. data/tests/models/elasticache/parameter_groups_tests.rb +0 -15
  151. data/tests/models/elasticache/security_groups_tests.rb +0 -52
  152. data/tests/models/elasticache/subnet_groups_tests.rb +0 -43
  153. data/tests/models/elb/model_tests.rb +0 -360
  154. data/tests/models/elb/tagging_tests.rb +0 -15
  155. data/tests/models/glacier/model_tests.rb +0 -47
  156. data/tests/models/iam/access_keys_tests.rb +0 -53
  157. data/tests/models/iam/groups_tests.rb +0 -59
  158. data/tests/models/iam/instance_profile_tests.rb +0 -18
  159. data/tests/models/iam/managed_policies_tests.rb +0 -89
  160. data/tests/models/iam/policies_tests.rb +0 -57
  161. data/tests/models/iam/roles_tests.rb +0 -71
  162. data/tests/models/iam/users_tests.rb +0 -119
  163. data/tests/models/rds/cluster_tests.rb +0 -54
  164. data/tests/models/rds/clusters_tests.rb +0 -5
  165. data/tests/models/rds/event_subscription_tests.rb +0 -9
  166. data/tests/models/rds/event_subscriptions_tests.rb +0 -6
  167. data/tests/models/rds/helper.rb +0 -25
  168. data/tests/models/rds/instance_option_tests.rb +0 -14
  169. data/tests/models/rds/parameter_group_tests.rb +0 -24
  170. data/tests/models/rds/parameter_groups_tests.rb +0 -8
  171. data/tests/models/rds/security_group_tests.rb +0 -77
  172. data/tests/models/rds/security_groups_tests.rb +0 -5
  173. data/tests/models/rds/server_tests.rb +0 -131
  174. data/tests/models/rds/servers_tests.rb +0 -24
  175. data/tests/models/rds/snapshot_tests.rb +0 -12
  176. data/tests/models/rds/snapshots_tests.rb +0 -12
  177. data/tests/models/rds/tagging_tests.rb +0 -20
  178. data/tests/models/sns/topic_tests.rb +0 -15
  179. data/tests/models/sns/topics_tests.rb +0 -6
  180. data/tests/models/storage/directory_tests.rb +0 -91
  181. data/tests/models/storage/file_tests.rb +0 -129
  182. data/tests/models/storage/files_tests.rb +0 -58
  183. data/tests/models/storage/url_tests.rb +0 -25
  184. data/tests/models/storage/version_tests.rb +0 -52
  185. data/tests/models/storage/versions_tests.rb +0 -51
  186. data/tests/models/support/trusted_advisor_tests.rb +0 -25
  187. data/tests/parsers/compute/describe_images_tests.rb +0 -33
  188. data/tests/parsers/elb/describe_load_balancers.rb +0 -65
  189. data/tests/requests/auto_scaling/auto_scaling_tests.rb +0 -111
  190. data/tests/requests/auto_scaling/describe_types_tests.rb +0 -102
  191. data/tests/requests/auto_scaling/helper.rb +0 -229
  192. data/tests/requests/auto_scaling/model_tests.rb +0 -235
  193. data/tests/requests/auto_scaling/notification_configuration_tests.rb +0 -124
  194. data/tests/requests/auto_scaling/tag_tests.rb +0 -63
  195. data/tests/requests/beanstalk/application_tests.rb +0 -140
  196. data/tests/requests/beanstalk/solution_stack_tests.rb +0 -22
  197. data/tests/requests/cdn/cdn_tests.rb +0 -252
  198. data/tests/requests/cloud_formation/stack_tests.rb +0 -167
  199. data/tests/requests/cloud_watch/get_metric_statistics_tests.rb +0 -28
  200. data/tests/requests/cloud_watch/list_metrics_test.rb +0 -64
  201. data/tests/requests/cloud_watch/put_metric_data_tests.rb +0 -36
  202. data/tests/requests/compute/address_tests.rb +0 -144
  203. data/tests/requests/compute/assign_private_ip_tests.rb +0 -55
  204. data/tests/requests/compute/availability_zone_tests.rb +0 -25
  205. data/tests/requests/compute/client_tests.rb +0 -25
  206. data/tests/requests/compute/dhcp_options_tests.rb +0 -39
  207. data/tests/requests/compute/helper.rb +0 -27
  208. data/tests/requests/compute/image_tests.rb +0 -169
  209. data/tests/requests/compute/instance_attrib_tests.rb +0 -168
  210. data/tests/requests/compute/instance_tests.rb +0 -338
  211. data/tests/requests/compute/internet_gateway_tests.rb +0 -49
  212. data/tests/requests/compute/key_pair_tests.rb +0 -67
  213. data/tests/requests/compute/network_acl_tests.rb +0 -112
  214. data/tests/requests/compute/network_interface_tests.rb +0 -239
  215. data/tests/requests/compute/placement_group_tests.rb +0 -48
  216. data/tests/requests/compute/region_tests.rb +0 -52
  217. data/tests/requests/compute/route_tests.rb +0 -341
  218. data/tests/requests/compute/security_group_tests.rb +0 -446
  219. data/tests/requests/compute/snapshot_tests.rb +0 -77
  220. data/tests/requests/compute/spot_datafeed_subscription_tests.rb +0 -47
  221. data/tests/requests/compute/spot_instance_tests.rb +0 -55
  222. data/tests/requests/compute/spot_price_history_tests.rb +0 -23
  223. data/tests/requests/compute/subnet_tests.rb +0 -87
  224. data/tests/requests/compute/tag_tests.rb +0 -101
  225. data/tests/requests/compute/volume_tests.rb +0 -263
  226. data/tests/requests/compute/vpc_tests.rb +0 -216
  227. data/tests/requests/data_pipeline/helper.rb +0 -78
  228. data/tests/requests/data_pipeline/pipeline_tests.rb +0 -80
  229. data/tests/requests/dns/change_resource_record_sets_tests.rb +0 -34
  230. data/tests/requests/dns/dns_tests.rb +0 -240
  231. data/tests/requests/dns/health_check_tests.rb +0 -159
  232. data/tests/requests/dns/helper.rb +0 -21
  233. data/tests/requests/dynamodb/item_tests.rb +0 -137
  234. data/tests/requests/dynamodb/table_tests.rb +0 -99
  235. data/tests/requests/ecs/cluster_tests.rb +0 -112
  236. data/tests/requests/ecs/container_instance_tests.rb +0 -119
  237. data/tests/requests/ecs/helper.rb +0 -276
  238. data/tests/requests/ecs/sample_task_definition1.json +0 -56
  239. data/tests/requests/ecs/service_tests.rb +0 -132
  240. data/tests/requests/ecs/task_definitions_tests.rb +0 -97
  241. data/tests/requests/ecs/task_tests.rb +0 -145
  242. data/tests/requests/efs/file_system_tests.rb +0 -152
  243. data/tests/requests/efs/helper.rb +0 -44
  244. data/tests/requests/elasticache/cache_cluster_tests.rb +0 -137
  245. data/tests/requests/elasticache/describe_events.rb +0 -17
  246. data/tests/requests/elasticache/describe_reserved_cache_nodes.rb +0 -17
  247. data/tests/requests/elasticache/helper.rb +0 -103
  248. data/tests/requests/elasticache/parameter_group_tests.rb +0 -105
  249. data/tests/requests/elasticache/security_group_tests.rb +0 -108
  250. data/tests/requests/elasticache/subnet_group_tests.rb +0 -52
  251. data/tests/requests/elb/helper.rb +0 -91
  252. data/tests/requests/elb/listener_tests.rb +0 -68
  253. data/tests/requests/elb/load_balancer_tests.rb +0 -89
  254. data/tests/requests/elb/policy_tests.rb +0 -132
  255. data/tests/requests/emr/helper.rb +0 -167
  256. data/tests/requests/emr/instance_group_tests.rb +0 -106
  257. data/tests/requests/emr/job_flow_tests.rb +0 -88
  258. data/tests/requests/federation/get_signin_token_tests.rb +0 -11
  259. data/tests/requests/glacier/archive_tests.rb +0 -13
  260. data/tests/requests/glacier/multipart_upload_tests.rb +0 -29
  261. data/tests/requests/glacier/tree_hash_tests.rb +0 -91
  262. data/tests/requests/glacier/vault_tests.rb +0 -35
  263. data/tests/requests/iam/access_key_tests.rb +0 -53
  264. data/tests/requests/iam/account_policy_tests.rb +0 -20
  265. data/tests/requests/iam/account_tests.rb +0 -34
  266. data/tests/requests/iam/group_policy_tests.rb +0 -48
  267. data/tests/requests/iam/group_tests.rb +0 -44
  268. data/tests/requests/iam/helper.rb +0 -154
  269. data/tests/requests/iam/instance_profile_tests.rb +0 -44
  270. data/tests/requests/iam/login_profile_tests.rb +0 -62
  271. data/tests/requests/iam/managed_policy_tests.rb +0 -110
  272. data/tests/requests/iam/mfa_tests.rb +0 -23
  273. data/tests/requests/iam/role_tests.rb +0 -156
  274. data/tests/requests/iam/server_certificate_tests.rb +0 -130
  275. data/tests/requests/iam/user_policy_tests.rb +0 -45
  276. data/tests/requests/iam/user_tests.rb +0 -78
  277. data/tests/requests/iam/versioned_managed_policy_tests.rb +0 -105
  278. data/tests/requests/kinesis/helper.rb +0 -111
  279. data/tests/requests/kinesis/stream_tests.rb +0 -169
  280. data/tests/requests/kms/helper.rb +0 -27
  281. data/tests/requests/kms/key_tests.rb +0 -23
  282. data/tests/requests/lambda/function_sample_1.js +0 -9
  283. data/tests/requests/lambda/function_sample_2.js +0 -9
  284. data/tests/requests/lambda/function_tests.rb +0 -460
  285. data/tests/requests/lambda/helper.rb +0 -81
  286. data/tests/requests/rds/cluster_snapshot_tests.rb +0 -43
  287. data/tests/requests/rds/cluster_tests.rb +0 -37
  288. data/tests/requests/rds/db_engine_versions.rb +0 -7
  289. data/tests/requests/rds/db_snapshot_tests.rb +0 -62
  290. data/tests/requests/rds/describe_events.rb +0 -16
  291. data/tests/requests/rds/event_subscription_tests.rb +0 -30
  292. data/tests/requests/rds/helper.rb +0 -406
  293. data/tests/requests/rds/instance_option_tests.rb +0 -27
  294. data/tests/requests/rds/instance_tests.rb +0 -149
  295. data/tests/requests/rds/log_file_tests.rb +0 -19
  296. data/tests/requests/rds/parameter_group_tests.rb +0 -62
  297. data/tests/requests/rds/parameter_request_tests.rb +0 -32
  298. data/tests/requests/rds/security_group_tests.rb +0 -101
  299. data/tests/requests/rds/subnet_groups_tests.rb +0 -52
  300. data/tests/requests/rds/tagging_tests.rb +0 -78
  301. data/tests/requests/redshift/cluster_parameter_group_tests.rb +0 -76
  302. data/tests/requests/redshift/cluster_security_group_tests.rb +0 -42
  303. data/tests/requests/redshift/cluster_snapshot_tests.rb +0 -73
  304. data/tests/requests/redshift/cluster_tests.rb +0 -80
  305. data/tests/requests/ses/helper.rb +0 -9
  306. data/tests/requests/ses/verified_domain_identity_tests.rb +0 -16
  307. data/tests/requests/ses/verified_email_address_tests.rb +0 -27
  308. data/tests/requests/simpledb/attributes_tests.rb +0 -86
  309. data/tests/requests/simpledb/domain_tests.rb +0 -51
  310. data/tests/requests/simpledb/helper.rb +0 -10
  311. data/tests/requests/sns/helper.rb +0 -9
  312. data/tests/requests/sns/subscription_tests.rb +0 -86
  313. data/tests/requests/sns/topic_tests.rb +0 -53
  314. data/tests/requests/sqs/helper.rb +0 -9
  315. data/tests/requests/sqs/message_tests.rb +0 -51
  316. data/tests/requests/sqs/queue_tests.rb +0 -50
  317. data/tests/requests/storage/acl_utils_tests.rb +0 -209
  318. data/tests/requests/storage/bucket_tests.rb +0 -416
  319. data/tests/requests/storage/cors_utils_tests.rb +0 -108
  320. data/tests/requests/storage/delete_multiple_objects_tests.rb +0 -12
  321. data/tests/requests/storage/multipart_upload_tests.rb +0 -121
  322. data/tests/requests/storage/object_tests.rb +0 -262
  323. data/tests/requests/storage/versioning_tests.rb +0 -262
  324. data/tests/requests/sts/assume_role_tests.rb +0 -19
  325. data/tests/requests/sts/assume_role_with_saml_tests.rb +0 -18
  326. data/tests/requests/sts/assume_role_with_web_identity_tests.rb +0 -28
  327. data/tests/requests/sts/get_federation_token_tests.rb +0 -20
  328. data/tests/requests/sts/session_token_tests.rb +0 -16
  329. data/tests/requests/support/helper.rb +0 -43
  330. data/tests/requests/support/trusted_advisor_check_tests.rb +0 -16
  331. data/tests/signaturev4_tests.rb +0 -106
  332. data/tests/signed_params_tests.rb +0 -17
  333. data/tests/storage_tests.rb +0 -7
@@ -1,446 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | security group requests', ['aws']) do
2
- # See https://github.com/fog/fog/issues/2932hj0
3
- pending
4
-
5
- @create_security_group_format = {
6
- 'requestId' => String,
7
- 'groupId' => String,
8
- 'return' => Fog::Boolean
9
- }
10
-
11
- @security_groups_format = {
12
- 'requestId' => String,
13
- 'securityGroupInfo' => [{
14
- 'groupDescription' => String,
15
- 'groupId' => Fog::Nullable::String,
16
- 'groupName' => String,
17
- 'ipPermissions' => [{
18
- 'fromPort' => Fog::Nullable::Integer,
19
- 'groups' => [{ 'groupName' => Fog::Nullable::String, 'userId' => String, 'groupId' => String }],
20
- 'ipProtocol' => String,
21
- 'ipRanges' => [Fog::Nullable::Hash],
22
- 'toPort' => Fog::Nullable::Integer,
23
- }],
24
- 'ipPermissionsEgress' => [],
25
- 'ownerId' => String,
26
- 'vpcId' => Fog::Nullable::String
27
- }]
28
- }
29
-
30
- @owner_id = Fog::Compute[:aws].describe_security_groups('group-name' => 'default').body['securityGroupInfo'].first['ownerId']
31
- @group_id_default = Fog::Compute[:aws].describe_security_groups('group-name' => 'default').body['securityGroupInfo'].first['groupId']
32
-
33
- tests('success') do
34
-
35
- tests("#create_security_group('fog_security_group', 'tests group')").formats(@create_security_group_format) do
36
- Fog::Compute[:aws].create_security_group('fog_security_group', 'tests group').body
37
- end
38
- tests("#create_security_group('fog_security_group_two', 'tests group')").formats(@create_security_group_format) do
39
- Fog::Compute[:aws].create_security_group('fog_security_group_two', 'tests group').body
40
- end
41
- @group_id_two = Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group_two').body['securityGroupInfo'].first['groupId']
42
- group_id = Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['groupId']
43
- to_be_revoked = []
44
- expected_permissions = []
45
-
46
- permission = { 'SourceSecurityGroupName' => 'default' }
47
- tests("#authorize_security_group_ingress('fog_security_group', #{permission.inspect})").formats(AWS::Compute::Formats::BASIC) do
48
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permission).body
49
- end
50
-
51
- to_be_revoked.push([permission, expected_permissions.dup])
52
-
53
- expected_permissions = [
54
- {"groups"=>[{"groupName"=>"default", "userId"=>@owner_id, "groupId"=>@group_id_default}],
55
- "fromPort"=>1,
56
- "ipRanges"=>[],
57
- "ipProtocol"=>"tcp",
58
- "toPort"=>65535},
59
- {"groups"=>[{"groupName"=>"default", "userId"=>@owner_id, "groupId"=>@group_id_default}],
60
- "fromPort"=>1,
61
- "ipRanges"=>[],
62
- "ipProtocol"=>"udp",
63
- "toPort"=>65535},
64
- {"groups"=>[{"groupName"=>"default", "userId"=>@owner_id, "groupId"=>@group_id_default}],
65
- "fromPort"=>-1,
66
- "ipRanges"=>[],
67
- "ipProtocol"=>"icmp",
68
- "toPort"=>-1}
69
- ]
70
-
71
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
72
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
73
- end
74
-
75
- tests("#describe_security_groups('group-id' => '#{group_id}')").returns([]) do
76
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-id' => group_id).body['securityGroupInfo'].first['ipPermissions'])
77
- end
78
-
79
- permission = { 'SourceSecurityGroupName' => 'fog_security_group_two', 'SourceSecurityGroupOwnerId' => @owner_id }
80
- tests("#authorize_security_group_ingress('fog_security_group', #{permission.inspect})").formats(AWS::Compute::Formats::BASIC) do
81
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permission).body
82
- end
83
-
84
- to_be_revoked.push([permission, expected_permissions.dup])
85
-
86
- expected_permissions = [
87
- {"groups"=>
88
- [{"userId"=>@owner_id, "groupName"=>"default", "groupId"=>@group_id_default},
89
- {"userId"=>@owner_id, "groupName"=>"fog_security_group_two", "groupId"=>@group_id_two}],
90
- "ipRanges"=>[],
91
- "ipProtocol"=>"tcp",
92
- "fromPort"=>1,
93
- "toPort"=>65535},
94
- {"groups"=>
95
- [{"userId"=>@owner_id, "groupName"=>"default", "groupId"=>@group_id_default},
96
- {"userId"=>@owner_id, "groupName"=>"fog_security_group_two", "groupId"=>@group_id_two}],
97
- "ipRanges"=>[],
98
- "ipProtocol"=>"udp",
99
- "fromPort"=>1,
100
- "toPort"=>65535},
101
- {"groups"=>
102
- [{"userId"=>@owner_id, "groupName"=>"default", "groupId"=>@group_id_default},
103
- {"userId"=>@owner_id, "groupName"=>"fog_security_group_two", "groupId"=>@group_id_two}],
104
- "ipRanges"=>[],
105
- "ipProtocol"=>"icmp",
106
- "fromPort"=>-1,
107
- "toPort"=>-1}
108
- ]
109
-
110
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
111
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
112
- end
113
-
114
- permission = { 'IpProtocol' => 'tcp', 'FromPort' => '22', 'ToPort' => '22' }
115
- tests("#authorize_security_group_ingress('fog_security_group', #{permission.inspect})").formats(AWS::Compute::Formats::BASIC) do
116
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permission).body
117
- end
118
-
119
- to_be_revoked.push([permission, expected_permissions.dup])
120
-
121
- # previous did nothing
122
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
123
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
124
- end
125
-
126
- permission = { 'IpProtocol' => 'tcp', 'FromPort' => '22', 'ToPort' => '22', 'CidrIp' => '10.0.0.0/8' }
127
- tests("#authorize_security_group_ingress('fog_security_group', #{permission.inspect})").formats(AWS::Compute::Formats::BASIC) do
128
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permission).body
129
- end
130
-
131
- to_be_revoked.push([permission, expected_permissions.dup])
132
-
133
- expected_permissions += [
134
- {"groups"=>[],
135
- "ipRanges"=>[{"cidrIp"=>"10.0.0.0/8"}],
136
- "ipProtocol"=>"tcp",
137
- "fromPort"=>22,
138
- "toPort"=>22}
139
- ]
140
-
141
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
142
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
143
- end
144
-
145
- # authorize with nested IpProtocol without IpRanges or Groups does nothing
146
- permissions = {
147
- 'IpPermissions' => [
148
- { 'IpProtocol' => 'tcp', 'FromPort' => '22', 'ToPort' => '22' }
149
- ]
150
- }
151
- tests("#authorize_security_group_ingress('fog_security_group', #{permissions.inspect})").formats(AWS::Compute::Formats::BASIC) do
152
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permissions).body
153
- end
154
-
155
- to_be_revoked.push([permissions, expected_permissions.dup])
156
-
157
- # previous did nothing
158
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
159
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
160
- end
161
-
162
- # authorize with nested IpProtocol with IpRanges
163
- permissions = {
164
- 'IpPermissions' => [
165
- {
166
- 'IpProtocol' => 'tcp', 'FromPort' => '80', 'ToPort' => '80',
167
- 'IpRanges' => [{ 'CidrIp' => '192.168.0.0/24' }]
168
- }
169
- ]
170
- }
171
- tests("#authorize_security_group_ingress('fog_security_group', #{permissions.inspect})").formats(AWS::Compute::Formats::BASIC) do
172
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permissions).body
173
- end
174
-
175
- to_be_revoked.push([permissions, expected_permissions.dup])
176
-
177
- expected_permissions += [
178
- {"groups"=>[],
179
- "ipRanges"=>[{"cidrIp"=>"192.168.0.0/24"}],
180
- "ipProtocol"=>"tcp",
181
- "fromPort"=>80,
182
- "toPort"=>80}
183
- ]
184
-
185
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
186
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
187
- end
188
-
189
- # authorize with nested IpProtocol with Groups
190
- permissions = {
191
- 'IpPermissions' => [
192
- {
193
- 'IpProtocol' => 'tcp', 'FromPort' => '8000', 'ToPort' => '8000',
194
- 'Groups' => [{ 'GroupName' => 'fog_security_group_two' }]
195
- }
196
- ]
197
- }
198
- tests("#authorize_security_group_ingress('fog_security_group', #{permissions.inspect})").formats(AWS::Compute::Formats::BASIC) do
199
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permissions).body
200
- end
201
-
202
- to_be_revoked.push([permissions, expected_permissions.dup])
203
-
204
- expected_permissions += [
205
- {"groups"=>[{"userId"=>@owner_id, "groupName"=>"fog_security_group_two", "groupId"=>@group_id_two}],
206
- "ipRanges"=>[],
207
- "ipProtocol"=>"tcp",
208
- "fromPort"=>8000,
209
- "toPort"=>8000}
210
- ]
211
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
212
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
213
- end
214
-
215
- # authorize with nested IpProtocol with IpRanges and Groups
216
- # try integers on this one instead of strings
217
- permissions = {
218
- 'IpPermissions' => [
219
- {
220
- 'IpProtocol' => 'tcp', 'FromPort' => 9000, 'ToPort' => 9000,
221
- 'IpRanges' => [{ 'CidrIp' => '172.16.0.0/24' }],
222
- 'Groups' => [{ 'GroupName' => 'fog_security_group_two' }]
223
- }
224
- ]
225
- }
226
- tests("#authorize_security_group_ingress('fog_security_group', #{permissions.inspect})").formats(AWS::Compute::Formats::BASIC) do
227
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', permissions).body
228
- end
229
-
230
- to_be_revoked.push([permissions, expected_permissions.dup])
231
-
232
- expected_permissions += [
233
- {"groups"=>
234
- [{"userId"=>@owner_id, "groupName"=>"fog_security_group_two", "groupId"=>@group_id_two}],
235
- "ipRanges"=>[{"cidrIp"=>"172.16.0.0/24"}],
236
- "ipProtocol"=>"tcp",
237
- "fromPort"=>9000,
238
- "toPort"=>9000}
239
- ]
240
-
241
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
242
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
243
- end
244
-
245
- tests("#describe_security_groups").formats(@security_groups_format) do
246
- Fog::Compute[:aws].describe_security_groups.body
247
- end
248
-
249
- tests("#describe_security_groups('group-name' => 'fog_security_group')").formats(@security_groups_format) do
250
- Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body
251
- end
252
-
253
- to_be_revoked.reverse.each do |permission, expected_permissions_after|
254
- tests("#revoke_security_group_ingress('fog_security_group', #{permission.inspect})").formats(AWS::Compute::Formats::BASIC) do
255
- Fog::Compute[:aws].revoke_security_group_ingress('fog_security_group', permission).body
256
- end
257
-
258
- tests("#describe_security_groups('group-name' => 'fog_security_group')").returns([]) do
259
- array_differences(expected_permissions_after, Fog::Compute[:aws].describe_security_groups('group-name' => 'fog_security_group').body['securityGroupInfo'].first['ipPermissions'])
260
- end
261
- end
262
-
263
- tests("#delete_security_group('fog_security_group')").formats(AWS::Compute::Formats::BASIC) do
264
- Fog::Compute[:aws].delete_security_group('fog_security_group').body
265
- end
266
-
267
- tests("#delete_security_group('fog_security_group_two')").formats(AWS::Compute::Formats::BASIC) do
268
- Fog::Compute[:aws].delete_security_group('fog_security_group_two').body
269
- end
270
-
271
- vpc_id = Fog::Compute[:aws].create_vpc('10.255.254.64/28').body['vpcSet'].first['vpcId']
272
-
273
- # Create security group in VPC
274
- tests("#create_security_group('vpc_security_group', 'tests group')").formats(@create_security_group_format) do
275
- Fog::Compute[:aws].create_security_group('vpc_security_group', 'tests group', vpc_id).body
276
- end
277
-
278
- group_id = Fog::Compute[:aws].describe_security_groups('group-name' => 'vpc_security_group').body['securityGroupInfo'].first['groupId']
279
-
280
- permissions = {
281
- 'IpPermissions' => [
282
- {
283
- 'IpProtocol' => '42',
284
- 'IpRanges' => [{ 'CidrIp' => '10.0.0.0/8' }],
285
- }
286
- ]
287
- }
288
-
289
- expected_permissions = [
290
- {"groups"=>[],
291
- "ipRanges"=>[{"cidrIp"=>"10.0.0.0/8"}],
292
- "ipProtocol"=>"42"}
293
- ]
294
-
295
- options = permissions.clone
296
- options['GroupId'] = group_id
297
- tests("#authorize_security_group_ingress(#{options.inspect})").formats(AWS::Compute::Formats::BASIC) do
298
- Fog::Compute[:aws].authorize_security_group_ingress(options).body
299
- end
300
-
301
- tests("#describe_security_groups('group-name' => 'vpc_security_group')").returns([]) do
302
- array_differences(expected_permissions, Fog::Compute[:aws].describe_security_groups('group-name' => 'vpc_security_group').body['securityGroupInfo'].first['ipPermissions'])
303
- end
304
-
305
- tests("#revoke_security_group_ingress(#{options.inspect})").formats(AWS::Compute::Formats::BASIC) do
306
- Fog::Compute[:aws].revoke_security_group_ingress(options).body
307
- end
308
-
309
- vpc_group=Fog::Compute[:aws].security_groups.get_by_id(group_id)
310
- vpc_group.destroy
311
-
312
- Fog::Compute[:aws].delete_vpc(vpc_id)
313
-
314
- end
315
- ## Rate limiting seems to want us to take a break otherwise it will throw errors
316
- tests('failure') do
317
-
318
- @security_group = Fog::Compute[:aws].security_groups.create(:description => 'tests group', :name => 'fog_security_group')
319
- @other_security_group = Fog::Compute[:aws].security_groups.create(:description => 'tests group', :name => 'fog_other_security_group')
320
-
321
- tests("duplicate #create_security_group(#{@security_group.name}, #{@security_group.description})").raises(Fog::AWS::Compute::Error) do
322
- Fog::Compute[:aws].create_security_group(@security_group.name, @security_group.description)
323
- end
324
-
325
- tests("#authorize_security_group_ingress('not_a_group_name', {'FromPort' => 80, 'IpProtocol' => 'tcp', 'toPort' => 80})").raises(Fog::AWS::Compute::NotFound) do
326
- Fog::Compute[:aws].authorize_security_group_ingress(
327
- 'not_a_group_name',
328
- {
329
- 'FromPort' => 80,
330
- 'IpProtocol' => 'tcp',
331
- 'ToPort' => 80,
332
- }
333
- )
334
- end
335
-
336
- tests("#authorize_security_group_ingress('not_a_group_name', {'SourceSecurityGroupName' => 'not_a_group_name', 'SourceSecurityGroupOwnerId' => '#{@owner_id}'})").raises(Fog::AWS::Compute::NotFound) do
337
- Fog::Compute[:aws].authorize_security_group_ingress(
338
- 'not_a_group_name',
339
- {
340
- 'SourceSecurityGroupName' => 'not_a_group_name',
341
- 'SourceSecurityGroupOwnerId' => @owner_id
342
- }
343
- )
344
- end
345
-
346
- tests("#authorize_security_group_ingress('fog_security_group', {'IpPermissions' => [{'IpProtocol' => 'tcp', 'FromPort' => 80, 'ToPort' => 80, 'IpRanges' => [{'CidrIp' => '10.0.0.0/8'}]}]})").formats(AWS::Compute::Formats::BASIC) do
347
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', {'IpPermissions' => [{'IpProtocol' => 'tcp', 'FromPort' => 80, 'ToPort' => 80, 'IpRanges' => [{'CidrIp' => '10.0.0.0/8'}]}]}).body
348
- end
349
-
350
- tests("#authorize_security_group_ingress('fog_security_group', {'IpPermissions' => [{'IpProtocol' => 'tcp', 'FromPort' => 80, 'ToPort' => 80, 'IpRanges' => [{'CidrIp' => '10.0.0.0/8'}]}]})").raises(Fog::AWS::Compute::Error) do
351
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', {'IpPermissions' => [{'IpProtocol' => 'tcp', 'FromPort' => 80, 'ToPort' => 80, 'IpRanges' => [{'CidrIp' => '10.0.0.0/8'}]}]})
352
- end
353
-
354
- tests("#authorize_security_group_ingress('fog_security_group', {'IpPermissions' => [{'Groups' => [{'GroupName' => '#{@other_security_group.name}'}], 'FromPort' => 80, 'ToPort' => 80, 'IpProtocol' => 'tcp'}]})").formats(AWS::Compute::Formats::BASIC) do
355
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', {'IpPermissions' => [{'Groups' => [{'GroupName' => @other_security_group.name}], 'FromPort' => 80, 'ToPort' => 80, 'IpProtocol' => 'tcp'}]}).body
356
- end
357
-
358
- tests("#delete_security_group('#{@other_security_group.name}')").raises(Fog::AWS::Compute::Error) do
359
- Fog::Compute[:aws].delete_security_group(@other_security_group.name)
360
- end
361
-
362
- broken_params = [
363
- {},
364
- { "IpProtocol" => "what" },
365
- { "IpProtocol" => "tcp" },
366
- { "IpProtocol" => "what", "FromPort" => 1, "ToPort" => 1 },
367
- ]
368
- broken_params += broken_params.map do |broken_params_item|
369
- { "IpPermissions" => [broken_params_item] }
370
- end
371
- broken_params += [
372
- { "IpPermissions" => [] },
373
- { "IpPermissions" => nil }
374
- ]
375
-
376
- broken_params.each do |broken_params_item|
377
- tests("#authorize_security_group_ingress('fog_security_group', #{broken_params_item.inspect})").raises(Fog::AWS::Compute::Error) do
378
- Fog::Compute[:aws].authorize_security_group_ingress('fog_security_group', broken_params_item)
379
- end
380
-
381
- tests("#revoke_security_group_ingress('fog_security_group', #{broken_params_item.inspect})").raises(Fog::AWS::Compute::Error) do
382
- Fog::Compute[:aws].revoke_security_group_ingress('fog_security_group', broken_params_item)
383
- end
384
- end
385
-
386
- tests("#revoke_security_group_ingress('not_a_group_name', {'FromPort' => 80, 'IpProtocol' => 'tcp', 'toPort' => 80})").raises(Fog::AWS::Compute::NotFound) do
387
- Fog::Compute[:aws].revoke_security_group_ingress(
388
- 'not_a_group_name',
389
- {
390
- 'FromPort' => 80,
391
- 'IpProtocol' => 'tcp',
392
- 'ToPort' => 80,
393
- }
394
- )
395
- end
396
-
397
- tests("#revoke_security_group_ingress('not_a_group_name', {'SourceSecurityGroupName' => 'not_a_group_name', 'SourceSecurityGroupOwnerId' => '#{@owner_id}'})").raises(Fog::AWS::Compute::NotFound) do
398
- Fog::Compute[:aws].revoke_security_group_ingress(
399
- 'not_a_group_name',
400
- {
401
- 'SourceSecurityGroupName' => 'not_a_group_name',
402
- 'SourceSecurityGroupOwnerId' => @owner_id
403
- }
404
- )
405
- end
406
-
407
- tests("#delete_security_group('not_a_group_name')").raises(Fog::AWS::Compute::NotFound) do
408
- Fog::Compute[:aws].delete_security_group('not_a_group_name')
409
- end
410
-
411
- @rds_security_group = Fog::AWS[:rds].security_groups.create(:id => "rdsgroup", :description => 'fog rds test')
412
-
413
- tests("#delete_security_group('when authorized to an rds firewall')").raises(Fog::AWS::Compute::Error) do
414
- @rds_security_group.authorize_ec2_security_group(@security_group.name)
415
- Fog::Compute[:aws].delete_security_group(@security_group.name)
416
- end
417
-
418
- @rds_security_group.destroy
419
-
420
- @security_group.destroy
421
- @other_security_group.destroy
422
-
423
- tests("#delete_security_group('default')").raises(Fog::AWS::Compute::Error) do
424
- Fog::Compute[:aws].delete_security_group('default')
425
- end
426
-
427
- broken_params = [
428
- ['fog_security_group', { 'GroupName' => 'fog_security_group' }],
429
- [nil, nil],
430
- [nil, { 'GroupId' => nil }],
431
- [nil, { 'GroupName' => nil, 'GroupId' => nil }]
432
- ]
433
-
434
- broken_params.each do |list_elem|
435
- tests("#authorize_security_group_ingress(#{list_elem[0].inspect}, #{list_elem[1].inspect})").raises(Fog::AWS::Compute::Error) do
436
- Fog::Compute[:aws].authorize_security_group_ingress(list_elem[0], list_elem[1])
437
- end
438
-
439
- tests("#revoke_security_group_ingress(#{list_elem[0].inspect}, #{list_elem[1].inspect})").raises(Fog::AWS::Compute::Error) do
440
- Fog::Compute[:aws].revoke_security_group_ingress(list_elem[0], list_elem[1])
441
- end
442
- end
443
-
444
- end
445
-
446
- end
@@ -1,77 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | snapshot requests', ['aws']) do
2
-
3
- @snapshot_format = {
4
- 'description' => Fog::Nullable::String,
5
- 'encrypted' => Fog::Boolean,
6
- 'ownerId' => String,
7
- 'progress' => String,
8
- 'snapshotId' => String,
9
- 'startTime' => Time,
10
- 'status' => String,
11
- 'volumeId' => String,
12
- 'volumeSize' => Integer
13
- }
14
-
15
- @snapshots_format = {
16
- 'requestId' => String,
17
- 'snapshotSet' => [@snapshot_format.merge('tagSet' => {})]
18
- }
19
-
20
- @snapshot_copy_result = {
21
- 'requestId' => String,
22
- 'snapshotId' => String
23
- }
24
-
25
- @volume = Fog::Compute[:aws].volumes.create(:availability_zone => 'us-east-1a', :size => 1)
26
-
27
- tests('success') do
28
-
29
- @snapshot_id = nil
30
-
31
- tests("#create_snapshot(#{@volume.identity})").formats(@snapshot_format.merge('progress' => NilClass, 'requestId' => String)) do
32
- data = Fog::Compute[:aws].create_snapshot(@volume.identity).body
33
- @snapshot_id = data['snapshotId']
34
- data
35
- end
36
-
37
- Fog.wait_for { Fog::Compute[:aws].snapshots.get(@snapshot_id) }
38
- Fog::Compute[:aws].snapshots.get(@snapshot_id).wait_for { ready? }
39
-
40
- tests("#describe_snapshots").formats(@snapshots_format) do
41
- Fog::Compute[:aws].describe_snapshots.body
42
- end
43
-
44
- tests("#describe_snapshots('snapshot-id' => '#{@snapshot_id}')").formats(@snapshots_format) do
45
- Fog::Compute[:aws].describe_snapshots('snapshot-id' => @snapshot_id).body
46
- end
47
-
48
- tests("#copy_snapshot (#{@snapshot_id}, 'us-east-1')").formats(@snapshot_copy_result) do
49
- data = Fog::Compute.new(:provider => :aws, :region => "us-west-1").copy_snapshot(@snapshot_id, "us-east-1").body
50
- @west_snapshot_id = data['snapshotId']
51
- data
52
- end
53
-
54
- tests("#delete_snapshots(#{@snapshot_id})").formats(AWS::Compute::Formats::BASIC) do
55
- Fog::Compute[:aws].delete_snapshot(@snapshot_id).body
56
- end
57
-
58
- #NOTE: waiting for the copy to complete can sometimes take up to 5 minutes (but sometimes it's nearly instant)
59
- #for faster tests: comment out the rest of this block
60
- Fog.wait_for { Fog::Compute.new(:provider => :aws, :region => "us-west-1").snapshots.get(@west_snapshot_id) }
61
-
62
- tests("#delete_snapshots(#{@west_snapshot_id})").formats(AWS::Compute::Formats::BASIC) do
63
- Fog::Compute.new(:provider => :aws, :region => "us-west-1").delete_snapshot(@west_snapshot_id).body
64
- end
65
-
66
- end
67
- tests('failure') do
68
-
69
- tests("#delete_snapshot('snap-00000000')").raises(Fog::AWS::Compute::NotFound) do
70
- Fog::Compute[:aws].delete_snapshot('snap-00000000')
71
- end
72
-
73
- end
74
-
75
- @volume.destroy
76
-
77
- end
@@ -1,47 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | spot datafeed subscription requests', ['aws']) do
2
- @spot_datafeed_subscription_format = {
3
- 'spotDatafeedSubscription' => {
4
- 'bucket' => String,
5
- 'ownerId' => String,
6
- 'prefix' => String,
7
- 'state' => String
8
- },
9
- 'requestId' => String
10
- }
11
-
12
- @directory = Fog::Storage[:aws].directories.create(:key => 'fogspotdatafeedsubscriptiontests')
13
-
14
- tests('success') do
15
- pending if Fog.mocking?
16
-
17
- tests("#create_spot_datafeed_subscription('fogspotdatafeedsubscriptiontests', 'fogspotdatafeedsubscription/')").formats(@spot_datafeed_subscription_format) do
18
- Fog::Compute[:aws].create_spot_datafeed_subscription('fogspotdatafeedsubscriptiontests', 'fogspotdatafeedsubscription/').body
19
- end
20
-
21
- tests("duplicate #create_spot_datafeed_subscription('fogspotdatafeedsubscriptiontests', 'fogspotdatafeedsubscription/')").succeeds do
22
- Fog::Compute[:aws].create_spot_datafeed_subscription('fogspotdatafeedsubscriptiontests', 'fogspotdatafeedsubscription/')
23
- end
24
-
25
- tests("#describe_spot_datafeed_subscription").formats(@spot_datafeed_subscription_format) do
26
- Fog::Compute[:aws].describe_spot_datafeed_subscription.body
27
- end
28
-
29
- tests("#delete_spot_datafeed_subscription").formats(AWS::Compute::Formats::BASIC) do
30
- Fog::Compute[:aws].delete_spot_datafeed_subscription.body
31
- end
32
-
33
- tests("duplicate #delete_spot_datafeed_subscription").succeeds do
34
- Fog::Compute[:aws].delete_spot_datafeed_subscription
35
- end
36
- end
37
-
38
- tests('failure') do
39
- pending if Fog.mocking?
40
-
41
- tests("#describe_spot_datafeed_subscription").raises(Fog::AWS::Compute::NotFound) do
42
- Fog::Compute[:aws].describe_spot_datafeed_subscription
43
- end
44
- end
45
-
46
- @directory.destroy
47
- end
@@ -1,55 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | spot instance requests', ['aws']) do
2
-
3
- @spot_instance_requests_format = {
4
- 'spotInstanceRequestSet' => [{
5
- 'createTime' => Time,
6
- 'instanceId' => Fog::Nullable::String,
7
- 'launchedAvailabilityZone' => Fog::Nullable::String,
8
- 'launchSpecification' => {
9
- 'blockDeviceMapping' => [],
10
- 'groupSet' => [String],
11
- 'keyName' => Fog::Nullable::String,
12
- 'imageId' => String,
13
- 'instanceType' => String,
14
- 'monitoring' => Fog::Boolean,
15
- 'ebsOptimized' => Fog::Boolean,
16
- 'subnetId' => Fog::Nullable::String,
17
- 'iamInstanceProfile' => Fog::Nullable::Hash,
18
- },
19
- 'productDescription' => String,
20
- 'spotInstanceRequestId' => String,
21
- 'spotPrice' => Float,
22
- 'state' => String,
23
- 'type' => String,
24
- 'fault' => Fog::Nullable::Hash,
25
- }],
26
- 'requestId' => String
27
- }
28
-
29
- @cancel_spot_instance_request_format = {
30
- 'spotInstanceRequestSet' => [{
31
- 'spotInstanceRequestId' => String,
32
- 'state' => String
33
- }],
34
- 'requestId' => String
35
- }
36
-
37
- tests('success') do
38
-
39
- tests("#request_spot_instances('ami-3202f25b', 't1.micro', '0.001')").formats(@spot_instance_requests_format) do
40
- data = Fog::Compute[:aws].request_spot_instances('ami-3202f25b', 't1.micro', '0.001',{'LaunchSpecification.EbsOptimized' => false}).body
41
- @spot_instance_request_id = data['spotInstanceRequestSet'].first['spotInstanceRequestId']
42
- data
43
- end
44
-
45
- tests("#describe_spot_instance_requests").formats(@spot_instance_requests_format) do
46
- data = Fog::Compute[:aws].describe_spot_instance_requests('spot-instance-request-id' => [@spot_instance_request_id]).body
47
- end
48
-
49
- tests("#cancel_spot_instance_requests('#{@spot_instance_request_id}')").formats(@cancel_spot_instance_request_format) do
50
- Fog::Compute[:aws].cancel_spot_instance_requests(@spot_instance_request_id).body
51
- end
52
-
53
- end
54
-
55
- end
@@ -1,23 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | spot price history requests', ['aws']) do
2
-
3
- @spot_price_history_format = {
4
- 'spotPriceHistorySet' => [{
5
- 'availabilityZone' => String,
6
- 'instanceType' => String,
7
- 'spotPrice' => Float,
8
- 'productDescription' => String,
9
- 'timestamp' => Time
10
- }],
11
- 'requestId' => String,
12
- 'nextToken' => Fog::Nullable::String
13
- }
14
-
15
- tests('success') do
16
-
17
- tests("#describe_spot_price_history").formats(@spot_price_history_format) do
18
- Fog::Compute[:aws].describe_spot_price_history.body
19
- end
20
-
21
- end
22
-
23
- end