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,87 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | subnet requests', ['aws']) do
2
-
3
- @subnet_format = {
4
- 'subnetId' => String,
5
- 'state' => String,
6
- 'vpcId' => String,
7
- 'cidrBlock' => String,
8
- 'availableIpAddressCount' => String,
9
- 'availabilityZone' => String,
10
- 'tagSet' => Hash,
11
- 'mapPublicIpOnLaunch' => Fog::Boolean,
12
- 'defaultForAz' => Fog::Boolean,
13
- }
14
-
15
- @single_subnet_format = {
16
- 'subnet' => @subnet_format,
17
- 'requestId' => String,
18
- }
19
-
20
- @subnets_format = {
21
- 'subnetSet' => [@subnet_format],
22
- 'requestId' => String
23
- }
24
-
25
- @modify_subnet_format = {
26
- 'requestId' => String,
27
- 'return' => Fog::Boolean
28
- }
29
-
30
- @vpc_network = '10.0.10.0/24'
31
- @vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => @vpc_network)
32
- @vpc_id = @vpc.id
33
-
34
- tests('success') do
35
- @subnet_id = nil
36
- @subnet_network = '10.0.10.16/28'
37
-
38
- tests("#create_subnet('#{@vpc_id}', '#{@subnet_network}')").formats(@single_subnet_format) do
39
- data = Fog::Compute[:aws].create_subnet(@vpc_id, @subnet_network).body
40
- @subnet_id = data['subnet']['subnetId']
41
- data
42
- end
43
-
44
- tests("modify_subnet('#{@subnet_id}'").formats(@modify_subnet_format) do
45
- Fog::Compute[:aws].modify_subnet_attribute(@subnet_id, 'MapPublicIpOnLaunch' => true).body
46
- end
47
-
48
- @vpc2=Fog::Compute[:aws].vpcs.create('cidr_block' => @vpc_network)
49
- @vpc2_id = @vpc2.id
50
-
51
- # Create a second subnet in a second VPC with the same netblock
52
- tests("#create_subnet('#{@vpc2_id}', '#{@subnet_network}')").formats(@single_subnet_format) do
53
- data = Fog::Compute[:aws].create_subnet(@vpc2_id, @subnet_network).body
54
- @subnet2_id = data['subnet']['subnetId']
55
- data
56
- end
57
-
58
- Fog::Compute[:aws].delete_subnet(@subnet2_id)
59
-
60
- tests('#describe_subnets').formats(@subnets_format) do
61
- Fog::Compute[:aws].describe_subnets.body
62
- end
63
-
64
- tests("#delete_subnet('#{@subnet_id}')").formats(AWS::Compute::Formats::BASIC) do
65
- Fog::Compute[:aws].delete_subnet(@subnet_id).body
66
- end
67
- end
68
-
69
- tests('failure') do
70
- tests("#create_subnet('vpc-00000000', '10.0.10.0/16')").raises(Fog::AWS::Compute::NotFound) do
71
- Fog::Compute[:aws].create_subnet('vpc-00000000', '10.0.10.0/16')
72
- end
73
-
74
- tests("#create_subnet('#{@vpc_id}', '10.0.9.16/28')").raises(Fog::AWS::Compute::Error) do
75
- Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.9.16/28')
76
- end
77
-
78
- # Attempt to create two subnets with conflicting CIDRs in the same VPC
79
- tests("#create_subnet('#{@vpc_id}', '10.0.10.0/24'); " \
80
- "#create_subnet('#{@vpc_id}', '10.0.10.64/26'); ").raises(::Fog::AWS::Compute::Error) do
81
- Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.10.0/24')
82
- Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.10.64/26')
83
- end
84
- end
85
-
86
- @vpc.destroy
87
- end
@@ -1,101 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | tag requests', ['aws']) do
2
- Fog::AWS::Compute::Mock.reset if Fog.mocking?
3
-
4
- @tags_format = {
5
- 'tagSet' => [{
6
- 'key' => String,
7
- 'resourceId' => String,
8
- 'resourceType' => String,
9
- 'value' => Fog::Nullable::String
10
- }],
11
- 'requestId' => String
12
- }
13
-
14
- @volume = Fog::Compute[:aws].volumes.create(:availability_zone => 'us-east-1a', :size => 1)
15
- @volume.wait_for { ready? }
16
- @vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/24')
17
- @network_acl = Fog::Compute[:aws].network_acls.all('vpc-id' => @vpc.id, 'default' => true).first
18
-
19
- tests('success') do
20
- if Fog.mocking?
21
- @other_account = Fog::AWS::Compute.new(:aws_access_key_id => 'other', :aws_secret_access_key => 'account')
22
- @image_id = Fog::Compute[:aws].register_image('image', 'image', '/dev/sda1').body['imageId']
23
- end
24
-
25
- tests("#create_tags('#{@volume.identity}', 'foo' => 'bar')").formats(AWS::Compute::Formats::BASIC) do
26
- Fog::Compute[:aws].create_tags(@volume.identity, 'foo' => 'bar').body
27
- end
28
-
29
- if Fog.mocking?
30
- tests("#create_tags('#{@image_id}', 'foo' => 'baz')").formats(AWS::Compute::Formats::BASIC) do
31
- Fog::Compute[:aws].create_tags(@image_id, 'foo' => 'baz').body
32
- end
33
-
34
- tests("#create_tags('#{@vpc.id}', 'type' => 'vpc')").formats(AWS::Compute::Formats::BASIC) do
35
- Fog::Compute[:aws].create_tags(@vpc.id, 'type' => 'vpc').body
36
- end
37
-
38
- tests("#create_tags('#{@network_acl.network_acl_id}', 'type' => 'network_acl')").formats(AWS::Compute::Formats::BASIC) do
39
- Fog::Compute[:aws].create_tags(@network_acl.network_acl_id, 'type' => 'network_acl').body
40
- end
41
- end
42
-
43
- tests('#describe_tags').formats(@tags_format) do
44
- Fog::Compute[:aws].describe_tags.body
45
- end
46
-
47
- expected_identities = Fog.mocking? ? [@volume.identity, @image_id] : [@volume.identity]
48
- tests('#describe_tags').succeeds do
49
- (expected_identities - Fog::Compute[:aws].describe_tags.body['tagSet'].map {|t| t['resourceId'] }).empty?
50
- end
51
-
52
- tests("#describe_tags('key' => 'foo', 'value' => 'bar')").returns([@volume.identity]) do
53
- Fog::Compute[:aws].describe_tags('key' => 'foo', 'value' => 'bar').body['tagSet'].map {|t| t['resourceId'] }
54
- end
55
-
56
- if Fog.mocking?
57
- tests("#describe_tags('key' => 'foo', 'value' => 'baz')").returns([@image_id]) do
58
- Fog::Compute[:aws].describe_tags('key' => 'foo', 'value' => 'baz').body['tagSet'].map {|t| t['resourceId'] }
59
- end
60
-
61
- Fog::Compute[:aws].modify_image_attribute(@image_id, 'Add.UserId' => [@other_account.data[:owner_id]])
62
-
63
- tests("other_account#describe_tags('key' => 'foo', 'value' => 'baz')").returns([]) do
64
- @other_account.describe_tags('key' => 'foo', 'value' => 'baz').body['tagSet'].map {|t| t['resourceId'] }
65
- end
66
-
67
- tests("other_account#create_tags('#{@image_id}', 'foo' => 'quux')").formats(AWS::Compute::Formats::BASIC) do
68
- @other_account.create_tags(@image_id, 'foo' => 'quux').body
69
- end
70
-
71
- tests("other_account#describe_tags('key' => 'foo', 'value' => 'quux')").returns([@image_id]) do
72
- @other_account.describe_tags('key' => 'foo', 'value' => 'quux').body['tagSet'].map {|t| t['resourceId'] }
73
- end
74
- end
75
-
76
- @volume.destroy
77
-
78
- tests("#delete_tags('#{@volume.identity}', 'foo' => 'bar')").formats(AWS::Compute::Formats::BASIC) do
79
- Fog::Compute[:aws].delete_tags(@volume.identity, 'foo' => 'bar').body
80
- end
81
- end
82
-
83
- tests('failure') do
84
- tests("#create_tags('vol-00000000', 'baz' => 'qux')").raises(Fog::Service::NotFound) do
85
- Fog::Compute[:aws].create_tags('vol-00000000', 'baz' => 'qux')
86
- end
87
-
88
- tests("#create_tags('abc-12345678', 'type' => 'fake_type')").raises(Fog::Service::NotFound) do
89
- Fog::Compute[:aws].create_tags('abc-12345678', 'type' => 'fake_type')
90
- end
91
-
92
- tests("#create_tags('vpc-12345678', 'type' => 'non-existent_vpc)").raises(Fog::Service::NotFound) do
93
- Fog::Compute[:aws].create_tags('vpc-12345678', 'type' => 'non-existent_vpc')
94
- end
95
-
96
- tests("#create_tags('vpc-123', 'type' => 'bad_resource_id)").raises(Fog::Service::NotFound) do
97
- Fog::Compute[:aws].create_tags('vpc-123', 'type' => 'bad_resource_id')
98
- end
99
- end
100
- Fog::AWS::Compute::Mock.reset if Fog.mocking?
101
- end
@@ -1,263 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | volume requests', ['aws']) do
2
-
3
- @volume_format = {
4
- 'availabilityZone' => String,
5
- 'createTime' => Time,
6
- 'encrypted' => Fog::Boolean,
7
- 'iops' => Fog::Nullable::Integer,
8
- 'requestId' => String,
9
- 'size' => Integer,
10
- 'snapshotId' => Fog::Nullable::String,
11
- 'status' => String,
12
- 'volumeId' => String,
13
- 'volumeType' => String
14
- }
15
-
16
- @volume_attachment_format = {
17
- 'attachTime' => Time,
18
- 'device' => String,
19
- 'instanceId' => String,
20
- 'requestId' => String,
21
- 'status' => String,
22
- 'volumeId' => String
23
- }
24
-
25
- @volume_status_format = {
26
- 'volumeStatusSet' => [{
27
- 'availabilityZone' => String,
28
- 'volumeId' => String,
29
- 'volumeStatus' => {
30
- 'status' => String,
31
- 'details' => [{
32
- 'name' => String,
33
- 'status' => String
34
- }]
35
- },
36
- 'actionsSet' => [{
37
- 'code' => String,
38
- 'description' => String,
39
- 'eventId' => String,
40
- 'eventType' => String
41
- }],
42
- 'eventsSet' => [{
43
- 'description' => String,
44
- 'eventId' => String,
45
- 'eventType' => String,
46
- 'notBefore' => Time,
47
- 'notAfter' => Time
48
- }]
49
- }],
50
- 'requestId' => String
51
- }
52
-
53
- @volumes_format = {
54
- 'volumeSet' => [{
55
- 'availabilityZone' => String,
56
- 'attachmentSet' => Array,
57
- 'createTime' => Time,
58
- 'encrypted' => Fog::Boolean,
59
- 'iops' => Fog::Nullable::Integer,
60
- 'size' => Integer,
61
- 'snapshotId' => Fog::Nullable::String,
62
- 'kmsKeyId' => Fog::Nullable::String,
63
- 'status' => String,
64
- 'tagSet' => Hash,
65
- 'volumeId' => String,
66
- 'volumeType' => String
67
- }],
68
- 'requestId' => String
69
- }
70
-
71
- @volume_modification_format = {
72
- 'endTime' => Fog::Nullable::Time,
73
- 'modificationState' => String,
74
- 'originalIops' => Fog::Nullable::Integer,
75
- 'originalSize' => Fog::Nullable::Integer,
76
- 'originalVolumeType' => Fog::Nullable::String,
77
- 'startTime' => Time,
78
- 'targetIops' => Fog::Nullable::Integer,
79
- 'targetSize' => Fog::Nullable::Integer,
80
- 'targetVolumeType' => Fog::Nullable::String,
81
- 'volumeId' => String,
82
- }
83
-
84
- @modify_volume_format = {
85
- 'requestId' => String,
86
- 'volumeModification' => @volume_modification_format
87
- }
88
-
89
- @describe_volume_modifications_format = {
90
- 'requestId' => String,
91
- 'volumeModificationSet' => [@volume_modification_format]
92
- }
93
-
94
- @server = Fog::Compute[:aws].servers.create
95
- @server.wait_for { ready? }
96
-
97
- tests('success') do
98
- @volume_id = nil
99
-
100
- tests('#create_volume').formats(@volume_format) do
101
- data = Fog::Compute[:aws].create_volume(@server.availability_zone, 1).body
102
- @volume_id = data['volumeId']
103
- data
104
- end
105
-
106
- Fog::Compute[:aws].delete_volume(@volume_id)
107
-
108
- tests('#create_volume from snapshot').formats(@volume_format) do
109
- volume = Fog::Compute[:aws].volumes.create(:availability_zone => 'us-east-1d', :size => 1)
110
- volume.wait_for { ready? }
111
-
112
- snapshot = Fog::Compute[:aws].create_snapshot(volume.identity).body
113
- Fog::Compute[:aws].snapshots.new(snapshot).wait_for { ready? }
114
-
115
- data = Fog::Compute[:aws].create_volume(@server.availability_zone, nil, 'SnapshotId' => snapshot['snapshotId']).body
116
- @volume_id = data['volumeId']
117
- data
118
- end
119
-
120
- Fog::Compute[:aws].delete_volume(@volume_id)
121
-
122
- tests('#create_volume with type and iops').formats(@volume_format) do
123
- data = Fog::Compute[:aws].create_volume(@server.availability_zone, 10, 'VolumeType' => 'io1', 'Iops' => 100).body
124
- @volume_id = data['volumeId']
125
- data
126
- end
127
-
128
- Fog::Compute[:aws].delete_volume(@volume_id)
129
-
130
- tests('#create_volume with encryption').returns(true) do
131
- volume = Fog::Compute[:aws].volumes.create(:availability_zone => 'us-east-1d', :size => 1, :encrypted => true)
132
- @volume_id = volume.id
133
- volume.reload.encrypted
134
- end
135
-
136
- Fog::Compute[:aws].delete_volume(@volume_id)
137
-
138
- tests('#create_volume from snapshot with size').formats(@volume_format) do
139
- volume = Fog::Compute[:aws].volumes.create(:availability_zone => 'us-east-1d', :size => 1, :type => 'gp2')
140
- volume.wait_for { ready? }
141
-
142
- snapshot = Fog::Compute[:aws].create_snapshot(volume.identity).body
143
- Fog::Compute[:aws].snapshots.new(snapshot).wait_for { ready? }
144
-
145
- data = Fog::Compute[:aws].create_volume(@server.availability_zone, 1, 'SnapshotId' => snapshot['snapshotId'], 'VolumeType' => 'gp2').body
146
- @volume_id = data['volumeId']
147
- data
148
- end
149
-
150
- Fog::Compute[:aws].volumes.get(@volume_id).wait_for { ready? }
151
-
152
- tests('#describe_volumes').formats(@volumes_format) do
153
- Fog::Compute[:aws].describe_volumes.body
154
- end
155
-
156
- tests("#describe_volumes('volume-id' => #{@volume_id})").formats(@volumes_format) do
157
- Fog::Compute[:aws].describe_volumes('volume-id' => @volume_id).body
158
- end
159
-
160
- tests("#attach_volume(#{@server.identity}, #{@volume_id}, '/dev/sdh')").formats(@volume_attachment_format) do
161
- Fog::Compute[:aws].attach_volume(@server.identity, @volume_id, '/dev/sdh').body
162
- end
163
-
164
- Fog::Compute[:aws].volumes.get(@volume_id).wait_for { state == 'in-use' }
165
-
166
- tests("#describe_volume('attachment.device' => '/dev/sdh')").formats(@volumes_format) do
167
- Fog::Compute[:aws].describe_volumes('attachment.device' => '/dev/sdh').body
168
- end
169
-
170
- tests("#describe_volume_status('volume-id' => #{@volume_id})").formats(@volume_status_format) do
171
- pending if Fog.mocking?
172
- Fog::Compute[:aws].describe_volume_status('volume-id' => @volume_id).body
173
- end
174
-
175
- tests("#detach_volume('#{@volume_id}')").formats(@volume_attachment_format) do
176
- Fog::Compute[:aws].detach_volume(@volume_id).body
177
- end
178
-
179
- Fog::Compute[:aws].volumes.get(@volume_id).wait_for { ready? }
180
-
181
- tests("#modify_volume('#{@volume_id}', 'Size' => 100, 'VolumeType' => 'io1', 'Iops' => 5000").formats(@modify_volume_format) do
182
- Fog::Compute[:aws].modify_volume(@volume_id, 'Size' => 100, 'VolumeType' => 'io1', 'Iops' => 5000).body
183
- end
184
-
185
- tests("#describe_volumes_modifications('volume-id' => '#{@volume_id}')").formats(@describe_volume_modifications_format) do
186
- Fog.wait_for do
187
- Fog::Compute[:aws].describe_volumes_modifications('volume-id' => @volume_id).body['volumeModificationSet'].first['modificationState'] == 'completed'
188
- end
189
-
190
- volume = Fog::Compute[:aws].describe_volumes('volume-id' => @volume_id).body['volumeSet'].first
191
- returns(100) { volume['size'] }
192
- returns('io1') { volume['volumeType'] }
193
- returns(5000) { volume['iops'] }
194
-
195
- Fog::Compute[:aws].describe_volumes_modifications('volume-id' => @volume_id).body
196
- end
197
-
198
- tests("#modify_volume_attribute('#{@volume_id}', true)").formats(AWS::Compute::Formats::BASIC) do
199
- Fog::Compute[:aws].modify_volume_attribute(@volume_id, true).body
200
- end
201
-
202
- tests("#delete_volume('#{@volume_id}')").formats(AWS::Compute::Formats::BASIC) do
203
- Fog::Compute[:aws].delete_volume(@volume_id).body
204
- end
205
- end
206
-
207
- tests('failure') do
208
- @volume = Fog::Compute[:aws].volumes.create(:availability_zone => @server.availability_zone, :size => 1)
209
-
210
- tests("#attach_volume('i-00000000', '#{@volume.identity}', '/dev/sdh')").raises(Fog::AWS::Compute::NotFound) do
211
- Fog::Compute[:aws].attach_volume('i-00000000', @volume.identity, '/dev/sdh')
212
- end
213
-
214
- tests("#attach_volume('#{@server.identity}', 'vol-00000000', '/dev/sdh')").raises(Fog::AWS::Compute::NotFound) do
215
- Fog::Compute[:aws].attach_volume(@server.identity, 'vol-00000000', '/dev/sdh')
216
- end
217
-
218
- tests("#detach_volume('vol-00000000')").raises(Fog::AWS::Compute::NotFound) do
219
- Fog::Compute[:aws].detach_volume('vol-00000000')
220
- end
221
-
222
- tests("#modify_volume_attribute('vol-00000000', true)").raises(Fog::AWS::Compute::NotFound) do
223
- Fog::Compute[:aws].modify_volume_attribute('vol-00000000', true)
224
- end
225
-
226
- tests("#detach_volume('#{@volume.identity}')").raises(Fog::AWS::Compute::Error) do
227
- Fog::Compute[:aws].detach_volume(@volume.identity)
228
- end
229
-
230
- tests("#delete_volume('vol-00000000')").raises(Fog::AWS::Compute::NotFound) do
231
- Fog::Compute[:aws].delete_volume('vol-00000000')
232
- end
233
-
234
- # Iops required
235
- tests("#create_volume('#{@server.availability_zone}', 10, 'VolumeType' => 'io1')").raises(Fog::AWS::Compute::Error) do
236
- Fog::Compute[:aws].create_volume(@server.availability_zone, 10, 'VolumeType' => 'io1')
237
- end
238
-
239
- # size too small for iops
240
- tests("#create_volume('#{@server.availability_zone}', 9, 'VolumeType' => 'io1', 'Iops' => 100)").raises(Fog::AWS::Compute::Error) do
241
- Fog::Compute[:aws].create_volume(@server.availability_zone, 9, 'VolumeType' => 'io1', 'Iops' => 100)
242
- end
243
-
244
- # iops:size ratio too big
245
- tests("#create_volume('#{@server.availability_zone}', 10, 'VolumeType' => 'io1', 'Iops' => 301)").raises(Fog::AWS::Compute::Error) do
246
- Fog::Compute[:aws].create_volume(@server.availability_zone, 10, 'VolumeType' => 'io1', 'Iops' => 301)
247
- end
248
-
249
- # iops invalid value (lower than 100)
250
- tests("#create_volume('#{@server.availability_zone}', 10, 'VolumeType' => 'io1', 'Iops' => 99)").raises(Fog::AWS::Compute::Error) do
251
- Fog::Compute[:aws].create_volume(@server.availability_zone, 10, 'VolumeType' => 'io1', 'Iops' => 99)
252
- end
253
-
254
- # iops invalid value (greater than 4000)
255
- tests("#create_volume('#{@server.availability_zone}', 1024, 'VolumeType' => 'io1', 'Iops' => 4001)").raises(Fog::AWS::Compute::Error) do
256
- Fog::Compute[:aws].create_volume(@server.availability_zone, 1024, 'VolumeType' => 'io1', 'Iops' => 4001)
257
- end
258
-
259
- @volume.destroy
260
- end
261
-
262
- @server.destroy
263
- end
@@ -1,216 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | vpc requests', ['aws']) do
2
-
3
- @create_vpcs_format = {
4
- 'vpcSet' => [{
5
- 'vpcId' => String,
6
- 'state' => String,
7
- 'cidrBlock' => String,
8
- 'dhcpOptionsId' => String,
9
- 'tagSet' => Hash
10
- }],
11
- 'requestId' => String
12
- }
13
-
14
- @describe_vpcs_classic_link_format = {
15
- 'vpcSet' => [{
16
- 'vpcId' => String,
17
- 'tagSet' => Hash,
18
- 'classicLinkEnabled' => Fog::Boolean
19
- }],
20
- 'requestId' => String
21
- }
22
- @describe_classic_link_instances = {
23
- 'instancesSet' => [{
24
- 'vpcId' => String,
25
- 'tagSet' => Hash,
26
- 'instanceId' => String,
27
- 'groups' => [{'groupId' => String, 'groupName' => String}]
28
- }],
29
- 'requestId' => String,
30
- 'NextToken' => Fog::Nullable::String
31
- }
32
-
33
- @describe_vpcs_format = {
34
- 'vpcSet' => [{
35
- 'vpcId' => String,
36
- 'state' => String,
37
- 'cidrBlock' => String,
38
- 'dhcpOptionsId' => String,
39
- 'tagSet' => Hash,
40
- 'instanceTenancy' => Fog::Nullable::String,
41
- 'cidrBlockAssociationSet' => [{'cidrBlock' => String, 'associationId' => String, 'state' => String}],
42
- 'ipv6CidrBlockAssociationSet' => [{'ipv6CidrBlock' => String, 'associationId' => String, 'state' => String}]
43
- }],
44
- 'requestId' => String
45
- }
46
-
47
- @describe_vpc_classic_link_dns_support_format = {
48
- "vpcs" => [{
49
- "vpcId" => String,
50
- "classicLinkDnsSupported" => Fog::Boolean
51
- }]
52
- }
53
-
54
- tests('success') do
55
-
56
- @vpc_id = nil
57
-
58
- tests('#create_vpc').formats(@create_vpcs_format) do
59
- data = Fog::Compute[:aws].create_vpc('10.255.254.0/28').body
60
- @vpc_id = data['vpcSet'].first['vpcId']
61
- data
62
- end
63
-
64
- tests('#create_vpc').formats(@create_vpcs_format) do
65
- data = Fog::Compute[:aws].create_vpc('10.255.254.0/28',
66
- {'InstanceTenancy' => 'default'}).body
67
- @vpc_id = data['vpcSet'].first['vpcId']
68
- data
69
- end
70
-
71
- tests('#describe_vpcs').formats(@describe_vpcs_format) do
72
- Fog::Compute[:aws].describe_vpcs.body
73
- end
74
-
75
- [ 'enableDnsSupport', 'enableDnsHostnames'].each do |attrib|
76
- tests("#describe_vpc_attribute('#{@vpc_id}', #{attrib})").returns(@vpc_id) do
77
- Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, attrib).body['vpcId']
78
- end
79
- end
80
-
81
- tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsSupport.Value' => false})").formats(AWS::Compute::Formats::BASIC) do
82
- Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsSupport.Value' => false}).body
83
- end
84
- tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsSupport')").returns(false) do
85
- Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsSupport').body["enableDnsSupport"]
86
- end
87
- tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsSupport.Value' => true})").formats(AWS::Compute::Formats::BASIC) do
88
- Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsSupport.Value' => true}).body
89
- end
90
- tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsSupport')").returns(true) do
91
- Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsSupport').body["enableDnsSupport"]
92
- end
93
-
94
- tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsHostnames.Value' => true})").formats(AWS::Compute::Formats::BASIC) do
95
- Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsHostnames.Value' => true}).body
96
- end
97
- tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsHostnames')").returns(true) do
98
- Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsHostnames').body["enableDnsHostnames"]
99
- end
100
- tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsHostnames.Value' => false})").formats(AWS::Compute::Formats::BASIC) do
101
- Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsHostnames.Value' => false}).body
102
- end
103
- tests("#describe_vpc_attribute(#{@vpc_id}, 'enableDnsHostnames')").returns(false) do
104
- Fog::Compute[:aws].describe_vpc_attribute(@vpc_id, 'enableDnsHostnames').body["enableDnsHostnames"]
105
- end
106
-
107
- tests("#modify_vpc_attribute('#{@vpc_id}')").raises(Fog::AWS::Compute::Error) do
108
- Fog::Compute[:aws].modify_vpc_attribute(@vpc_id).body
109
- end
110
-
111
- tests("#modify_vpc_attribute('#{@vpc_id}', {'EnableDnsSupport.Value' => true, 'EnableDnsHostnames.Value' => true})").raises(Fog::AWS::Compute::Error) do
112
- Fog::Compute[:aws].modify_vpc_attribute(@vpc_id, {'EnableDnsSupport.Value' => true, 'EnableDnsHostnames.Value' => true}).body
113
- end
114
-
115
- # Create another vpc to test tag filters
116
- test_tags = {'foo' => 'bar'}
117
- @another_vpc = Fog::Compute[:aws].vpcs.create :cidr_block => '1.2.3.4/24', :tags => test_tags
118
-
119
- tests("#describe_vpcs('tag-key' => 'foo')").formats(@describe_vpcs_format)do
120
- body = Fog::Compute[:aws].describe_vpcs('tag-key' => 'foo').body
121
- tests("returns 1 vpc").returns(1) { body['vpcSet'].size }
122
- body
123
- end
124
-
125
- tests("#describe_vpcs('tag-value' => 'bar')").formats(@describe_vpcs_format)do
126
- body = Fog::Compute[:aws].describe_vpcs('tag-value' => 'bar').body
127
- tests("returns 1 vpc").returns(1) { body['vpcSet'].size }
128
- body
129
- end
130
-
131
- tests("#describe_vpcs('tag:foo' => 'bar')").formats(@describe_vpcs_format)do
132
- body = Fog::Compute[:aws].describe_vpcs('tag:foo' => 'bar').body
133
- tests("returns 1 vpc").returns(1) { body['vpcSet'].size }
134
- body
135
- end
136
-
137
- tests("describe_vpc_classic_link(:filters => {'tag-key' => 'foo'}").formats(@describe_vpcs_classic_link_format) do
138
- body = Fog::Compute[:aws].describe_vpc_classic_link(:filters => {'tag-key' => 'foo'}).body
139
- tests("returns 1 vpc").returns(1) { body['vpcSet'].size }
140
- body
141
- end
142
-
143
- tests("enable_vpc_classic_link").returns(true) do
144
- Fog::Compute[:aws].enable_vpc_classic_link @vpc_id
145
- body = Fog::Compute[:aws].describe_vpc_classic_link(:vpc_ids => [@vpc_id]).body
146
- body['vpcSet'].first['classicLinkEnabled']
147
- end
148
-
149
- @server = Fog::Compute[:aws].servers.create
150
- @server.wait_for {ready?}
151
-
152
- @group = Fog::Compute[:aws].security_groups.create :name => 'test-group', :description => 'vpc security group'
153
-
154
- tests("attach_classic_link_vpc") do
155
- Fog::Compute[:aws].attach_classic_link_vpc(@server.id, @vpc_id, [@group.group_id])
156
- end
157
-
158
- tests('describe_classic_link_instances').formats(@describe_classic_link_instances) do
159
- Fog::Compute[:aws].describe_classic_link_instances().body
160
- end
161
-
162
- tests("detach_classic_link_vpc").returns([]) do
163
- Fog::Compute[:aws].detach_classic_link_vpc(@server.id, @vpc_id)
164
- Fog::Compute[:aws].describe_classic_link_instances().body['instancesSet']
165
- end
166
-
167
- tests("enable_vpc_classic_link_dns_support('#{@vpc_id}')").formats(AWS::Compute::Formats::BASIC) do
168
- body = Fog::Compute[:aws].enable_vpc_classic_link_dns_support(@vpc_id).body
169
- body
170
- end
171
-
172
- tests("#describe_vpc_classic_link_dns_support").formats(@describe_vpc_classic_link_dns_support_format) do
173
- Fog::Compute[:aws].describe_vpc_classic_link_dns_support.body
174
- end
175
-
176
- tests("#describe_vpc_classic_link_dns_support(:vpc_ids => ['#{@vpc_id}'])").formats(@describe_vpc_classic_link_dns_support_format) do
177
- body = Fog::Compute[:aws].describe_vpc_classic_link_dns_support(:vpc_ids => [@vpc_id]).body
178
- returns(1) { body['vpcs'].count }
179
- returns(@vpc_id) { body['vpcs'].first['vpcId'] }
180
- returns(true) { body['vpcs'].first['classicLinkDnsSupported'] }
181
- body
182
- end
183
-
184
- tests("disable_vpc_classic_link_dns_support('#{@vpc_id}')").formats(AWS::Compute::Formats::BASIC) do
185
- Fog::Compute[:aws].disable_vpc_classic_link_dns_support(@vpc_id).body
186
- end
187
-
188
- tests("#describe_vpc_classic_link_dns_support(:vpc_ids => ['#{@vpc_id}'])").formats(@describe_vpc_classic_link_dns_support_format) do
189
- body = Fog::Compute[:aws].describe_vpc_classic_link_dns_support(:vpc_ids => [@vpc_id]).body
190
- returns(1) { body['vpcs'].count }
191
- returns(@vpc_id) { body['vpcs'].first['vpcId'] }
192
- returns(false) { body['vpcs'].first['classicLinkDnsSupported'] }
193
- body
194
- end
195
-
196
- if !Fog.mocking?
197
- @server.destroy
198
- @server.wait_for {state == 'terminated'}
199
- end
200
-
201
- tests("disable_vpc_classic_link").returns(false) do
202
- Fog::Compute[:aws].disable_vpc_classic_link @vpc_id
203
- body = Fog::Compute[:aws].describe_vpc_classic_link(:vpc_ids => [@vpc_id]).body
204
- body['vpcSet'].first['classicLinkEnabled']
205
- end
206
-
207
- tests("#delete_vpc('#{@vpc_id}')").formats(AWS::Compute::Formats::BASIC) do
208
- Fog::Compute[:aws].delete_vpc(@vpc_id).body
209
- end
210
-
211
- # Clean up
212
- Fog::Compute[:aws].delete_tags(@another_vpc.id, test_tags)
213
- @another_vpc.destroy
214
- Fog::AWS::Compute::Mock.reset if Fog.mocking?
215
- end
216
- end