fog-aws 3.12.0 → 3.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -3
  3. data/fog-aws.gemspec +3 -4
  4. data/lib/fog/aws/iam/default_policies.json +1574 -0
  5. data/lib/fog/aws/iam/default_policy_versions.json +3373 -0
  6. data/lib/fog/aws/models/storage/file.rb +8 -7
  7. data/lib/fog/aws/requests/compute/create_network_interface.rb +7 -4
  8. data/lib/fog/aws/requests/compute/create_subnet.rb +3 -3
  9. data/lib/fog/aws/version.rb +1 -1
  10. metadata +5 -280
  11. data/tests/credentials_tests.rb +0 -190
  12. data/tests/helper.rb +0 -29
  13. data/tests/helpers/collection_helper.rb +0 -90
  14. data/tests/helpers/compute/flavors_helper.rb +0 -28
  15. data/tests/helpers/compute/server_helper.rb +0 -23
  16. data/tests/helpers/compute/servers_helper.rb +0 -8
  17. data/tests/helpers/dns_helper.rb +0 -56
  18. data/tests/helpers/formats_helper.rb +0 -100
  19. data/tests/helpers/formats_helper_tests.rb +0 -107
  20. data/tests/helpers/mock_helper.rb +0 -109
  21. data/tests/helpers/model_helper.rb +0 -30
  22. data/tests/helpers/responds_to_helper.rb +0 -11
  23. data/tests/helpers/schema_validator_tests.rb +0 -104
  24. data/tests/helpers/succeeds_helper.rb +0 -9
  25. data/tests/lorem.txt +0 -1
  26. data/tests/models/auto_scaling/activities_tests.rb +0 -6
  27. data/tests/models/auto_scaling/configuration_test.rb +0 -13
  28. data/tests/models/auto_scaling/configurations_tests.rb +0 -11
  29. data/tests/models/auto_scaling/groups_test.rb +0 -27
  30. data/tests/models/auto_scaling/helper.rb +0 -0
  31. data/tests/models/auto_scaling/instance_tests.rb +0 -15
  32. data/tests/models/auto_scaling/instances_tests.rb +0 -6
  33. data/tests/models/beanstalk/application_tests.rb +0 -69
  34. data/tests/models/beanstalk/applications_tests.rb +0 -7
  35. data/tests/models/beanstalk/environment_tests.rb +0 -131
  36. data/tests/models/beanstalk/environments_tests.rb +0 -34
  37. data/tests/models/beanstalk/template_tests.rb +0 -47
  38. data/tests/models/beanstalk/templates_tests.rb +0 -62
  39. data/tests/models/beanstalk/version_tests.rb +0 -66
  40. data/tests/models/beanstalk/versions_tests.rb +0 -60
  41. data/tests/models/cdn/distribution_tests.rb +0 -15
  42. data/tests/models/cdn/distributions_tests.rb +0 -15
  43. data/tests/models/cdn/invalidation_tests.rb +0 -31
  44. data/tests/models/cdn/invalidations_tests.rb +0 -14
  45. data/tests/models/cdn/streaming_distribution_tests.rb +0 -15
  46. data/tests/models/cdn/streaming_distributions_tests.rb +0 -15
  47. data/tests/models/cloud_watch/alarm_data_tests.rb +0 -42
  48. data/tests/models/cloud_watch/alarm_history_tests.rb +0 -22
  49. data/tests/models/cloud_watch/metric_statistics_tests.rb +0 -51
  50. data/tests/models/cloud_watch/metrics_tests.rb +0 -32
  51. data/tests/models/compute/address_tests.rb +0 -43
  52. data/tests/models/compute/addresses_tests.rb +0 -5
  53. data/tests/models/compute/dhcp_option_tests.rb +0 -3
  54. data/tests/models/compute/dhcp_options_tests.rb +0 -3
  55. data/tests/models/compute/internet_gateway_tests.rb +0 -3
  56. data/tests/models/compute/internet_gateways_tests.rb +0 -3
  57. data/tests/models/compute/key_pair_tests.rb +0 -26
  58. data/tests/models/compute/key_pairs_tests.rb +0 -5
  59. data/tests/models/compute/network_acl_tests.rb +0 -109
  60. data/tests/models/compute/network_acls_tests.rb +0 -20
  61. data/tests/models/compute/network_interfaces_test.rb +0 -12
  62. data/tests/models/compute/security_group_tests.rb +0 -98
  63. data/tests/models/compute/security_groups_tests.rb +0 -5
  64. data/tests/models/compute/server_tests.rb +0 -94
  65. data/tests/models/compute/snapshot_tests.rb +0 -10
  66. data/tests/models/compute/snapshots_tests.rb +0 -10
  67. data/tests/models/compute/subnet_tests.rb +0 -13
  68. data/tests/models/compute/subnets_tests.rb +0 -5
  69. data/tests/models/compute/volume_tests.rb +0 -65
  70. data/tests/models/compute/volumes_tests.rb +0 -5
  71. data/tests/models/compute/vpc_tests.rb +0 -26
  72. data/tests/models/compute/vpcs_tests.rb +0 -19
  73. data/tests/models/data_pipeline/pipeline_tests.rb +0 -8
  74. data/tests/models/data_pipeline/pipelines_tests.rb +0 -8
  75. data/tests/models/dns/record_tests.rb +0 -33
  76. data/tests/models/dns/records_tests.rb +0 -41
  77. data/tests/models/dns/zone_tests.rb +0 -4
  78. data/tests/models/dns/zones_tests.rb +0 -4
  79. data/tests/models/efs/file_system_tests.rb +0 -12
  80. data/tests/models/efs/mount_target_tests.rb +0 -45
  81. data/tests/models/efs/mount_targets_tests.rb +0 -30
  82. data/tests/models/elasticache/cluster_tests.rb +0 -30
  83. data/tests/models/elasticache/parameter_groups_tests.rb +0 -15
  84. data/tests/models/elasticache/security_groups_tests.rb +0 -52
  85. data/tests/models/elasticache/subnet_groups_tests.rb +0 -43
  86. data/tests/models/elb/model_tests.rb +0 -360
  87. data/tests/models/elb/tagging_tests.rb +0 -15
  88. data/tests/models/glacier/model_tests.rb +0 -47
  89. data/tests/models/iam/access_keys_tests.rb +0 -53
  90. data/tests/models/iam/groups_tests.rb +0 -59
  91. data/tests/models/iam/instance_profile_tests.rb +0 -18
  92. data/tests/models/iam/managed_policies_tests.rb +0 -89
  93. data/tests/models/iam/policies_tests.rb +0 -57
  94. data/tests/models/iam/roles_tests.rb +0 -71
  95. data/tests/models/iam/users_tests.rb +0 -119
  96. data/tests/models/rds/cluster_tests.rb +0 -54
  97. data/tests/models/rds/clusters_tests.rb +0 -5
  98. data/tests/models/rds/event_subscription_tests.rb +0 -9
  99. data/tests/models/rds/event_subscriptions_tests.rb +0 -6
  100. data/tests/models/rds/helper.rb +0 -25
  101. data/tests/models/rds/instance_option_tests.rb +0 -14
  102. data/tests/models/rds/parameter_group_tests.rb +0 -24
  103. data/tests/models/rds/parameter_groups_tests.rb +0 -8
  104. data/tests/models/rds/security_group_tests.rb +0 -77
  105. data/tests/models/rds/security_groups_tests.rb +0 -5
  106. data/tests/models/rds/server_tests.rb +0 -131
  107. data/tests/models/rds/servers_tests.rb +0 -24
  108. data/tests/models/rds/snapshot_tests.rb +0 -12
  109. data/tests/models/rds/snapshots_tests.rb +0 -12
  110. data/tests/models/rds/tagging_tests.rb +0 -20
  111. data/tests/models/sns/topic_tests.rb +0 -15
  112. data/tests/models/sns/topics_tests.rb +0 -6
  113. data/tests/models/storage/directory_tests.rb +0 -202
  114. data/tests/models/storage/file_tests.rb +0 -129
  115. data/tests/models/storage/files_tests.rb +0 -90
  116. data/tests/models/storage/url_tests.rb +0 -25
  117. data/tests/models/storage/version_tests.rb +0 -52
  118. data/tests/models/storage/versions_tests.rb +0 -51
  119. data/tests/models/support/trusted_advisor_tests.rb +0 -25
  120. data/tests/parsers/compute/describe_images_tests.rb +0 -33
  121. data/tests/parsers/elb/describe_load_balancers.rb +0 -65
  122. data/tests/parsers/elbv2/create_load_balancer_tests.rb +0 -48
  123. data/tests/parsers/elbv2/describe_listeners_tests.rb +0 -76
  124. data/tests/parsers/elbv2/describe_load_balancers_tests.rb +0 -54
  125. data/tests/parsers/elbv2/describe_tags_tests.rb +0 -35
  126. data/tests/requests/auto_scaling/auto_scaling_tests.rb +0 -111
  127. data/tests/requests/auto_scaling/describe_types_tests.rb +0 -102
  128. data/tests/requests/auto_scaling/helper.rb +0 -229
  129. data/tests/requests/auto_scaling/model_tests.rb +0 -235
  130. data/tests/requests/auto_scaling/notification_configuration_tests.rb +0 -124
  131. data/tests/requests/auto_scaling/tag_tests.rb +0 -63
  132. data/tests/requests/beanstalk/application_tests.rb +0 -140
  133. data/tests/requests/beanstalk/solution_stack_tests.rb +0 -22
  134. data/tests/requests/cdn/cdn_tests.rb +0 -252
  135. data/tests/requests/cloud_formation/stack_tests.rb +0 -167
  136. data/tests/requests/cloud_watch/get_metric_statistics_tests.rb +0 -28
  137. data/tests/requests/cloud_watch/list_metrics_test.rb +0 -64
  138. data/tests/requests/cloud_watch/put_metric_data_tests.rb +0 -36
  139. data/tests/requests/compute/address_tests.rb +0 -144
  140. data/tests/requests/compute/assign_private_ip_tests.rb +0 -55
  141. data/tests/requests/compute/availability_zone_tests.rb +0 -25
  142. data/tests/requests/compute/client_tests.rb +0 -25
  143. data/tests/requests/compute/dhcp_options_tests.rb +0 -39
  144. data/tests/requests/compute/helper.rb +0 -27
  145. data/tests/requests/compute/image_tests.rb +0 -169
  146. data/tests/requests/compute/instance_attrib_tests.rb +0 -168
  147. data/tests/requests/compute/instance_tests.rb +0 -338
  148. data/tests/requests/compute/internet_gateway_tests.rb +0 -49
  149. data/tests/requests/compute/key_pair_tests.rb +0 -67
  150. data/tests/requests/compute/network_acl_tests.rb +0 -112
  151. data/tests/requests/compute/network_interface_tests.rb +0 -239
  152. data/tests/requests/compute/placement_group_tests.rb +0 -48
  153. data/tests/requests/compute/region_tests.rb +0 -52
  154. data/tests/requests/compute/route_tests.rb +0 -341
  155. data/tests/requests/compute/security_group_tests.rb +0 -457
  156. data/tests/requests/compute/snapshot_tests.rb +0 -77
  157. data/tests/requests/compute/spot_datafeed_subscription_tests.rb +0 -47
  158. data/tests/requests/compute/spot_instance_tests.rb +0 -55
  159. data/tests/requests/compute/spot_price_history_tests.rb +0 -23
  160. data/tests/requests/compute/subnet_tests.rb +0 -87
  161. data/tests/requests/compute/tag_tests.rb +0 -101
  162. data/tests/requests/compute/volume_tests.rb +0 -263
  163. data/tests/requests/compute/vpc_tests.rb +0 -222
  164. data/tests/requests/data_pipeline/helper.rb +0 -78
  165. data/tests/requests/data_pipeline/pipeline_tests.rb +0 -80
  166. data/tests/requests/dns/change_resource_record_sets_tests.rb +0 -34
  167. data/tests/requests/dns/dns_tests.rb +0 -240
  168. data/tests/requests/dns/health_check_tests.rb +0 -159
  169. data/tests/requests/dns/helper.rb +0 -21
  170. data/tests/requests/dynamodb/item_tests.rb +0 -137
  171. data/tests/requests/dynamodb/table_tests.rb +0 -99
  172. data/tests/requests/ecs/cluster_tests.rb +0 -112
  173. data/tests/requests/ecs/container_instance_tests.rb +0 -119
  174. data/tests/requests/ecs/helper.rb +0 -276
  175. data/tests/requests/ecs/sample_task_definition1.json +0 -56
  176. data/tests/requests/ecs/service_tests.rb +0 -132
  177. data/tests/requests/ecs/task_definitions_tests.rb +0 -97
  178. data/tests/requests/ecs/task_tests.rb +0 -145
  179. data/tests/requests/efs/file_system_tests.rb +0 -152
  180. data/tests/requests/efs/helper.rb +0 -44
  181. data/tests/requests/elasticache/cache_cluster_tests.rb +0 -137
  182. data/tests/requests/elasticache/describe_events.rb +0 -17
  183. data/tests/requests/elasticache/describe_reserved_cache_nodes.rb +0 -17
  184. data/tests/requests/elasticache/helper.rb +0 -103
  185. data/tests/requests/elasticache/parameter_group_tests.rb +0 -105
  186. data/tests/requests/elasticache/security_group_tests.rb +0 -108
  187. data/tests/requests/elasticache/subnet_group_tests.rb +0 -52
  188. data/tests/requests/elb/helper.rb +0 -91
  189. data/tests/requests/elb/listener_tests.rb +0 -68
  190. data/tests/requests/elb/load_balancer_tests.rb +0 -89
  191. data/tests/requests/elb/policy_tests.rb +0 -132
  192. data/tests/requests/elbv2/helper.rb +0 -66
  193. data/tests/requests/elbv2/load_balancer_tests.rb +0 -50
  194. data/tests/requests/emr/helper.rb +0 -167
  195. data/tests/requests/emr/instance_group_tests.rb +0 -106
  196. data/tests/requests/emr/job_flow_tests.rb +0 -88
  197. data/tests/requests/federation/get_signin_token_tests.rb +0 -11
  198. data/tests/requests/glacier/archive_tests.rb +0 -13
  199. data/tests/requests/glacier/multipart_upload_tests.rb +0 -29
  200. data/tests/requests/glacier/tree_hash_tests.rb +0 -91
  201. data/tests/requests/glacier/vault_tests.rb +0 -35
  202. data/tests/requests/iam/access_key_tests.rb +0 -53
  203. data/tests/requests/iam/account_policy_tests.rb +0 -20
  204. data/tests/requests/iam/account_tests.rb +0 -34
  205. data/tests/requests/iam/group_policy_tests.rb +0 -48
  206. data/tests/requests/iam/group_tests.rb +0 -44
  207. data/tests/requests/iam/helper.rb +0 -154
  208. data/tests/requests/iam/instance_profile_tests.rb +0 -44
  209. data/tests/requests/iam/login_profile_tests.rb +0 -62
  210. data/tests/requests/iam/managed_policy_tests.rb +0 -110
  211. data/tests/requests/iam/mfa_tests.rb +0 -23
  212. data/tests/requests/iam/role_tests.rb +0 -156
  213. data/tests/requests/iam/server_certificate_tests.rb +0 -130
  214. data/tests/requests/iam/user_policy_tests.rb +0 -45
  215. data/tests/requests/iam/user_tests.rb +0 -78
  216. data/tests/requests/iam/versioned_managed_policy_tests.rb +0 -105
  217. data/tests/requests/kinesis/helper.rb +0 -111
  218. data/tests/requests/kinesis/stream_tests.rb +0 -169
  219. data/tests/requests/kms/helper.rb +0 -27
  220. data/tests/requests/kms/key_tests.rb +0 -23
  221. data/tests/requests/lambda/function_sample_1.js +0 -9
  222. data/tests/requests/lambda/function_sample_2.js +0 -9
  223. data/tests/requests/lambda/function_tests.rb +0 -460
  224. data/tests/requests/lambda/helper.rb +0 -81
  225. data/tests/requests/rds/cluster_snapshot_tests.rb +0 -43
  226. data/tests/requests/rds/cluster_tests.rb +0 -37
  227. data/tests/requests/rds/db_engine_versions.rb +0 -7
  228. data/tests/requests/rds/db_snapshot_tests.rb +0 -62
  229. data/tests/requests/rds/describe_events.rb +0 -16
  230. data/tests/requests/rds/event_subscription_tests.rb +0 -30
  231. data/tests/requests/rds/helper.rb +0 -406
  232. data/tests/requests/rds/instance_option_tests.rb +0 -27
  233. data/tests/requests/rds/instance_tests.rb +0 -149
  234. data/tests/requests/rds/log_file_tests.rb +0 -19
  235. data/tests/requests/rds/parameter_group_tests.rb +0 -62
  236. data/tests/requests/rds/parameter_request_tests.rb +0 -32
  237. data/tests/requests/rds/security_group_tests.rb +0 -101
  238. data/tests/requests/rds/subnet_groups_tests.rb +0 -52
  239. data/tests/requests/rds/tagging_tests.rb +0 -78
  240. data/tests/requests/redshift/cluster_parameter_group_tests.rb +0 -76
  241. data/tests/requests/redshift/cluster_security_group_tests.rb +0 -42
  242. data/tests/requests/redshift/cluster_snapshot_tests.rb +0 -73
  243. data/tests/requests/redshift/cluster_tests.rb +0 -80
  244. data/tests/requests/ses/helper.rb +0 -9
  245. data/tests/requests/ses/verified_domain_identity_tests.rb +0 -16
  246. data/tests/requests/ses/verified_email_address_tests.rb +0 -27
  247. data/tests/requests/simpledb/attributes_tests.rb +0 -86
  248. data/tests/requests/simpledb/domain_tests.rb +0 -51
  249. data/tests/requests/simpledb/helper.rb +0 -10
  250. data/tests/requests/sns/helper.rb +0 -9
  251. data/tests/requests/sns/subscription_tests.rb +0 -86
  252. data/tests/requests/sns/topic_tests.rb +0 -53
  253. data/tests/requests/sqs/helper.rb +0 -9
  254. data/tests/requests/sqs/message_tests.rb +0 -51
  255. data/tests/requests/sqs/queue_tests.rb +0 -50
  256. data/tests/requests/storage/acl_utils_tests.rb +0 -209
  257. data/tests/requests/storage/bucket_tests.rb +0 -416
  258. data/tests/requests/storage/cors_utils_tests.rb +0 -108
  259. data/tests/requests/storage/delete_multiple_objects_tests.rb +0 -12
  260. data/tests/requests/storage/multipart_copy_tests.rb +0 -93
  261. data/tests/requests/storage/multipart_upload_tests.rb +0 -121
  262. data/tests/requests/storage/object_tests.rb +0 -269
  263. data/tests/requests/storage/versioning_tests.rb +0 -300
  264. data/tests/requests/sts/assume_role_tests.rb +0 -19
  265. data/tests/requests/sts/assume_role_with_saml_tests.rb +0 -18
  266. data/tests/requests/sts/assume_role_with_web_identity_tests.rb +0 -28
  267. data/tests/requests/sts/get_federation_token_tests.rb +0 -20
  268. data/tests/requests/sts/session_token_tests.rb +0 -16
  269. data/tests/requests/support/helper.rb +0 -43
  270. data/tests/requests/support/trusted_advisor_check_tests.rb +0 -16
  271. data/tests/signaturev4_tests.rb +0 -106
  272. data/tests/signed_params_tests.rb +0 -17
  273. data/tests/storage_tests.rb +0 -7
