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,169 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
2
- @describe_images_format = {
3
- 'imagesSet' => [{
4
- 'architecture' => String,
5
- 'blockDeviceMapping' => [Fog::Nullable::Hash],
6
- 'description' => Fog::Nullable::String,
7
- 'hypervisor' => String,
8
- 'imageId' => String,
9
- 'imageLocation' => String,
10
- 'imageOwnerAlias' => Fog::Nullable::String,
11
- 'imageOwnerId' => String,
12
- 'imageState' => String,
13
- 'imageType' => String,
14
- 'isPublic' => Fog::Boolean,
15
- 'kernelId' => String,
16
- 'name' => String,
17
- 'platform' => Fog::Nullable::String,
18
- 'productCodes' => [],
19
- 'ramdiskId' => Fog::Nullable::String,
20
- 'rootDeviceName' => String,
21
- 'rootDeviceType' => String,
22
- 'stateReason' => {},
23
- 'tagSet' => {},
24
- 'virtualizationType' => String,
25
- 'creationDate' => Fog::Nullable::Time,
26
- 'enaSupport' => Fog::Nullable::Boolean
27
- }],
28
- 'requestId' => String,
29
- }
30
-
31
- @register_image_format = {
32
- 'imageId' => String,
33
- 'requestId' => String
34
- }
35
-
36
- @modify_image_attribute_format = {
37
- 'return' => Fog::Boolean,
38
- 'requestId' => String
39
- }
40
- @describe_image_attribute_format = {
41
- 'requestId' => String,
42
- 'imageId' => String,
43
- 'launchPermission' => [Fog::Nullable::String]
44
- }
45
- @create_image_format = {
46
- 'requestId' => String,
47
- 'imageId' => String
48
- }
49
-
50
- @image_copy_result = {
51
- 'requestId' => String,
52
- 'imageId' => String
53
- }
54
-
55
- tests('success') do
56
- # the result for this is HUGE and relatively uninteresting...
57
- # tests("#describe_images").formats(@images_format) do
58
- # Fog::Compute[:aws].describe_images.body
59
- # end
60
- @image_id = 'ami-1aad5273'
61
-
62
- if Fog.mocking?
63
- @other_account = Fog::AWS::Compute.new(:aws_access_key_id => 'other', :aws_secret_access_key => 'account')
64
-
65
- @server = Fog::Compute[:aws].servers.create
66
- @server.wait_for{state == 'running'}
67
- @created_image
68
- tests("#create_image").formats(@create_image_format) do
69
- result = Fog::Compute[:aws].create_image(@server.id, 'Fog-Test-Image', 'Fog Test Image', false).body
70
- @created_image = Fog::Compute[:aws].images.get(result['imageId'])
71
- result
72
- end
73
- tests("#create_image - no reboot").formats(@create_image_format) do
74
- result = Fog::Compute[:aws].create_image(@server.id, 'Fog-Test-Image', 'Fog Test Image', true).body
75
- @created_image = Fog::Compute[:aws].images.get(result['imageId'])
76
- result
77
- end
78
- tests("#create_image - automatic ebs image registration").returns(true) do
79
- create_image_response = Fog::Compute[:aws].create_image(@server.id, 'Fog-Test-Image', 'Fog Test Image')
80
- Fog::Compute[:aws].images.get(create_image_response.body['imageId']) != nil
81
- end
82
- @server.destroy
83
-
84
- tests("#copy_image (#{@image_id}, 'eu-west-1')").formats(@image_copy_result) do
85
- data = Fog::Compute.new(:provider => :aws, :region => "us-west-1", :version => "2013-02-01").copy_image(@image_id, "eu-east-1").body
86
- @eu_image_id = data['imageId']
87
- data
88
- end
89
-
90
- tests("#register_image").formats(@register_image_format) do
91
- @image = Fog::Compute[:aws].register_image('image', 'image', '/dev/sda1').body
92
- end
93
-
94
- tests("#register_image - with ebs block device mapping").formats(@register_image_format) do
95
- @ebs_image = Fog::Compute[:aws].register_image('image', 'image', '/dev/sda1', [ { 'DeviceName' => '/dev/sdh', "SnapshotId" => "snap-123456789", "VolumeSize" => "10G", "DeleteOnTermination" => true}]).body
96
- end
97
-
98
- tests("#register_image - with ephemeral block device mapping").formats(@register_image_format) do
99
- @ephemeral_image = Fog::Compute[:aws].register_image('image', 'image', '/dev/sda1', [ { 'VirtualName' => 'ephemeral0', "DeviceName" => "/dev/sdb"} ]).body
100
- end
101
-
102
- @image_id = @image['imageId']
103
- sleep 1
104
-
105
- tests("#describe_images('Owner' => 'self')").formats(@describe_images_format) do
106
- Fog::Compute[:aws].describe_images('Owner' => 'self').body
107
- end
108
-
109
- tests("#describe_images('state' => 'available')").formats(@describe_images_format) do
110
- Fog::Compute[:aws].describe_images('state' => 'available').body
111
- end
112
-
113
- tests("other_account#describe_images('image-id' => '#{@image_id}')").returns([]) do
114
- @other_account.describe_images('image-id' => @image_id).body['imagesSet']
115
- end
116
-
117
- tests("#modify_image_attribute('#{@image_id}', 'Add.UserId' => ['#{@other_account.data[:owner_id]}'])").formats(@modify_image_attribute_format) do
118
- Fog::Compute[:aws].modify_image_attribute(@image_id, { 'Add.UserId' => [@other_account.data[:owner_id]] }).body
119
- end
120
-
121
- tests("#describe_image_attribute('#{@image_id}', 'launchPermission'])").formats(@describe_image_attribute_format) do
122
- Fog::Compute[:aws].describe_image_attribute(@image_id, 'launchPermission' ).body
123
- end
124
-
125
- tests("other_account#describe_images('image-id' => '#{@image_id}')").returns([@image_id]) do
126
- @other_account.describe_images('image-id' => @image_id).body['imagesSet'].map {|i| i['imageId'] }
127
- end
128
-
129
- tests("#modify_image_attribute('#{@image_id}', 'Remove.UserId' => ['#{@other_account.data[:owner_id]}'])").formats(@modify_image_attribute_format) do
130
- Fog::Compute[:aws].modify_image_attribute(@image_id, { 'Remove.UserId' => [@other_account.data[:owner_id]] }).body
131
- end
132
-
133
- tests("other_account#describe_images('image-id' => '#{@image_id}')").returns([]) do
134
- @other_account.describe_images('image-id' => @image_id).body['imagesSet']
135
- end
136
- end
137
-
138
- tests("#describe_images('image-id' => '#{@image_id}')").formats(@describe_images_format) do
139
- @other_image = Fog::Compute[:aws].describe_images('image-id' => @image_id).body
140
- end
141
-
142
- unless Fog.mocking?
143
- tests("#describe_images('Owner' => '#{@other_image['imageOwnerAlias']}', 'image-id' => '#{@image_id}')").formats(@describe_images_format) do
144
- Fog::Compute[:aws].describe_images('Owner' => @other_image['imageOwnerAlias'], 'image-id' => @image_id).body
145
- end
146
- end
147
-
148
- #NOTE: waiting for the image to complete can sometimes take up to 1 hour
149
- # for quicker tests: uncomment the rest of this block
150
- #Fog.wait_for { Fog::Compute.new(:provider => :aws, :region => "us-west-1").snapshots.get(@eu_image_id) }
151
-
152
- #tests("#delete_snapshots(#{@eu_image_id})").formats(AWS::Compute::Formats::BASIC) do
153
- # Fog::Compute.new(:provider => :aws, :region => "us-west-1").delete_snapshot(@eu_image_id).body
154
- #end
155
-
156
- end
157
-
158
- tests('failure') do
159
- tests("#modify_image_attribute(nil, { 'Add.Group' => ['all'] })").raises(ArgumentError) do
160
- Fog::Compute[:aws].modify_image_attribute(nil, { 'Add.Group' => ['all'] }).body
161
- end
162
-
163
- tests("#modify_image_attribute('ami-00000000', { 'Add.UserId' => ['123456789012'] })").raises(Fog::AWS::Compute::NotFound) do
164
- pending unless Fog.mocking?
165
-
166
- Fog::Compute[:aws].modify_image_attribute('ami-00000000', { 'Add.UserId' => ['123456789012'] }).body
167
- end
168
- end
169
- end
@@ -1,168 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | describe_instance_attribute request', ['aws']) do
2
- @instance_attributes = [
3
- 'instanceType',
4
- 'kernel',
5
- 'ramdisk',
6
- 'userData',
7
- 'disableApiTermination',
8
- 'instanceInitiatedShutdownBehavior',
9
- 'rootDeviceName',
10
- 'blockDeviceMapping',
11
- 'productCodes',
12
- 'groupSet',
13
- 'ebsOptimized',
14
- 'sourceDestCheck',
15
- 'sriovNetSupport'
16
- ]
17
-
18
- @instance_attribute_common_format = {
19
- "requestId" => String,
20
- "instanceId" => String
21
- }
22
-
23
- @instance_attribute_format = {
24
- "instanceType" => Fog::Nullable::String,
25
- "kernelId" => Fog::Nullable::String,
26
- "ramdiskId" => Fog::Nullable::String,
27
- "userData" => Fog::Nullable::String,
28
- "disableApiTermination" => Fog::Nullable::Boolean,
29
- "instanceInitiatedShutdownBehavior" => Fog::Nullable::String,
30
- "rootDeviceName" => Fog::Nullable::String,
31
- "blockDeviceMapping" => [Fog::Nullable::Hash],
32
- "productCodes" => Fog::Nullable::Array,
33
- "ebsOptimized" => Fog::Nullable::Boolean,
34
- "sriovNetSupport" => Fog::Nullable::String,
35
- "sourceDestCheck" => Fog::Nullable::Boolean,
36
- "groupSet" => [Fog::Nullable::Hash]
37
- }
38
-
39
- tests('success') do
40
-
41
- # In mocking the groupSet attribute is returned as nil
42
- if Fog.mocking?
43
- @instance_attribute_format["groupSet"] = Fog::Nullable::Array
44
- end
45
- # Setting up the environment
46
- @instance_id = nil
47
- @ami = 'ami-79c0ae10'
48
- key_name = uniq_id('fog-test-key')
49
- @key = Fog::Compute[:aws].key_pairs.create(:name => key_name)
50
- instance_type = "t1.micro"
51
- @az = "us-east-1a"
52
- vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/16')
53
- subnet = Fog::Compute[:aws].subnets.create('vpc_id' => vpc.id, 'cidr_block' => '10.0.10.0/16', "availability_zone" => @az)
54
- security_groups = Fog::Compute[:aws].security_groups.all
55
- @launch_config = {
56
- :image_id => @ami,
57
- :flavor_id => instance_type,
58
- :key_name => key_name,
59
- :subnet_id => subnet.subnet_id,
60
- :disable_api_termination => false
61
- }
62
- if !Fog.mocking?
63
- security_group = security_groups.select { |group| group.vpc_id == vpc.id }
64
- security_group_ids = security_group.collect { |group| group.group_id }
65
- @launch_config[:security_group_ids] = security_group_ids
66
- block_device_mapping = [{"DeviceName" => "/dev/sdp1", "VirtualName" => nil, "Ebs.VolumeSize" => 15}]
67
- @launch_config[:block_device_mapping] = block_device_mapping
68
- else
69
- security_group_ids = [nil]
70
- # In mocking the first device provided in block_device_mapping is set as the root device. There is no root device by default. So setting the root device here so that the tests for rootDeviceName and blockDeviceMapping attribute get passed
71
- block_device_mapping = [{"DeviceName" => "/dev/sda1", "VirtualName" => nil, "Ebs.VolumeSize" => 15},{"DeviceName" => "/dev/sdp1", "VirtualName" => nil, "Ebs.VolumeSize" => 15}]
72
- @launch_config[:block_device_mapping] = block_device_mapping
73
- end
74
-
75
-
76
-
77
- server = Fog::Compute[:aws].servers.create(@launch_config)
78
- server.wait_for { ready? }
79
- server.reload
80
- @instance_id = server.id
81
- ################
82
- # BEGIN TESTS #
83
- ################
84
- @instance_attributes.each do |attrib|
85
- # Creating format schema for each attribute
86
- describe_instance_attribute_format = @instance_attribute_common_format.clone
87
- if attrib == "kernel"
88
- key = "kernelId"
89
- elsif attrib == "ramdisk"
90
- key = "ramdiskId"
91
- else
92
- key = attrib
93
- end
94
- describe_instance_attribute_format[key] = @instance_attribute_format[key]
95
- # Running format check
96
- tests("#describe_instance_attribute('#{@instance_id}', #{attrib})").formats(describe_instance_attribute_format,false) do
97
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, attrib).body
98
- end
99
- # Running test to see proper instance Id is get in each response
100
- tests("#describe_instance_attribute('#{@instance_id}', #{attrib})").returns(@instance_id) do
101
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, attrib).body['instanceId']
102
- end
103
- end
104
-
105
- # Test for instanceType attribute
106
- tests("#describe_instance_attribute(#{@instance_id}, 'instanceType')").returns(instance_type) do
107
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'instanceType').body["instanceType"]
108
- end
109
- # Test for disableApiTermination attribute
110
- tests("#describe_instance_attribute(#{@instance_id}, 'disableApiTermination')").returns(false) do
111
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'disableApiTermination').body["disableApiTermination"]
112
- end
113
- # Test for instanceInitiatedShutdownBehavior attribute
114
- tests("#describe_instance_attribute(#{@instance_id}, 'instanceInitiatedShutdownBehavior')").returns('stop') do
115
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'instanceInitiatedShutdownBehavior').body["instanceInitiatedShutdownBehavior"]
116
- end
117
- # Test for rootDeviceName attribute
118
- tests("#describe_instance_attribute(#{@instance_id}, 'rootDeviceName')").returns('/dev/sda1') do
119
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'rootDeviceName').body["rootDeviceName"]
120
- end
121
- # Test to see there are two devices for blockDeviceMapping attribute
122
- tests("#describe_instance_attribute(#{@instance_id}, 'blockDeviceMapping')").returns(2) do
123
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'blockDeviceMapping').body["blockDeviceMapping"].count
124
- end
125
- # Test to check the device name /dev/sdp1 passed in block_device_mapping is returned correctly
126
- tests("#describe_instance_attribute(#{@instance_id}, 'blockDeviceMapping')").returns("/dev/sdp1") do
127
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'blockDeviceMapping').body["blockDeviceMapping"].last["deviceName"]
128
- end
129
- # Test for groupSet attribute
130
- tests("#describe_instance_attribute(#{@instance_id}, 'groupSet')").returns(security_group_ids) do
131
- group_set = Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'groupSet').body["groupSet"]
132
- group_set.collect { |g| g["groupId"]}
133
- end
134
- # Test for sourceDestCheck attribute (This attribute is set only for VPC instances. So created the instance in a VPC during setup process)
135
- tests("#describe_instance_attribute(#{@instance_id}, 'sourceDestCheck')").returns(true) do
136
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'sourceDestCheck').body["sourceDestCheck"]
137
- end
138
- # Test for ebsOptimized attribute
139
- tests("#describe_instance_attribute(#{@instance_id}, 'ebsOptimized')").returns(false) do
140
- Fog::Compute[:aws].describe_instance_attribute(@instance_id, 'ebsOptimized').body["ebsOptimized"]
141
- end
142
- ###############
143
- # END OF TEST #
144
- ###############
145
-
146
- # Tear down
147
- if !Fog.mocking?
148
- @key.destroy
149
- server.destroy
150
- until server.state == "terminated"
151
- sleep 5 #Wait for the server to be terminated
152
- server.reload
153
- end
154
- subnet.destroy
155
- vpc.destroy
156
- end
157
-
158
- end
159
-
160
- tests('failure') do
161
- @instance_attributes.each do |attrib|
162
- tests("#describe_instance_attribute('i-00000000', #{attrib})").raises(Fog::AWS::Compute::NotFound) do
163
- Fog::Compute[:aws].describe_instance_attribute('i-00000000', attrib)
164
- end
165
- end
166
- end
167
-
168
- end
@@ -1,338 +0,0 @@
1
- Shindo.tests('Fog::Compute[:aws] | instance requests', ['aws']) do
2
-
3
- @instance_format = {
4
- 'architecture' => String,
5
- 'amiLaunchIndex' => Integer,
6
- 'associatePublicIP' => Fog::Nullable::Boolean,
7
- 'attachmentId' => Fog::Nullable::String,
8
- 'blockDeviceMapping' => [Fog::Nullable::Hash],
9
- 'networkInterfaces' => [Fog::Nullable::Hash],
10
- 'clientToken' => Fog::Nullable::String,
11
- 'dnsName' => NilClass,
12
- 'ebsOptimized' => Fog::Boolean,
13
- 'imageId' => String,
14
- 'instanceId' => String,
15
- 'instanceState' => {'code' => Integer, 'name' => String},
16
- 'instanceType' => String,
17
- 'kernelId' => Fog::Nullable::String,
18
- 'keyName' => Fog::Nullable::String,
19
- 'launchTime' => Time,
20
- 'monitoring' => {'state' => Fog::Boolean},
21
- 'networkInterfaceId' => Fog::Nullable::String,
22
- 'placement' => {
23
- 'availabilityZone' => String,
24
- 'groupName' => Fog::Nullable::String,
25
- 'tenancy' => String
26
- },
27
- 'platform' => Fog::Nullable::String,
28
- 'privateDnsName' => NilClass,
29
- 'productCodes' => Array,
30
- 'reason' => Fog::Nullable::String,
31
- 'rootDeviceName' => Fog::Nullable::String,
32
- 'rootDeviceType' => String,
33
- 'sourceDestCheck' => Fog::Nullable::Boolean,
34
- 'subnetId' => Fog::Nullable::String,
35
- 'vpcId' => Fog::Nullable::String
36
- }
37
-
38
- @run_instances_format = {
39
- 'groupSet' => [String],
40
- 'instancesSet' => [@instance_format],
41
- 'ownerId' => Fog::Nullable::String,
42
- 'requestId' => String,
43
- 'reservationId' => String
44
- }
45
-
46
- @describe_instances_format = {
47
- 'reservationSet' => [{
48
- 'groupSet' => [String],
49
- 'groupIds' => [String],
50
- 'instancesSet' => [@instance_format.merge(
51
- 'architecture' => String,
52
- 'dnsName' => Fog::Nullable::String,
53
- 'hypervisor' => String,
54
- 'iamInstanceProfile' => Hash,
55
- 'ipAddress' => Fog::Nullable::String,
56
- 'networkInterfaces' => Array,
57
- 'ownerId' => String,
58
- 'privateDnsName' => Fog::Nullable::String,
59
- 'privateIpAddress' => Fog::Nullable::String,
60
- 'stateReason' => Hash,
61
- 'tagSet' => Hash,
62
- 'virtualizationType' => String
63
- )],
64
- 'ownerId' => Fog::Nullable::String,
65
- 'reservationId' => String
66
- }],
67
- 'requestId' => String
68
- }
69
-
70
- @get_console_output_format = {
71
- 'instanceId' => String,
72
- 'output' => Fog::Nullable::String,
73
- 'requestId' => String,
74
- 'timestamp' => Time
75
- }
76
-
77
- @get_password_data_format = {
78
- 'instanceId' => String,
79
- 'passwordData' => Fog::Nullable::String,
80
- 'requestId' => String,
81
- 'timestamp' => Time
82
- }
83
-
84
- @instance_state_change_format = {
85
- 'instancesSet' => [{
86
- 'currentState' => {'code' => Integer, 'name' => String},
87
- 'instanceId' => String,
88
- 'previousState' => {'code' => Integer, 'name' => String},
89
- }],
90
- 'requestId' => String
91
- }
92
-
93
- @describe_reserved_instances_offerings_format = {
94
- 'reservedInstancesOfferingsSet' => [{
95
- 'reservedInstancesOfferingId' => String,
96
- 'instanceType' => String,
97
- 'availabilityZone' => String,
98
- 'duration' => Integer,
99
- 'fixedPrice' => Float,
100
- 'offeringType' => String,
101
- 'usagePrice' => Float,
102
- 'productDescription' => String,
103
- 'instanceTenancy' => String,
104
- 'currencyCode' => String
105
- }],
106
- 'requestId' => String
107
- }
108
-
109
- @purchase_reserved_instances_offering_format = {
110
- 'reservedInstancesId' => String,
111
- 'requestId' => String
112
- }
113
-
114
- @describe_reserved_instances_format = {
115
- 'reservedInstancesSet' => [{
116
- 'reservedInstancesId' => String,
117
- 'instanceType' => String,
118
- 'availabilityZone' => String,
119
- 'start' => Time,
120
- 'end' => Time,
121
- 'duration' => Integer,
122
- 'fixedPrice' => Float,
123
- 'usagePrice' => Float,
124
- 'instanceCount' => Integer,
125
- 'offeringType' => String,
126
- 'productDescription' => String,
127
- 'state' => String,
128
- 'tagSet' => [{
129
- 'key' => String,
130
- 'value' => String
131
- }],
132
- 'instanceTenancy' => String,
133
- 'currencyCode' => String
134
- }],
135
- 'requestId' => String
136
- }
137
-
138
- @describe_instance_status_format = {
139
- 'requestId' => String,
140
- 'instanceStatusSet' => [{
141
- 'instanceId' => String,
142
- 'availabilityZone' => String,
143
- 'instanceState' => {
144
- 'code' => Integer,
145
- 'name' => String
146
- },
147
- 'systemStatus' => {
148
- 'status' => String,
149
- 'details' => [{
150
- 'name' => String,
151
- 'status' => String
152
- }]
153
- },
154
- 'instanceStatus' => {
155
- 'status' => String,
156
- 'details' => [{
157
- 'name' => String,
158
- 'status' => String
159
- }]
160
- },
161
- 'eventsSet' => [Fog::Nullable::Hash],
162
- }]
163
- }
164
-
165
- tests('success') do
166
-
167
- @instance_id = nil
168
- @ami = if ENV['FASTER_TEST_PLEASE']
169
- 'ami-79c0ae10' # ubuntu 12.04 daily build 20120728
170
- else
171
- # Use a MS Windows AMI to test #get_password_data
172
- 'ami-71b50018' # Amazon Public Images - Windows_Server-2008-SP2-English-64Bit-Base-2012.07.11
173
- end
174
-
175
- # Create a keypair for decrypting the password
176
- key_name = uniq_id('fog-test-key')
177
- key = Fog::Compute[:aws].key_pairs.create(:name => key_name)
178
-
179
- tests("#run_instances").formats(@run_instances_format) do
180
- data = Fog::Compute[:aws].run_instances(@ami, 1, 1, 'InstanceType' => 't1.micro', 'KeyName' => key_name, 'BlockDeviceMapping' => [{"DeviceName" => "/dev/sdp1", "VirtualName" => nil, "Ebs.VolumeSize" => 15}]).body
181
- @instance_id = data['instancesSet'].first['instanceId']
182
- data
183
- end
184
-
185
- server = Fog::Compute[:aws].servers.get(@instance_id)
186
- while server.nil? do
187
- # It may take a moment to get the server after launching it
188
- sleep 0.1
189
- server = Fog::Compute[:aws].servers.get(@instance_id)
190
- end
191
- server.wait_for { ready? }
192
-
193
- tests("#describe_instances").formats(@describe_instances_format) do
194
- Fog::Compute[:aws].describe_instances('instance-state-name' => 'running').body
195
- end
196
-
197
- # Launch another instance to test filters
198
- another_server = Fog::Compute[:aws].servers.create
199
-
200
- tests("#describe_instances('instance-id' => '#{@instance_id}'").formats(@describe_instances_format) do
201
- body = Fog::Compute[:aws].describe_instances('instance-id' => "#{@instance_id}").body
202
- tests("returns 1 instance").returns(1) { body['reservationSet'].size }
203
- body
204
- end
205
-
206
- # Test network interface attachment
207
- tests('#describe_instances networkInterfaces') do
208
- vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => '10.0.10.0/16')
209
- subnet = Fog::Compute[:aws].subnets.create('vpc_id' => vpc.id, 'cidr_block' => '10.0.10.0/16')
210
- data = Fog::Compute[:aws].create_network_interface(subnet.subnet_id).body
211
- @network_interface_id = data['networkInterface']['networkInterfaceId']
212
- Fog::Compute[:aws].attach_network_interface(@network_interface_id, @instance_id, '1')
213
- body = Fog::Compute[:aws].describe_instances('instance-id' => "#{@instance_id}").body
214
- tests("returns 1 attachment").returns(1) { body['reservationSet'].first['instancesSet'].first['networkInterfaces'].size }
215
- subnet.destroy
216
- vpc.destroy
217
- end
218
-
219
- another_server.destroy
220
-
221
- tests("#run_instances_with_tags").formats(@describe_instances_format) do
222
-
223
- svr1 = Fog::Compute[:aws].servers.create(
224
- :availability_zone => 'eu-west-1a',
225
- :tags => {
226
- "Name" => "test::test::test",
227
- "Stack" => "test",
228
- "Stage" => "test",
229
- "App" => "test1",
230
- },
231
- :image_id => 'ami-3d7e2e54',
232
- :flavor_id => 't1.micro'
233
- )
234
- svr2 = Fog::Compute[:aws].servers.create(
235
- :availability_zone => 'eu-west-1b',
236
- :tags => {
237
- "Name" => "test::test::dev",
238
- "Stack" => "test",
239
- "Stage" => "test",
240
- "App" => "test2",
241
- },
242
- :image_id => 'ami-3d7e2e54',
243
- :flavor_id => 't1.micro'
244
- )
245
-
246
- body = Fog::Compute[:aws].describe_instances('tag:App' => ['test1', 'test2']).body
247
- tests("returns 2 hosts").returns(2) { body['reservationSet'].size }
248
- svr1.destroy
249
- svr2.destroy
250
- body
251
- end
252
-
253
- tests("#get_console_output('#{@instance_id}')").formats(@get_console_output_format) do
254
- Fog::Compute[:aws].get_console_output(@instance_id).body
255
- end
256
-
257
- tests("#get_password_data('#{@instance_id}')").formats(@get_password_data_format) do
258
- result = Fog::Compute[:aws].get_password_data(@instance_id).body
259
-
260
- tests("key can decrypt passwordData").returns(true) do
261
-
262
- pending if Fog.mocking?
263
-
264
- password_data = result['passwordData']
265
- Fog.wait_for do
266
- password_data ||= Fog::Compute[:aws].get_password_data(@instance_id).body['passwordData']
267
- end
268
-
269
- decoded_password = Base64.decode64(password_data)
270
- pkey = OpenSSL::PKey::RSA.new(key.private_key)
271
- String === pkey.private_decrypt(decoded_password)
272
- end
273
- result
274
- end unless ENV['FASTER_TEST_PLEASE']
275
-
276
- key.destroy
277
-
278
- tests("#reboot_instances('#{@instance_id}')").formats(AWS::Compute::Formats::BASIC) do
279
- Fog::Compute[:aws].reboot_instances(@instance_id).body
280
- end
281
-
282
- tests("#stop_instances('#{@instance_id}')").formats(@instance_state_change_format) do
283
- Fog::Compute[:aws].stop_instances(@instance_id).body
284
- end
285
-
286
- tests("#start_instances('#{@instance_id}')").formats(@instance_state_change_format) do
287
- Fog::Compute[:aws].start_instances(@instance_id).body
288
- end
289
-
290
- tests("#terminate_instances('#{@instance_id}')").formats(@instance_state_change_format) do
291
- Fog::Compute[:aws].terminate_instances(@instance_id).body
292
- end
293
-
294
- tests("#describe_reserved_instances_offerings").formats(@describe_reserved_instances_offerings_format) do
295
- @reserved_instances = Fog::Compute[:aws].describe_reserved_instances_offerings.body
296
- @reserved_instances
297
- end
298
-
299
- tests('#describe_instance_status').formats(@describe_instance_status_format) do
300
- Fog::Compute[:aws].describe_instance_status.body
301
- end
302
-
303
- if Fog.mocking?
304
- @reserved_instance_offering_id = @reserved_instances["reservedInstancesOfferingsSet"].first["reservedInstancesOfferingId"]
305
- tests("#purchase_reserved_instances_offering('#{@reserved_instance_offering_id}')").formats(@purchase_reserved_instances_offering_format) do
306
- Fog::Compute[:aws].purchase_reserved_instances_offering(@reserved_instance_offering_id, 1).body
307
- end
308
-
309
- tests("#describe_reserved_instances").formats(@describe_reserved_instances_format) do
310
- Fog::Compute[:aws].describe_reserved_instances.body
311
- end
312
- end
313
- end
314
-
315
- tests('failure') do
316
-
317
- tests("#run_instances(nil, 1, 1, {'SubnetId'=>'subnet-00000000'}").raises(::Fog::AWS::Compute::Error) do
318
- Fog::Compute[:aws].run_instances(nil, 1, 1, {'SubnetId' => 'subnet-000000'})
319
- end
320
- tests("#get_console_output('i-00000000')").raises(Fog::AWS::Compute::NotFound) do
321
- Fog::Compute[:aws].get_console_output('i-00000000')
322
- end
323
-
324
- tests("#get_password_data('i-00000000')").raises(Fog::AWS::Compute::NotFound) do
325
- Fog::Compute[:aws].get_password_data('i-00000000')
326
- end
327
-
328
- tests("#reboot_instances('i-00000000')").raises(Fog::AWS::Compute::NotFound) do
329
- Fog::Compute[:aws].reboot_instances('i-00000000')
330
- end
331
-
332
- tests("#terminate_instances('i-00000000')").raises(Fog::AWS::Compute::NotFound) do
333
- Fog::Compute[:aws].terminate_instances('i-00000000')
334
- end
335
-
336
- end
337
-
338
- end