fog-aws 3.12.0 → 3.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (286) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +70 -4
  3. data/README.md +57 -0
  4. data/fog-aws.gemspec +3 -4
  5. data/lib/fog/aws/credential_fetcher.rb +8 -1
  6. data/lib/fog/aws/iam/default_policies.json +1574 -0
  7. data/lib/fog/aws/iam/default_policy_versions.json +3373 -0
  8. data/lib/fog/aws/models/compute/flavors.rb +160 -0
  9. data/lib/fog/aws/models/storage/directories.rb +1 -0
  10. data/lib/fog/aws/models/storage/file.rb +8 -7
  11. data/lib/fog/aws/parsers/iam/get_group_policy.rb +1 -1
  12. data/lib/fog/aws/parsers/iam/get_role_policy.rb +1 -1
  13. data/lib/fog/aws/parsers/iam/get_user_policy.rb +1 -1
  14. data/lib/fog/aws/parsers/iam/policy_version.rb +1 -1
  15. data/lib/fog/aws/requests/compute/create_network_interface.rb +7 -4
  16. data/lib/fog/aws/requests/compute/create_subnet.rb +3 -3
  17. data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +12 -10
  18. data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +10 -7
  19. data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +9 -8
  20. data/lib/fog/aws/requests/storage/sync_clock.rb +1 -1
  21. data/lib/fog/aws/storage.rb +5 -1
  22. data/lib/fog/aws/version.rb +1 -1
  23. metadata +5 -280
  24. data/tests/credentials_tests.rb +0 -190
  25. data/tests/helper.rb +0 -29
  26. data/tests/helpers/collection_helper.rb +0 -90
  27. data/tests/helpers/compute/flavors_helper.rb +0 -28
  28. data/tests/helpers/compute/server_helper.rb +0 -23
  29. data/tests/helpers/compute/servers_helper.rb +0 -8
  30. data/tests/helpers/dns_helper.rb +0 -56
  31. data/tests/helpers/formats_helper.rb +0 -100
  32. data/tests/helpers/formats_helper_tests.rb +0 -107
  33. data/tests/helpers/mock_helper.rb +0 -109
  34. data/tests/helpers/model_helper.rb +0 -30
  35. data/tests/helpers/responds_to_helper.rb +0 -11
  36. data/tests/helpers/schema_validator_tests.rb +0 -104
  37. data/tests/helpers/succeeds_helper.rb +0 -9
  38. data/tests/lorem.txt +0 -1
  39. data/tests/models/auto_scaling/activities_tests.rb +0 -6
  40. data/tests/models/auto_scaling/configuration_test.rb +0 -13
  41. data/tests/models/auto_scaling/configurations_tests.rb +0 -11
  42. data/tests/models/auto_scaling/groups_test.rb +0 -27
  43. data/tests/models/auto_scaling/helper.rb +0 -0
  44. data/tests/models/auto_scaling/instance_tests.rb +0 -15
  45. data/tests/models/auto_scaling/instances_tests.rb +0 -6
  46. data/tests/models/beanstalk/application_tests.rb +0 -69
  47. data/tests/models/beanstalk/applications_tests.rb +0 -7
  48. data/tests/models/beanstalk/environment_tests.rb +0 -131
  49. data/tests/models/beanstalk/environments_tests.rb +0 -34
  50. data/tests/models/beanstalk/template_tests.rb +0 -47
  51. data/tests/models/beanstalk/templates_tests.rb +0 -62
  52. data/tests/models/beanstalk/version_tests.rb +0 -66
  53. data/tests/models/beanstalk/versions_tests.rb +0 -60
  54. data/tests/models/cdn/distribution_tests.rb +0 -15
  55. data/tests/models/cdn/distributions_tests.rb +0 -15
  56. data/tests/models/cdn/invalidation_tests.rb +0 -31
  57. data/tests/models/cdn/invalidations_tests.rb +0 -14
  58. data/tests/models/cdn/streaming_distribution_tests.rb +0 -15
  59. data/tests/models/cdn/streaming_distributions_tests.rb +0 -15
  60. data/tests/models/cloud_watch/alarm_data_tests.rb +0 -42
  61. data/tests/models/cloud_watch/alarm_history_tests.rb +0 -22
  62. data/tests/models/cloud_watch/metric_statistics_tests.rb +0 -51
  63. data/tests/models/cloud_watch/metrics_tests.rb +0 -32
  64. data/tests/models/compute/address_tests.rb +0 -43
  65. data/tests/models/compute/addresses_tests.rb +0 -5
  66. data/tests/models/compute/dhcp_option_tests.rb +0 -3
  67. data/tests/models/compute/dhcp_options_tests.rb +0 -3
  68. data/tests/models/compute/internet_gateway_tests.rb +0 -3
  69. data/tests/models/compute/internet_gateways_tests.rb +0 -3
  70. data/tests/models/compute/key_pair_tests.rb +0 -26
  71. data/tests/models/compute/key_pairs_tests.rb +0 -5
  72. data/tests/models/compute/network_acl_tests.rb +0 -109
  73. data/tests/models/compute/network_acls_tests.rb +0 -20
  74. data/tests/models/compute/network_interfaces_test.rb +0 -12
  75. data/tests/models/compute/security_group_tests.rb +0 -98
  76. data/tests/models/compute/security_groups_tests.rb +0 -5
  77. data/tests/models/compute/server_tests.rb +0 -94
  78. data/tests/models/compute/snapshot_tests.rb +0 -10
  79. data/tests/models/compute/snapshots_tests.rb +0 -10
  80. data/tests/models/compute/subnet_tests.rb +0 -13
  81. data/tests/models/compute/subnets_tests.rb +0 -5
  82. data/tests/models/compute/volume_tests.rb +0 -65
  83. data/tests/models/compute/volumes_tests.rb +0 -5
  84. data/tests/models/compute/vpc_tests.rb +0 -26
  85. data/tests/models/compute/vpcs_tests.rb +0 -19
  86. data/tests/models/data_pipeline/pipeline_tests.rb +0 -8
  87. data/tests/models/data_pipeline/pipelines_tests.rb +0 -8
  88. data/tests/models/dns/record_tests.rb +0 -33
  89. data/tests/models/dns/records_tests.rb +0 -41
  90. data/tests/models/dns/zone_tests.rb +0 -4
  91. data/tests/models/dns/zones_tests.rb +0 -4
  92. data/tests/models/efs/file_system_tests.rb +0 -12
  93. data/tests/models/efs/mount_target_tests.rb +0 -45
  94. data/tests/models/efs/mount_targets_tests.rb +0 -30
  95. data/tests/models/elasticache/cluster_tests.rb +0 -30
  96. data/tests/models/elasticache/parameter_groups_tests.rb +0 -15
  97. data/tests/models/elasticache/security_groups_tests.rb +0 -52
  98. data/tests/models/elasticache/subnet_groups_tests.rb +0 -43
  99. data/tests/models/elb/model_tests.rb +0 -360
  100. data/tests/models/elb/tagging_tests.rb +0 -15
  101. data/tests/models/glacier/model_tests.rb +0 -47
  102. data/tests/models/iam/access_keys_tests.rb +0 -53
  103. data/tests/models/iam/groups_tests.rb +0 -59
  104. data/tests/models/iam/instance_profile_tests.rb +0 -18
  105. data/tests/models/iam/managed_policies_tests.rb +0 -89
  106. data/tests/models/iam/policies_tests.rb +0 -57
  107. data/tests/models/iam/roles_tests.rb +0 -71
  108. data/tests/models/iam/users_tests.rb +0 -119
  109. data/tests/models/rds/cluster_tests.rb +0 -54
  110. data/tests/models/rds/clusters_tests.rb +0 -5
  111. data/tests/models/rds/event_subscription_tests.rb +0 -9
  112. data/tests/models/rds/event_subscriptions_tests.rb +0 -6
  113. data/tests/models/rds/helper.rb +0 -25
  114. data/tests/models/rds/instance_option_tests.rb +0 -14
  115. data/tests/models/rds/parameter_group_tests.rb +0 -24
  116. data/tests/models/rds/parameter_groups_tests.rb +0 -8
  117. data/tests/models/rds/security_group_tests.rb +0 -77
  118. data/tests/models/rds/security_groups_tests.rb +0 -5
  119. data/tests/models/rds/server_tests.rb +0 -131
  120. data/tests/models/rds/servers_tests.rb +0 -24
  121. data/tests/models/rds/snapshot_tests.rb +0 -12
  122. data/tests/models/rds/snapshots_tests.rb +0 -12
  123. data/tests/models/rds/tagging_tests.rb +0 -20
  124. data/tests/models/sns/topic_tests.rb +0 -15
  125. data/tests/models/sns/topics_tests.rb +0 -6
  126. data/tests/models/storage/directory_tests.rb +0 -202
  127. data/tests/models/storage/file_tests.rb +0 -129
  128. data/tests/models/storage/files_tests.rb +0 -90
  129. data/tests/models/storage/url_tests.rb +0 -25
  130. data/tests/models/storage/version_tests.rb +0 -52
  131. data/tests/models/storage/versions_tests.rb +0 -51
  132. data/tests/models/support/trusted_advisor_tests.rb +0 -25
  133. data/tests/parsers/compute/describe_images_tests.rb +0 -33
  134. data/tests/parsers/elb/describe_load_balancers.rb +0 -65
  135. data/tests/parsers/elbv2/create_load_balancer_tests.rb +0 -48
  136. data/tests/parsers/elbv2/describe_listeners_tests.rb +0 -76
  137. data/tests/parsers/elbv2/describe_load_balancers_tests.rb +0 -54
  138. data/tests/parsers/elbv2/describe_tags_tests.rb +0 -35
  139. data/tests/requests/auto_scaling/auto_scaling_tests.rb +0 -111
  140. data/tests/requests/auto_scaling/describe_types_tests.rb +0 -102
  141. data/tests/requests/auto_scaling/helper.rb +0 -229
  142. data/tests/requests/auto_scaling/model_tests.rb +0 -235
  143. data/tests/requests/auto_scaling/notification_configuration_tests.rb +0 -124
  144. data/tests/requests/auto_scaling/tag_tests.rb +0 -63
  145. data/tests/requests/beanstalk/application_tests.rb +0 -140
  146. data/tests/requests/beanstalk/solution_stack_tests.rb +0 -22
  147. data/tests/requests/cdn/cdn_tests.rb +0 -252
  148. data/tests/requests/cloud_formation/stack_tests.rb +0 -167
  149. data/tests/requests/cloud_watch/get_metric_statistics_tests.rb +0 -28
  150. data/tests/requests/cloud_watch/list_metrics_test.rb +0 -64
  151. data/tests/requests/cloud_watch/put_metric_data_tests.rb +0 -36
  152. data/tests/requests/compute/address_tests.rb +0 -144
  153. data/tests/requests/compute/assign_private_ip_tests.rb +0 -55
  154. data/tests/requests/compute/availability_zone_tests.rb +0 -25
  155. data/tests/requests/compute/client_tests.rb +0 -25
  156. data/tests/requests/compute/dhcp_options_tests.rb +0 -39
  157. data/tests/requests/compute/helper.rb +0 -27
  158. data/tests/requests/compute/image_tests.rb +0 -169
  159. data/tests/requests/compute/instance_attrib_tests.rb +0 -168
  160. data/tests/requests/compute/instance_tests.rb +0 -338
  161. data/tests/requests/compute/internet_gateway_tests.rb +0 -49
  162. data/tests/requests/compute/key_pair_tests.rb +0 -67
  163. data/tests/requests/compute/network_acl_tests.rb +0 -112
  164. data/tests/requests/compute/network_interface_tests.rb +0 -239
  165. data/tests/requests/compute/placement_group_tests.rb +0 -48
  166. data/tests/requests/compute/region_tests.rb +0 -52
  167. data/tests/requests/compute/route_tests.rb +0 -341
  168. data/tests/requests/compute/security_group_tests.rb +0 -457
  169. data/tests/requests/compute/snapshot_tests.rb +0 -77
  170. data/tests/requests/compute/spot_datafeed_subscription_tests.rb +0 -47
  171. data/tests/requests/compute/spot_instance_tests.rb +0 -55
  172. data/tests/requests/compute/spot_price_history_tests.rb +0 -23
  173. data/tests/requests/compute/subnet_tests.rb +0 -87
  174. data/tests/requests/compute/tag_tests.rb +0 -101
  175. data/tests/requests/compute/volume_tests.rb +0 -263
  176. data/tests/requests/compute/vpc_tests.rb +0 -222
  177. data/tests/requests/data_pipeline/helper.rb +0 -78
  178. data/tests/requests/data_pipeline/pipeline_tests.rb +0 -80
  179. data/tests/requests/dns/change_resource_record_sets_tests.rb +0 -34
  180. data/tests/requests/dns/dns_tests.rb +0 -240
  181. data/tests/requests/dns/health_check_tests.rb +0 -159
  182. data/tests/requests/dns/helper.rb +0 -21
  183. data/tests/requests/dynamodb/item_tests.rb +0 -137
  184. data/tests/requests/dynamodb/table_tests.rb +0 -99
  185. data/tests/requests/ecs/cluster_tests.rb +0 -112
  186. data/tests/requests/ecs/container_instance_tests.rb +0 -119
  187. data/tests/requests/ecs/helper.rb +0 -276
  188. data/tests/requests/ecs/sample_task_definition1.json +0 -56
  189. data/tests/requests/ecs/service_tests.rb +0 -132
  190. data/tests/requests/ecs/task_definitions_tests.rb +0 -97
  191. data/tests/requests/ecs/task_tests.rb +0 -145
  192. data/tests/requests/efs/file_system_tests.rb +0 -152
  193. data/tests/requests/efs/helper.rb +0 -44
  194. data/tests/requests/elasticache/cache_cluster_tests.rb +0 -137
  195. data/tests/requests/elasticache/describe_events.rb +0 -17
  196. data/tests/requests/elasticache/describe_reserved_cache_nodes.rb +0 -17
  197. data/tests/requests/elasticache/helper.rb +0 -103
  198. data/tests/requests/elasticache/parameter_group_tests.rb +0 -105
  199. data/tests/requests/elasticache/security_group_tests.rb +0 -108
  200. data/tests/requests/elasticache/subnet_group_tests.rb +0 -52
  201. data/tests/requests/elb/helper.rb +0 -91
  202. data/tests/requests/elb/listener_tests.rb +0 -68
  203. data/tests/requests/elb/load_balancer_tests.rb +0 -89
  204. data/tests/requests/elb/policy_tests.rb +0 -132
  205. data/tests/requests/elbv2/helper.rb +0 -66
  206. data/tests/requests/elbv2/load_balancer_tests.rb +0 -50
  207. data/tests/requests/emr/helper.rb +0 -167
  208. data/tests/requests/emr/instance_group_tests.rb +0 -106
  209. data/tests/requests/emr/job_flow_tests.rb +0 -88
  210. data/tests/requests/federation/get_signin_token_tests.rb +0 -11
  211. data/tests/requests/glacier/archive_tests.rb +0 -13
  212. data/tests/requests/glacier/multipart_upload_tests.rb +0 -29
  213. data/tests/requests/glacier/tree_hash_tests.rb +0 -91
  214. data/tests/requests/glacier/vault_tests.rb +0 -35
  215. data/tests/requests/iam/access_key_tests.rb +0 -53
  216. data/tests/requests/iam/account_policy_tests.rb +0 -20
  217. data/tests/requests/iam/account_tests.rb +0 -34
  218. data/tests/requests/iam/group_policy_tests.rb +0 -48
  219. data/tests/requests/iam/group_tests.rb +0 -44
  220. data/tests/requests/iam/helper.rb +0 -154
  221. data/tests/requests/iam/instance_profile_tests.rb +0 -44
  222. data/tests/requests/iam/login_profile_tests.rb +0 -62
  223. data/tests/requests/iam/managed_policy_tests.rb +0 -110
  224. data/tests/requests/iam/mfa_tests.rb +0 -23
  225. data/tests/requests/iam/role_tests.rb +0 -156
  226. data/tests/requests/iam/server_certificate_tests.rb +0 -130
  227. data/tests/requests/iam/user_policy_tests.rb +0 -45
  228. data/tests/requests/iam/user_tests.rb +0 -78
  229. data/tests/requests/iam/versioned_managed_policy_tests.rb +0 -105
  230. data/tests/requests/kinesis/helper.rb +0 -111
  231. data/tests/requests/kinesis/stream_tests.rb +0 -169
  232. data/tests/requests/kms/helper.rb +0 -27
  233. data/tests/requests/kms/key_tests.rb +0 -23
  234. data/tests/requests/lambda/function_sample_1.js +0 -9
  235. data/tests/requests/lambda/function_sample_2.js +0 -9
  236. data/tests/requests/lambda/function_tests.rb +0 -460
  237. data/tests/requests/lambda/helper.rb +0 -81
  238. data/tests/requests/rds/cluster_snapshot_tests.rb +0 -43
  239. data/tests/requests/rds/cluster_tests.rb +0 -37
  240. data/tests/requests/rds/db_engine_versions.rb +0 -7
  241. data/tests/requests/rds/db_snapshot_tests.rb +0 -62
  242. data/tests/requests/rds/describe_events.rb +0 -16
  243. data/tests/requests/rds/event_subscription_tests.rb +0 -30
  244. data/tests/requests/rds/helper.rb +0 -406
  245. data/tests/requests/rds/instance_option_tests.rb +0 -27
  246. data/tests/requests/rds/instance_tests.rb +0 -149
  247. data/tests/requests/rds/log_file_tests.rb +0 -19
  248. data/tests/requests/rds/parameter_group_tests.rb +0 -62
  249. data/tests/requests/rds/parameter_request_tests.rb +0 -32
  250. data/tests/requests/rds/security_group_tests.rb +0 -101
  251. data/tests/requests/rds/subnet_groups_tests.rb +0 -52
  252. data/tests/requests/rds/tagging_tests.rb +0 -78
  253. data/tests/requests/redshift/cluster_parameter_group_tests.rb +0 -76
  254. data/tests/requests/redshift/cluster_security_group_tests.rb +0 -42
  255. data/tests/requests/redshift/cluster_snapshot_tests.rb +0 -73
  256. data/tests/requests/redshift/cluster_tests.rb +0 -80
  257. data/tests/requests/ses/helper.rb +0 -9
  258. data/tests/requests/ses/verified_domain_identity_tests.rb +0 -16
  259. data/tests/requests/ses/verified_email_address_tests.rb +0 -27
  260. data/tests/requests/simpledb/attributes_tests.rb +0 -86
  261. data/tests/requests/simpledb/domain_tests.rb +0 -51
  262. data/tests/requests/simpledb/helper.rb +0 -10
  263. data/tests/requests/sns/helper.rb +0 -9
  264. data/tests/requests/sns/subscription_tests.rb +0 -86
  265. data/tests/requests/sns/topic_tests.rb +0 -53
  266. data/tests/requests/sqs/helper.rb +0 -9
  267. data/tests/requests/sqs/message_tests.rb +0 -51
  268. data/tests/requests/sqs/queue_tests.rb +0 -50
  269. data/tests/requests/storage/acl_utils_tests.rb +0 -209
  270. data/tests/requests/storage/bucket_tests.rb +0 -416
  271. data/tests/requests/storage/cors_utils_tests.rb +0 -108
  272. data/tests/requests/storage/delete_multiple_objects_tests.rb +0 -12
  273. data/tests/requests/storage/multipart_copy_tests.rb +0 -93
  274. data/tests/requests/storage/multipart_upload_tests.rb +0 -121
  275. data/tests/requests/storage/object_tests.rb +0 -269
  276. data/tests/requests/storage/versioning_tests.rb +0 -300
  277. data/tests/requests/sts/assume_role_tests.rb +0 -19
  278. data/tests/requests/sts/assume_role_with_saml_tests.rb +0 -18
  279. data/tests/requests/sts/assume_role_with_web_identity_tests.rb +0 -28
  280. data/tests/requests/sts/get_federation_token_tests.rb +0 -20
  281. data/tests/requests/sts/session_token_tests.rb +0 -16
  282. data/tests/requests/support/helper.rb +0 -43
  283. data/tests/requests/support/trusted_advisor_check_tests.rb +0 -16
  284. data/tests/signaturev4_tests.rb +0 -106
  285. data/tests/signed_params_tests.rb +0 -17
  286. data/tests/storage_tests.rb +0 -7
