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
- # frozen_string_literal: true
2
-
3
- Shindo.tests('AWS | credentials', ['aws']) do
4
- old_mock_value = Excon.defaults[:mock]
5
- fog_was_mocked = Fog.mocking?
6
- Excon.stubs.clear
7
- Fog.unmock!
8
- begin
9
- Excon.defaults[:mock] = true
10
- Excon.stub({ method: :get, path: '/latest/meta-data/iam/security-credentials/' }, { status: 200, body: 'arole' })
11
- Excon.stub({ method: :get, path: '/latest/meta-data/placement/availability-zone/' }, { status: 200, body: 'us-west-1a' })
12
-
13
- expires_at = Time.at(Time.now.to_i + 500)
14
- credentials = {
15
- 'AccessKeyId' => 'dummykey',
16
- 'SecretAccessKey' => 'dummysecret',
17
- 'Token' => 'dummytoken',
18
- 'Expiration' => expires_at.xmlschema
19
- }
20
-
21
- Excon.stub({ method: :get, path: '/latest/meta-data/iam/security-credentials/arole' }, { status: 200, body: Fog::JSON.encode(credentials) })
22
-
23
- tests('#fetch_credentials') do
24
- returns(aws_access_key_id: 'dummykey',
25
- aws_secret_access_key: 'dummysecret',
26
- aws_session_token: 'dummytoken',
27
- region: 'us-west-1',
28
- aws_credentials_expire_at: expires_at) { Fog::AWS::Compute.fetch_credentials(use_iam_profile: true) }
29
- end
30
-
31
- ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'] = '/v1/credentials?id=task_id'
32
- Excon.stub({ method: :get, path: '/v1/credentials?id=task_id' }, { status: 200, body: Fog::JSON.encode(credentials) })
33
-
34
- tests('#fetch_credentials') do
35
- returns(aws_access_key_id: 'dummykey',
36
- aws_secret_access_key: 'dummysecret',
37
- aws_session_token: 'dummytoken',
38
- region: 'us-west-1',
39
- aws_credentials_expire_at: expires_at) { Fog::AWS::Compute.fetch_credentials(use_iam_profile: true) }
40
- end
41
-
42
- ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'] = nil
43
-
44
- compute = Fog::AWS::Compute.new(use_iam_profile: true)
45
-
46
- tests('#refresh_credentials_if_expired') do
47
- returns(nil) { compute.refresh_credentials_if_expired }
48
- end
49
-
50
- credentials['AccessKeyId'] = 'newkey'
51
- credentials['SecretAccessKey'] = 'newsecret'
52
- credentials['Expiration'] = (expires_at + 10).xmlschema
53
-
54
- Excon.stub({ method: :get, path: '/latest/meta-data/iam/security-credentials/arole' }, { status: 200, body: Fog::JSON.encode(credentials) })
55
-
56
- Fog::Time.now = expires_at + 1
57
- tests('#refresh_credentials_if_expired') do
58
- returns(true) { compute.refresh_credentials_if_expired }
59
- returns('newkey') { compute.instance_variable_get(:@aws_access_key_id) }
60
- end
61
- Fog::Time.now = Time.now
62
-
63
- default_credentials = Fog::AWS::Compute.fetch_credentials({})
64
- tests('#fetch_credentials when the url 404s') do
65
- Excon.stub({ method: :get, path: '/latest/meta-data/iam/security-credentials/' }, { status: 404, body: 'not bound' })
66
- Excon.stub({ method: :get, path: '/latest/meta-data/placement/availability-zone/' }, { status: 400, body: 'not found' })
67
- returns(default_credentials) { Fog::AWS::Compute.fetch_credentials(use_iam_profile: true) }
68
- end
69
-
70
- mocked_credentials = {
71
- aws_access_key_id: 'access-key-id',
72
- aws_secret_access_key: 'secret-access-key',
73
- aws_session_token: 'session-token',
74
- aws_credentials_expire_at: Time.at(Time.now.to_i + 500).xmlschema
75
- }
76
- tests('#fetch_credentials when mocking') do
77
- Fog.mock!
78
- Fog::AWS::Compute::Mock.data[:iam_role_based_creds] = mocked_credentials
79
- returns(mocked_credentials) { Fog::AWS::Compute.fetch_credentials(use_iam_profile: true) }
80
- end
81
- ensure
82
- ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'] = nil
83
- Excon.stubs.clear
84
- Excon.defaults[:mock] = old_mock_value
85
- Fog.mock! if fog_was_mocked
86
- end
87
- end
data/tests/helper.rb DELETED
@@ -1,29 +0,0 @@
1
- begin
2
- require 'simplecov'
3
- SimpleCov.start
4
- SimpleCov.command_name 'Shindo'
5
- rescue LoadError => e
6
- $stderr.puts "not recording test coverage: #{e.inspect}"
7
- end
8
-
9
- require File.expand_path('../../lib/fog/aws', __FILE__)
10
-
11
- Bundler.require(:test)
12
-
13
- Excon.defaults.merge!(debug_request: true, debug_response: true)
14
-
15
- require File.expand_path(File.join(File.dirname(__FILE__), 'helpers', 'mock_helper'))
16
-
17
- # This overrides the default 600 seconds timeout during live test runs
18
- unless Fog.mocking?
19
- Fog.timeout = ENV['FOG_TEST_TIMEOUT'] || 2_000
20
- Fog::Logger.warning "Setting default fog timeout to #{Fog.timeout} seconds"
21
- end
22
-
23
- def lorem_file
24
- File.open(File.dirname(__FILE__) + '/lorem.txt', 'r')
25
- end
26
-
27
- def array_differences(array_a, array_b)
28
- (array_a - array_b) | (array_b - array_a)
29
- end
@@ -1,90 +0,0 @@
1
- def collection_tests(collection, params = {}, mocks_implemented = true)
2
- tests('success') do
3
- tests("#new(#{params.inspect})").succeeds do
4
- pending if Fog.mocking? && !mocks_implemented
5
- collection.new(params)
6
- end
7
-
8
- tests("#create(#{params.inspect})").succeeds do
9
- pending if Fog.mocking? && !mocks_implemented
10
- @instance = collection.create(params)
11
- end
12
- # FIXME: work around for timing issue on AWS describe_instances mocks
13
-
14
- if Fog.mocking? && @instance.respond_to?(:ready?)
15
- @instance.wait_for { ready? }
16
- end
17
-
18
- tests("#all").succeeds do
19
- pending if Fog.mocking? && !mocks_implemented
20
- collection.all
21
- end
22
-
23
- if !Fog.mocking? || mocks_implemented
24
- @identity = @instance.identity
25
- end
26
-
27
- tests("#get(#{@identity})").succeeds do
28
- pending if Fog.mocking? && !mocks_implemented
29
- collection.get(@identity)
30
- end
31
-
32
- tests('Enumerable') do
33
- pending if Fog.mocking? && !mocks_implemented
34
-
35
- methods = [
36
- 'all?', 'any?', 'find', 'detect', 'collect', 'map',
37
- 'find_index', 'flat_map', 'collect_concat', 'group_by',
38
- 'none?', 'one?'
39
- ]
40
-
41
- methods.each do |enum_method|
42
- if collection.respond_to?(enum_method)
43
- tests("##{enum_method}").succeeds do
44
- block_called = false
45
- collection.send(enum_method) { block_called = true }
46
- block_called
47
- end
48
- end
49
- end
50
-
51
- [
52
- 'max_by','min_by'
53
- ].each do |enum_method|
54
- if collection.respond_to?(enum_method)
55
- tests("##{enum_method}").succeeds do
56
- block_called = false
57
- collection.send(enum_method) { block_called = true; 0 }
58
- block_called
59
- end
60
- end
61
-
62
- end
63
-
64
- end
65
-
66
- if block_given?
67
- yield(@instance)
68
- end
69
-
70
- if !Fog.mocking? || mocks_implemented
71
- @instance.destroy
72
- end
73
- end
74
-
75
- tests('failure') do
76
-
77
- if !Fog.mocking? || mocks_implemented
78
- @identity = @identity.to_s
79
- @identity = @identity.gsub(/[a-zA-Z]/) { Fog::Mock.random_letters(1) }
80
- @identity = @identity.gsub(/\d/) { Fog::Mock.random_numbers(1) }
81
- @identity
82
- end
83
-
84
- tests("#get('#{@identity}')").returns(nil) do
85
- pending if Fog.mocking? && !mocks_implemented
86
- collection.get(@identity)
87
- end
88
-
89
- end
90
- end
@@ -1,28 +0,0 @@
1
- def flavors_tests(connection, params = {}, mocks_implemented = true)
2
- tests('success') do
3
- tests('#all').succeeds do
4
- pending if Fog.mocking? && !mocks_implemented
5
- connection.flavors.all
6
- end
7
-
8
- if !Fog.mocking? || mocks_implemented
9
- @identity = connection.flavors.first.identity
10
- end
11
-
12
- tests("#get('#{@identity}')").succeeds do
13
- pending if Fog.mocking? && !mocks_implemented
14
- connection.flavors.get(@identity)
15
- end
16
- end
17
-
18
- tests('failure') do
19
- if !Fog.mocking? || mocks_implemented
20
- invalid_flavor_identity = connection.flavors.first.identity.to_s.gsub(/\w/, '0')
21
- end
22
-
23
- tests("#get('#{invalid_flavor_identity}')").returns(nil) do
24
- pending if Fog.mocking? && !mocks_implemented
25
- connection.flavors.get(invalid_flavor_identity)
26
- end
27
- end
28
- end
@@ -1,23 +0,0 @@
1
- def server_tests(connection, params = {}, mocks_implemented = true)
2
- model_tests(connection.servers, params, mocks_implemented) do
3
- tests('#reload').returns(true) do
4
- pending if Fog.mocking? && !mocks_implemented
5
- @instance.wait_for { ready? }
6
- identity = @instance.identity
7
- !identity.nil? && identity == @instance.reload.identity
8
- end
9
-
10
- responds_to(%i[ready state])
11
- yield if block_given?
12
-
13
- tests('#reboot').succeeds do
14
- pending if Fog.mocking? && !mocks_implemented
15
- @instance.wait_for { ready? }
16
- @instance.reboot
17
- end
18
-
19
- if !Fog.mocking? || mocks_implemented
20
- @instance.wait_for { ready? }
21
- end
22
- end
23
- end
@@ -1,8 +0,0 @@
1
- def servers_tests(connection, params = {}, mocks_implemented = true)
2
- collection_tests(connection.servers, params, mocks_implemented) do
3
- if !Fog.mocking? || mocks_implemented
4
- @instance.wait_for { ready? }
5
- yield if block_given?
6
- end
7
- end
8
- end
@@ -1,56 +0,0 @@
1
- def dns_providers
2
- {
3
- aws: {
4
- mocked: false
5
- },
6
- bluebox: {
7
- mocked: false,
8
- zone_attributes: {
9
- ttl: 60
10
- }
11
- },
12
- dnsimple: {
13
- mocked: false
14
- },
15
- dnsmadeeasy: {
16
- mocked: false
17
- },
18
- dynect: {
19
- mocked: false,
20
- zone_attributes: {
21
- email: 'fog@example.com'
22
- }
23
- },
24
- linode: {
25
- mocked: false,
26
- zone_attributes: {
27
- email: 'fog@example.com'
28
- }
29
- },
30
- zerigo: {
31
- mocked: false
32
- },
33
- rackspace: {
34
- mocked: false,
35
- zone_attributes: {
36
- email: 'fog@example.com'
37
- }
38
- },
39
- rage4: {
40
- mocked: false
41
- }
42
- }
43
- end
44
-
45
- def generate_unique_domain(with_trailing_dot = false)
46
- # get time (with 1/100th of sec accuracy)
47
- # want unique domain name and if provider is fast,
48
- # this can be called more than once per second
49
- time = (Time.now.to_f * 100).to_i
50
- domain = 'test-' + time.to_s + '.com'
51
- if with_trailing_dot
52
- domain += '.'
53
- end
54
-
55
- domain
56
- end
@@ -1,100 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fog/schema/data_validator'
4
-
5
- # format related hackery
6
- # allows both true.is_a?(Fog::Boolean) and false.is_a?(Fog::Boolean)
7
- # allows both nil.is_a?(Fog::Nullable::String) and ''.is_a?(Fog::Nullable::String)
8
- module Fog
9
- module Boolean; end
10
- module Nullable
11
- module Boolean; end
12
- module Integer; end
13
- module String; end
14
- module Time; end
15
- module Float; end
16
- module Hash; end
17
- module Array; end
18
- end
19
- end
20
- [FalseClass, TrueClass].each { |klass| klass.send(:include, Fog::Boolean) }
21
- [FalseClass, TrueClass, NilClass, Fog::Boolean].each { |klass| klass.send(:include, Fog::Nullable::Boolean) }
22
- [NilClass, String].each { |klass| klass.send(:include, Fog::Nullable::String) }
23
- [NilClass, Time].each { |klass| klass.send(:include, Fog::Nullable::Time) }
24
- [Integer, NilClass].each { |klass| klass.send(:include, Fog::Nullable::Integer) }
25
- [Float, NilClass].each { |klass| klass.send(:include, Fog::Nullable::Float) }
26
- [Hash, NilClass].each { |klass| klass.send(:include, Fog::Nullable::Hash) }
27
- [Array, NilClass].each { |klass| klass.send(:include, Fog::Nullable::Array) }
28
-
29
- module Shindo
30
- # Generates a Shindo test that compares a hash schema to the result
31
- # of the passed in block returning true if they match.
32
- #
33
- # The schema that is passed in is a Hash or Array of hashes that
34
- # have Classes in place of values. When checking the schema the
35
- # value should match the Class.
36
- #
37
- # Strict mode will fail if the data has additional keys. Setting
38
- # +strict+ to +false+ will allow additional keys to appear.
39
- #
40
- # @param [Hash] schema A Hash schema
41
- # @param [Hash] options Options to change validation rules
42
- # @option options [Boolean] :allow_extra_keys
43
- # If +true+ does not fail when keys are in the data that are
44
- # not specified in the schema. This allows new values to
45
- # appear in API output without breaking the check.
46
- # @option options [Boolean] :allow_optional_rules
47
- # If +true+ does not fail if extra keys are in the schema
48
- # that do not match the data. Not recommended!
49
- # @yield Data to check with schema
50
- #
51
- # @example Using in a test
52
- # Shindo.tests("comparing welcome data against schema") do
53
- # data = {:welcome => "Hello" }
54
- # data_matches_schema(:welcome => String) { data }
55
- # end
56
- #
57
- # comparing welcome data against schema
58
- # + data matches schema
59
- #
60
- # @example Example schema
61
- # {
62
- # "id" => String,
63
- # "ram" => Integer,
64
- # "disks" => [
65
- # {
66
- # "size" => Float
67
- # }
68
- # ],
69
- # "dns_name" => Fog::Nullable::String,
70
- # "active" => Fog::Boolean,
71
- # "created" => DateTime
72
- # }
73
- #
74
- # @return [Boolean]
75
- class Tests
76
- def data_matches_schema(schema, options = {})
77
- test('data matches schema') do
78
- validator = Fog::Schema::DataValidator.new
79
- valid = validator.validate(yield, schema, options)
80
- @message = validator.message unless valid
81
- valid
82
- end
83
- end
84
-
85
- # @deprecated #formats is deprecated. Use #data_matches_schema instead
86
- def formats(format, strict = true)
87
- test('has proper format') do
88
- if strict
89
- options = { allow_extra_keys: false, allow_optional_rules: true }
90
- else
91
- options = { allow_extra_keys: true, allow_optional_rules: true }
92
- end
93
- validator = Fog::Schema::DataValidator.new
94
- valid = validator.validate(yield, format, options)
95
- @message = validator.message unless valid
96
- valid
97
- end
98
- end
99
- end
100
- end
@@ -1,107 +0,0 @@
1
- Shindo.tests('test_helper', 'meta') do
2
-
3
- tests('comparing welcome data against schema') do
4
- data = { welcome: 'Hello' }
5
- data_matches_schema(welcome: String) { data }
6
- end
7
-
8
- tests('#data_matches_schema') do
9
- tests('when value matches schema expectation') do
10
- data_matches_schema('key' => String) { { 'key' => 'Value' } }
11
- end
12
-
13
- tests('when values within an array all match schema expectation') do
14
- data_matches_schema('key' => [Integer]) { { 'key' => [1, 2] } }
15
- end
16
-
17
- tests('when nested values match schema expectation') do
18
- data_matches_schema('key' => { nested_key: String }) { { 'key' => { nested_key: 'Value' } } }
19
- end
20
-
21
- tests('when collection of values all match schema expectation') do
22
- data_matches_schema([{ 'key' => String }]) { [{ 'key' => 'Value' }, { 'key' => 'Value' }] }
23
- end
24
-
25
- tests('when collection is empty although schema covers optional members') do
26
- data_matches_schema([{ 'key' => String }], allow_optional_rules: true) { [] }
27
- end
28
-
29
- tests('when additional keys are passed and not strict') do
30
- data_matches_schema({ 'key' => String }, allow_extra_keys: true) { { 'key' => 'Value', extra: 'Bonus' } }
31
- end
32
-
33
- tests('when value is nil and schema expects NilClass') do
34
- data_matches_schema('key' => NilClass) { { 'key' => nil } }
35
- end
36
-
37
- tests('when value and schema match as hashes') do
38
- data_matches_schema({}) { {} }
39
- end
40
-
41
- tests('when value and schema match as arrays') do
42
- data_matches_schema([]) { [] }
43
- end
44
-
45
- tests('when value is a Time') do
46
- data_matches_schema('time' => Time) { { 'time' => Time.now } }
47
- end
48
-
49
- tests('when key is missing but value should be NilClass (#1477)') do
50
- data_matches_schema({ 'key' => NilClass }, allow_optional_rules: true) { {} }
51
- end
52
-
53
- tests('when key is missing but value is nullable (#1477)') do
54
- data_matches_schema({ 'key' => Fog::Nullable::String }, allow_optional_rules: true) { {} }
55
- end
56
- end
57
-
58
- tests('#formats backwards compatible changes') do
59
- tests('when value matches schema expectation') do
60
- formats('key' => String) { { 'key' => 'Value' } }
61
- end
62
-
63
- tests('when values within an array all match schema expectation') do
64
- formats('key' => [Integer]) { { 'key' => [1, 2] } }
65
- end
66
-
67
- tests('when nested values match schema expectation') do
68
- formats('key' => { nested_key: String }) { { 'key' => { nested_key: 'Value' } } }
69
- end
70
-
71
- tests('when collection of values all match schema expectation') do
72
- formats([{ 'key' => String }]) { [{ 'key' => 'Value' }, { 'key' => 'Value' }] }
73
- end
74
-
75
- tests('when collection is empty although schema covers optional members') do
76
- formats([{ 'key' => String }]) { [] }
77
- end
78
-
79
- tests('when additional keys are passed and not strict') do
80
- formats({ 'key' => String }, false) { { 'key' => 'Value', :extra => 'Bonus' } }
81
- end
82
-
83
- tests('when value is nil and schema expects NilClass') do
84
- formats('key' => NilClass) { { 'key' => nil } }
85
- end
86
-
87
- tests('when value and schema match as hashes') do
88
- formats({}) { {} }
89
- end
90
-
91
- tests('when value and schema match as arrays') do
92
- formats([]) { [] }
93
- end
94
-
95
- tests('when value is a Time') do
96
- formats('time' => Time) { { 'time' => Time.now } }
97
- end
98
-
99
- tests('when key is missing but value should be NilClass (#1477)') do
100
- formats('key' => NilClass) { {} }
101
- end
102
-
103
- tests('when key is missing but value is nullable (#1477)') do
104
- formats('key' => Fog::Nullable::String) { {} }
105
- end
106
- end
107
- end
@@ -1,109 +0,0 @@
1
- # Use so you can run in mock mode from the command line
2
- #
3
- # FOG_MOCK=true fog
4
-
5
- if ENV["FOG_MOCK"] == "true"
6
- Fog.mock!
7
- end
8
-
9
- # if in mocked mode, fill in some fake credentials for us
10
- if Fog.mock?
11
- Fog.credentials = {
12
- aws_access_key_id: 'aws_access_key_id',
13
- aws_secret_access_key: 'aws_secret_access_key',
14
- ia_access_key_id: 'aws_access_key_id',
15
- ia_secret_access_key: 'aws_secret_access_key',
16
- bluebox_api_key: 'bluebox_api_key',
17
- bluebox_customer_id: 'bluebox_customer_id',
18
- brightbox_client_id: 'brightbox_client_id',
19
- brightbox_secret: 'brightbox_secret',
20
- cloudstack_disk_offering_id: '',
21
- cloudstack_host: 'http://cloudstack.example.org',
22
- cloudstack_network_ids: '',
23
- cloudstack_service_offering_id: '4437ac6c-9fe3-477a-57ec-60a5a45896a4',
24
- cloudstack_template_id: '8a31cf9c-f248-0588-256e-9dbf58785216',
25
- cloudstack_zone_id: 'c554c592-e09c-9df5-7688-4a32754a4305',
26
- cloudstack_project_id: 'f1f1f1f1-f1f1-f1f1-f1f1-f1f1f1f1f1f1',
27
- clodo_api_key: 'clodo_api_key',
28
- clodo_username: 'clodo_username',
29
- digitalocean_api_key: 'digitalocean_api_key',
30
- digitalocean_client_id: 'digitalocean_client_id',
31
- dnsimple_email: 'dnsimple_email',
32
- dnsimple_password: 'dnsimple_password',
33
- dnsmadeeasy_api_key: 'dnsmadeeasy_api_key',
34
- dnsmadeeasy_secret_key: 'dnsmadeeasy_secret_key',
35
- glesys_username: 'glesys_username',
36
- glesys_api_key: 'glesys_api_key',
37
- go_grid_api_key: 'go_grid_api_key',
38
- go_grid_shared_secret: 'go_grid_shared_secret',
39
- google_storage_access_key_id: 'google_storage_access_key_id',
40
- google_storage_secret_access_key: 'google_storage_secret_access_key',
41
- google_project: 'google_project_name',
42
- google_client_email: 'fake@developer.gserviceaccount.com',
43
- google_key_location: '~/fake.p12',
44
- hp_access_key: 'hp_access_key',
45
- hp_secret_key: 'hp_secret_key',
46
- hp_tenant_id: 'hp_tenant_id',
47
- hp_avl_zone: 'hp_avl_zone',
48
- os_account_meta_temp_url_key: 'os_account_meta_temp_url_key',
49
- ibm_username: 'ibm_username',
50
- ibm_password: 'ibm_password',
51
- joyent_username: 'joyentuser',
52
- joyent_password: 'joyentpass',
53
- linode_api_key: 'linode_api_key',
54
- local_root: '~/.fog',
55
- bare_metal_cloud_password: 'bare_metal_cloud_password',
56
- bare_metal_cloud_username: 'bare_metal_cloud_username',
57
- ninefold_compute_key: 'ninefold_compute_key',
58
- ninefold_compute_secret: 'ninefold_compute_secret',
59
- ninefold_storage_secret: 'ninefold_storage_secret',
60
- ninefold_storage_token: 'ninefold_storage_token',
61
- # public_key_path: '~/.ssh/id_rsa.pub',
62
- # private_key_path: '~/.ssh/id_rsa',
63
- opennebula_endpoint: 'http://opennebula:2633/RPC2',
64
- opennebula_username: 'oneadmin',
65
- opennebula_password: 'oneadmin',
66
- openstack_api_key: 'openstack_api_key',
67
- openstack_username: 'openstack_username',
68
- openstack_tenant: 'openstack_tenant',
69
- openstack_auth_url: 'http://openstack:35357/v2.0/tokens',
70
- ovirt_url: 'http://ovirt:8080/api',
71
- ovirt_username: 'admin@internal',
72
- ovirt_password: '123123',
73
- profitbricks_username: 'profitbricks_username',
74
- profitbricks_password: 'profitbricks_password',
75
- libvirt_uri: 'qemu://libvirt/system',
76
- rackspace_api_key: 'rackspace_api_key',
77
- rackspace_region: 'dfw',
78
- rackspace_username: 'rackspace_username',
79
- riakcs_access_key_id: 'riakcs_access_key_id',
80
- riakcs_secret_access_key: 'riakcs_secret_access_key',
81
- sakuracloud_api_token: 'sakuracloud_api_token',
82
- sakuracloud_api_token_secret: 'sakuracloud_api_token_secret',
83
- storm_on_demand_username: 'storm_on_demand_username',
84
- storm_on_demand_password: 'storm_on_demand_password',
85
- vcloud_host: 'vcloud_host',
86
- vcloud_password: 'vcloud_password',
87
- vcloud_username: 'vcloud_username',
88
- vcloud_director_host: 'vcloud-director-host',
89
- vcloud_director_password: 'vcloud_director_password',
90
- vcloud_director_username: 'vcd_user@vcd_org_name',
91
- zerigo_email: 'zerigo_email',
92
- zerigo_token: 'zerigo_token',
93
- dynect_customer: 'dynect_customer',
94
- dynect_username: 'dynect_username',
95
- dynect_password: 'dynect_password',
96
- vsphere_server: 'virtualcenter.lan',
97
- vsphere_username: 'apiuser',
98
- vsphere_password: 'apipassword',
99
- vsphere_expected_pubkey_hash: 'abcdef1234567890',
100
- libvirt_username: 'root',
101
- libvirt_password: 'password',
102
- cloudsigma_username: 'csuname',
103
- cloudsigma_password: 'cspass',
104
- docker_username: 'docker-fan',
105
- docker_password: 'i<3docker',
106
- docker_email: 'dockerfan@gmail.com',
107
- docker_url: 'unix://var/run/docker.sock'
108
- }.merge(Fog.credentials)
109
- end
@@ -1,30 +0,0 @@
1
- def model_tests(collection, params = {}, mocks_implemented = true)
2
- tests('success') do
3
- @instance = collection.new(params)
4
-
5
- tests('#save').succeeds do
6
- pending if Fog.mocking? && !mocks_implemented
7
- @instance.save
8
- end
9
-
10
- if block_given?
11
- yield(@instance)
12
- end
13
-
14
- tests('#destroy').succeeds do
15
- pending if Fog.mocking? && !mocks_implemented
16
- @instance.destroy
17
- end
18
-
19
- end
20
- end
21
-
22
- # Generates a unique identifier with a random differentiator.
23
- # Useful when rapidly re-running tests, so we don't have to wait
24
- # serveral minutes for deleted objects to disappear from the API
25
- # E.g. 'fog-test-1234'
26
- def uniq_id(base_name = 'fog-test')
27
- # random_differentiator
28
- suffix = rand(65_536).to_s(16).rjust(4, '0')
29
- [base_name, suffix].join('-')
30
- end