@@ -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
@@ -1,11 +0,0 @@
1
- module Shindo
2
- class Tests
3
- def responds_to(method_names)
4
- [*method_names].each do |method_name|
5
- tests("#respond_to?(:#{method_name})").returns(true) do
6
- @instance.respond_to?(method_name)
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Shindo.tests('Fog::Schema::DataValidator', 'meta') do
4
-
5
- validator = Fog::Schema::DataValidator.new
6
-
7
- tests('#validate') do
8
- tests('returns true') do
9
- returns(true, 'when value matches schema expectation') do
10
- validator.validate({ 'key' => 'Value' }, 'key' => String)
11
- end
12
-
13
- returns(true, 'when values within an array all match schema expectation') do
14
- validator.validate({ 'key' => [1, 2] }, 'key' => [Integer])
15
- end
16
-
17
- returns(true, 'when nested values match schema expectation') do
18
- validator.validate({ 'key' => { nested_key: 'Value' } }, 'key' => { nested_key: String })
19
- end
20
-
21
- returns(true, 'when collection of values all match schema expectation') do
22
- validator.validate([{ 'key' => 'Value' }, 'key' => 'Value'], [{ 'key' => String }])
23
- end
24
-
25
- returns(true, 'when collection is empty although schema covers optional members') do
26
- validator.validate([], [{ 'key' => String }])
27
- end
28
-
29
- returns(true, 'when additional keys are passed and not strict') do
30
- validator.validate({ 'key' => 'Value', extra: 'Bonus' }, { 'key' => String }, allow_extra_keys: true)
31
- end
32
-
33
- returns(true, 'when value is nil and schema expects NilClass') do
34
- validator.validate({ 'key' => nil }, 'key' => NilClass)
35
- end
36
-
37
- returns(true, 'when value and schema match as hashes') do
38
- validator.validate({}, {})
39
- end
40
-
41
- returns(true, 'when value and schema match as arrays') do
42
- validator.validate([], [])
43
- end
44
-
45
- returns(true, 'when value is a Time') do
46
- validator.validate({ 'time' => Time.now }, 'time' => Time)
47
- end
48
-
49
- returns(true, 'when key is missing but value should be NilClass (#1477)') do
50
- validator.validate({}, { 'key' => NilClass }, allow_optional_rules: true)
51
- end
52
-
53
- returns(true, 'when key is missing but value is nullable (#1477)') do
54
- validator.validate({}, { 'key' => Fog::Nullable::String }, allow_optional_rules: true)
55
- end
56
- end
57
-
58
- tests('returns false') do
59
- returns(false, 'when value does not match schema expectation') do
60
- validator.validate({ 'key' => nil }, 'key' => String)
61
- end
62
-
63
- returns(false, 'when key formats do not match') do
64
- validator.validate({ 'key' => 'Value' }, key: String)
65
- end
66
-
67
- returns(false, 'when additional keys are passed and strict') do
68
- validator.validate({ 'key' => 'Missing' }, {})
69
- end
70
-
71
- returns(false, 'when some keys do not appear') do
72
- validator.validate({}, 'key' => String)
73
- end
74
-
75
- returns(false, 'when collection contains a member that does not match schema') do
76
- validator.validate([{ 'key' => 'Value' }, 'key' => 5], ['key' => String])
77
- end
78
-
79
- returns(false, 'when collection has multiple schema patterns') do
80
- validator.validate([{ 'key' => 'Value' }], [{ 'key' => Integer }, { 'key' => String }])
81
- end
82
-
83
- returns(false, 'when hash and array are compared') do
84
- validator.validate({}, [])
85
- end
86
-
87
- returns(false, 'when array and hash are compared') do
88
- validator.validate([], {})
89
- end
90
-
91
- returns(false, 'when a hash is expected but another data type is found') do
92
- validator.validate({ 'key' => { nested_key: [] } }, 'key' => { nested_key: {} })
93
- end
94
-
95
- returns(false, 'when key is missing but value should be NilClass (#1477)') do
96
- validator.validate({}, { 'key' => NilClass }, allow_optional_rules: false)
97
- end
98
-
99
- returns(false, 'when key is missing but value is nullable (#1477)') do
100
- validator.validate({}, { 'key' => Fog::Nullable::String }, allow_optional_rules: false)
101
- end
102
- end
103
- end
104
- end
@@ -1,9 +0,0 @@
1
- module Shindo
2
- class Tests
3
- def succeeds(&block)
4
- test('succeeds') do
5
- !instance_eval(&Proc.new(&block)).nil?
6
- end
7
- end
8
- end
9
- end