@@ -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
data/tests/lorem.txt DELETED
@@ -1 +0,0 @@
1
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
@@ -1,6 +0,0 @@
1
- Shindo.tests('AWS::AutoScaling | activities', ['aws', 'auto_scaling_m']) do
2
-
3
- pending # FIXME: activity#save is not implemented
4
- collection_tests(Fog::AWS[:auto_scaling].activities, {}, false)
5
-
6
- end
@@ -1,13 +0,0 @@
1
- Shindo.tests('AWS::AutoScaling | configuration', ['aws', 'auto_scaling_m']) do
2
-
3
- params = {
4
- :id => uniq_id,
5
- :image_id => 'ami-8c1fece5',
6
- :instance_type => 't1.micro'
7
- }
8
-
9
- model_tests(Fog::AWS[:auto_scaling].configurations, params, false) do
10
- @instance.wait_for { ready? }
11
- end
12
-
13
- end
@@ -1,11 +0,0 @@
1
- Shindo.tests('AWS::AutoScaling | configurations', ['aws', 'auto_scaling_m']) do
2
-
3
- params = {
4
- :id => uniq_id,
5
- :image_id => 'ami-8c1fece5',
6
- :instance_type => 't1.micro'
7
- }
8
-
9
- collection_tests(Fog::AWS[:auto_scaling].configurations, params, false)
10
-
11
- end
@@ -1,27 +0,0 @@
1
- Shindo.tests('AWS::AutoScaling | group', ['aws', 'auto_scaling_m']) do
2
-
3
- params = {
4
- :id => uniq_id,
5
- :auto_scaling_group_name => "name",
6
- :availability_zones => [],
7
- :launch_configuration_name => "lc"
8
- }
9
-
10
- lc_params = {
11
- :id => params[:launch_configuration_name],
12
- :image_id => "image-id",
13
- :instance_type => "instance-type",
14
- }
15
-
16
- Fog::AWS[:auto_scaling].configurations.new(lc_params).save
17
-
18
- model_tests(Fog::AWS[:auto_scaling].groups, params, true) do
19
- @instance.update
20
- end
21
-
22
- test("setting attributes in the constructor") do
23
- group = Fog::AWS[:auto_scaling].groups.new(:min_size => 1, :max_size => 2)
24
- group.min_size == 1 && group.max_size == 2
25
- end
26
-
27
- end
File without changes
@@ -1,15 +0,0 @@
1
- require 'fog/aws/models/auto_scaling/instance'
2
-
3
- Shindo.tests("Fog::AWS::AutoScaling::Instance", 'aws') do
4
- @instance = Fog::AWS::AutoScaling::Instance.new
5
-
6
- test('#healthy? = true') do
7
- @instance.health_status = 'Healthy'
8
- @instance.healthy? == true
9
- end
10
-
11
- test('#heatlhy? = false') do
12
- @instance.health_status = 'Unhealthy'
13
- @instance.healthy? == false
14
- end
15
- end
@@ -1,6 +0,0 @@
1
- Shindo.tests('AWS::AutoScaling | instances', ['aws', 'auto_scaling_m']) do
2
-
3
- pending # FIXME: instance#save is not defined
4
- #collection_tests(Fog::AWS[:auto_scaling].instances, {}, false)
5
-
6
- end