fog 0.3.34 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. data/Gemfile.lock +6 -6
  2. data/README.rdoc +26 -7
  3. data/Rakefile +7 -1
  4. data/examples/dns_tests.rb +76 -0
  5. data/examples/{storage.rb → storage_tests.rb} +15 -15
  6. data/fog.gemspec +4 -4
  7. data/lib/fog.rb +1 -1
  8. data/lib/fog/aws.rb +19 -54
  9. data/lib/fog/aws/dns.rb +5 -1
  10. data/lib/fog/aws/models/compute/security_group.rb +128 -0
  11. data/lib/fog/aws/models/dns/record.rb +64 -0
  12. data/lib/fog/aws/models/dns/records.rb +47 -0
  13. data/lib/fog/aws/models/dns/zone.rb +53 -0
  14. data/lib/fog/aws/models/dns/zones.rb +33 -0
  15. data/lib/fog/aws/models/storage/file.rb +14 -2
  16. data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +1 -1
  17. data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +3 -1
  18. data/lib/fog/aws/requests/simpledb/create_domain.rb +1 -0
  19. data/lib/fog/aws/requests/simpledb/delete_attributes.rb +0 -2
  20. data/lib/fog/aws/requests/simpledb/delete_domain.rb +1 -0
  21. data/lib/fog/aws/requests/simpledb/domain_metadata.rb +1 -0
  22. data/lib/fog/aws/requests/simpledb/get_attributes.rb +1 -0
  23. data/lib/fog/aws/requests/simpledb/list_domains.rb +3 -2
  24. data/lib/fog/aws/requests/simpledb/put_attributes.rb +2 -2
  25. data/lib/fog/aws/requests/simpledb/select.rb +1 -0
  26. data/lib/fog/brightbox/compute.rb +9 -0
  27. data/lib/fog/brightbox/models/compute/load_balancer.rb +50 -0
  28. data/lib/fog/brightbox/models/compute/load_balancers.rb +28 -0
  29. data/lib/fog/brightbox/requests/compute/add_nodes_load_balancer.rb +28 -0
  30. data/lib/fog/brightbox/requests/compute/create_load_balancer.rb +27 -0
  31. data/lib/fog/brightbox/requests/compute/destroy_load_balancer.rb +28 -0
  32. data/lib/fog/brightbox/requests/compute/get_load_balancer.rb +28 -0
  33. data/lib/fog/brightbox/requests/compute/list_load_balancers.rb +27 -0
  34. data/lib/fog/brightbox/requests/compute/remove_nodes_load_balancer.rb +28 -0
  35. data/lib/fog/brightbox/requests/compute/update_load_balancer.rb +29 -0
  36. data/lib/fog/core.rb +1 -0
  37. data/lib/fog/core/dns.rb +25 -0
  38. data/lib/fog/core/mock.rb +34 -0
  39. data/lib/fog/google/models/storage/file.rb +14 -2
  40. data/lib/fog/linode/dns.rb +4 -0
  41. data/lib/fog/linode/models/dns/record.rb +69 -0
  42. data/lib/fog/linode/models/dns/records.rb +37 -0
  43. data/lib/fog/linode/models/dns/zone.rb +84 -0
  44. data/lib/fog/linode/models/dns/zones.rb +29 -0
  45. data/lib/fog/linode/requests/dns/domain_create.rb +2 -3
  46. data/lib/fog/linode/requests/dns/domain_resource_create.rb +3 -4
  47. data/lib/fog/linode/requests/dns/domain_resource_list.rb +5 -2
  48. data/lib/fog/linode/requests/dns/domain_resource_update.rb +2 -2
  49. data/lib/fog/linode/requests/dns/domain_update.rb +2 -2
  50. data/lib/fog/rackspace/requests/compute/create_image.rb +1 -1
  51. data/lib/fog/rackspace/requests/compute/create_server.rb +1 -1
  52. data/lib/fog/rackspace/requests/compute/get_flavor_details.rb +19 -1
  53. data/lib/fog/rackspace/requests/compute/list_flavors.rb +14 -1
  54. data/lib/fog/rackspace/requests/compute/list_flavors_detail.rb +14 -1
  55. data/lib/fog/slicehost/bin.rb +1 -1
  56. data/lib/fog/slicehost/dns.rb +4 -0
  57. data/lib/fog/slicehost/models/dns/record.rb +66 -0
  58. data/lib/fog/slicehost/models/dns/records.rb +36 -0
  59. data/lib/fog/slicehost/models/dns/zone.rb +69 -0
  60. data/lib/fog/slicehost/models/dns/zones.rb +28 -0
  61. data/lib/fog/slicehost/requests/dns/create_record.rb +2 -3
  62. data/lib/fog/slicehost/requests/dns/get_record.rb +1 -1
  63. data/lib/fog/vcloud/terremark/ecloud.rb +1 -1
  64. data/lib/fog/zerigo/models/dns/record.rb +14 -3
  65. data/lib/fog/zerigo/models/dns/records.rb +1 -1
  66. data/lib/fog/zerigo/models/dns/zone.rb +7 -1
  67. data/lib/fog/zerigo/models/dns/zones.rb +1 -1
  68. data/spec/spec_helper.rb +0 -24
  69. data/tests/aws/requests/iam/helper.rb +15 -0
  70. data/tests/aws/requests/simpledb/attributes_tests.rb +75 -0
  71. data/tests/aws/requests/simpledb/domain_tests.rb +51 -0
  72. data/tests/aws/requests/simpledb/helper.rb +16 -0
  73. data/tests/compute/helper.rb +36 -0
  74. data/tests/compute/models/flavors_tests.rb +9 -0
  75. data/tests/compute/models/server_tests.rb +9 -0
  76. data/tests/compute/models/servers_tests.rb +9 -0
  77. data/tests/{aws/requests/compute → compute/requests/aws}/address_tests.rb +0 -0
  78. data/tests/{aws/requests/compute → compute/requests/aws}/availability_zone_tests.rb +0 -0
  79. data/tests/{aws → compute/requests/aws}/helper.rb +0 -12
  80. data/tests/{aws/requests/compute → compute/requests/aws}/image_tests.rb +0 -0
  81. data/tests/{aws/requests/compute → compute/requests/aws}/instance_tests.rb +0 -0
  82. data/tests/{aws/requests/compute → compute/requests/aws}/key_pair_tests.rb +0 -0
  83. data/tests/{aws/requests/compute → compute/requests/aws}/region_tests.rb +0 -0
  84. data/tests/{aws/requests/compute → compute/requests/aws}/security_group_tests.rb +0 -0
  85. data/tests/{aws/requests/compute → compute/requests/aws}/snapshot_tests.rb +0 -0
  86. data/tests/{aws/requests/compute → compute/requests/aws}/tag_tests.rb +0 -0
  87. data/tests/{aws/requests/compute → compute/requests/aws}/volume_tests.rb +0 -0
  88. data/tests/{bluebox/requests/compute → compute/requests/bluebox}/block_tests.rb +0 -0
  89. data/tests/{bluebox → compute/requests/bluebox}/helper.rb +0 -0
  90. data/tests/{bluebox/requests/compute → compute/requests/bluebox}/product_tests.rb +0 -0
  91. data/tests/{bluebox/requests/compute → compute/requests/bluebox}/template_tests.rb +0 -0
  92. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/account_tests.rb +0 -0
  93. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/api_client_tests.rb +0 -0
  94. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/cloud_ip_tests.rb +15 -7
  95. data/tests/{brightbox → compute/requests/brightbox}/helper.rb +68 -22
  96. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/image_tests.rb +0 -0
  97. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/interface_tests.rb +0 -0
  98. data/tests/compute/requests/brightbox/load_balancer_tests.rb +74 -0
  99. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/server_tests.rb +1 -0
  100. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/server_type_tests.rb +1 -0
  101. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/user_tests.rb +0 -0
  102. data/tests/{brightbox/requests/compute → compute/requests/brightbox}/zone_tests.rb +1 -0
  103. data/tests/{go_grid/requests/compute → compute/requests/go_grid}/image_tests.rb +0 -0
  104. data/tests/{linode/requests/compute → compute/requests/linode}/datacenter_tests.rb +0 -0
  105. data/tests/{linode/requests/compute → compute/requests/linode}/distribution_tests.rb +0 -0
  106. data/tests/{linode → compute/requests/linode}/helper.rb +0 -0
  107. data/tests/{linode/requests/compute → compute/requests/linode}/linode_tests.rb +0 -0
  108. data/tests/{linode/requests/compute → compute/requests/linode}/linodeplans_tests.rb +0 -0
  109. data/tests/{rackspace/requests/compute → compute/requests/rackspace}/address_tests.rb +0 -0
  110. data/tests/{rackspace/requests/compute → compute/requests/rackspace}/flavor_tests.rb +0 -0
  111. data/tests/{rackspace → compute/requests/rackspace}/helper.rb +0 -0
  112. data/tests/{rackspace/requests/compute → compute/requests/rackspace}/image_tests.rb +7 -9
  113. data/tests/compute/requests/rackspace/resize_tests.rb +33 -0
  114. data/tests/{rackspace/requests/compute → compute/requests/rackspace}/server_tests.rb +0 -0
  115. data/tests/{slicehost/requests/compute → compute/requests/slicehost}/backup_tests.rb +0 -0
  116. data/tests/{slicehost/requests/compute → compute/requests/slicehost}/flavor_tests.rb +0 -0
  117. data/tests/{slicehost/requests/compute → compute/requests/slicehost}/image_tests.rb +0 -0
  118. data/tests/{slicehost/requests/compute → compute/requests/slicehost}/slice_tests.rb +0 -0
  119. data/tests/dns/helper.rb +19 -0
  120. data/tests/dns/models/record_tests.rb +25 -0
  121. data/tests/dns/models/records_tests.rb +25 -0
  122. data/tests/dns/models/zone_tests.rb +13 -0
  123. data/tests/dns/models/zones_tests.rb +13 -0
  124. data/tests/{aws/requests/dns → dns/requests/aws}/dns_tests.rb +0 -0
  125. data/tests/{linode/requests/dns → dns/requests/linode}/dns_tests.rb +0 -0
  126. data/tests/{slicehost/requests/dns_tests → dns/requests/slicehost}/dns_tests.rb +0 -0
  127. data/tests/{zerigo/requests/dns → dns/requests/zerigo}/dns_tests.rb +0 -0
  128. data/tests/helper.rb +1 -100
  129. data/tests/helpers/{collection_tests.rb → collection_helper.rb} +0 -0
  130. data/tests/helpers/compute/{flavors_tests.rb → flavors_helper.rb} +0 -0
  131. data/tests/helpers/compute/{server_tests.rb → server_helper.rb} +0 -0
  132. data/tests/helpers/compute/{servers_tests.rb → servers_helper.rb} +0 -0
  133. data/tests/helpers/formats_helper.rb +68 -0
  134. data/tests/{helper_tests.rb → helpers/formats_helper_tests.rb} +0 -0
  135. data/tests/helpers/{model_tests.rb → model_helper.rb} +0 -0
  136. data/tests/helpers/responds_to_helper.rb +13 -0
  137. data/tests/helpers/succeeds_helper.rb +12 -0
  138. data/tests/storage/helper.rb +16 -0
  139. data/tests/storage/models/directories_tests.rb +13 -0
  140. data/tests/storage/models/directory_test.rb +24 -0
  141. data/tests/storage/models/file_tests.rb +41 -0
  142. data/tests/storage/models/files_tests.rb +26 -0
  143. data/tests/{aws/requests/storage → storage/requests/aws}/bucket_tests.rb +0 -0
  144. data/tests/{aws/requests/storage → storage/requests/aws}/multipart_upload_tests.rb +0 -0
  145. data/tests/{aws/requests/storage → storage/requests/aws}/object_tests.rb +0 -0
  146. data/tests/{google/requests/storage → storage/requests/google}/bucket_tests.rb +0 -0
  147. data/tests/{google/requests/storage → storage/requests/google}/object_tests.rb +0 -0
  148. data/tests/{rackspace/requests/storage → storage/requests/rackspace}/container_tests.rb +0 -0
  149. data/tests/{rackspace/requests/storage → storage/requests/rackspace}/object_tests.rb +0 -0
  150. metadata +195 -224
  151. data/examples/bluebox_create.rb +0 -33
  152. data/examples/dns_methods.rb +0 -389
  153. data/spec/aws/requests/simpledb/batch_put_attributes_spec.rb +0 -31
  154. data/spec/aws/requests/simpledb/create_domain_spec.rb +0 -29
  155. data/spec/aws/requests/simpledb/delete_attributes_spec.rb +0 -39
  156. data/spec/aws/requests/simpledb/delete_domain_spec.rb +0 -28
  157. data/spec/aws/requests/simpledb/domain_metadata_spec.rb +0 -52
  158. data/spec/aws/requests/simpledb/get_attributes_spec.rb +0 -67
  159. data/spec/aws/requests/simpledb/list_domains_spec.rb +0 -30
  160. data/spec/aws/requests/simpledb/put_attributes_spec.rb +0 -49
  161. data/spec/aws/requests/simpledb/select_spec.rb +0 -27
  162. data/tests/aws/models/compute/flavors_tests.rb +0 -5
  163. data/tests/aws/models/compute/server_tests.rb +0 -6
  164. data/tests/aws/models/compute/servers_tests.rb +0 -6
  165. data/tests/aws/models/storage/directories_tests.rb +0 -5
  166. data/tests/aws/models/storage/directory_tests.rb +0 -5
  167. data/tests/aws/models/storage/file_tests.rb +0 -5
  168. data/tests/aws/models/storage/files_tests.rb +0 -5
  169. data/tests/bluebox/models/compute/flavors_tests.rb +0 -5
  170. data/tests/bluebox/models/compute/server_tests.rb +0 -5
  171. data/tests/bluebox/models/compute/servers_tests.rb +0 -6
  172. data/tests/brightbox/models/compute/flavors_tests.rb +0 -5
  173. data/tests/brightbox/models/compute/server_tests.rb +0 -6
  174. data/tests/brightbox/models/compute/servers_tests.rb +0 -6
  175. data/tests/go_grid/helper.rb +0 -0
  176. data/tests/google/models/storage/directories_tests.rb +0 -5
  177. data/tests/google/models/storage/directory_tests.rb +0 -5
  178. data/tests/google/models/storage/file_tests.rb +0 -5
  179. data/tests/google/models/storage/files_tests.rb +0 -5
  180. data/tests/helpers/storage/directories_tests.rb +0 -7
  181. data/tests/helpers/storage/directory_tests.rb +0 -18
  182. data/tests/helpers/storage/file_tests.rb +0 -27
  183. data/tests/helpers/storage/files_tests.rb +0 -13
  184. data/tests/local/models/storage/directories_tests.rb +0 -5
  185. data/tests/local/models/storage/directory_tests.rb +0 -5
  186. data/tests/local/models/storage/file_tests.rb +0 -5
  187. data/tests/local/models/storage/files_tests.rb +0 -5
  188. data/tests/rackspace/models/compute/flavors_tests.rb +0 -5
  189. data/tests/rackspace/models/compute/server_tests.rb +0 -6
  190. data/tests/rackspace/models/compute/servers_tests.rb +0 -6
  191. data/tests/rackspace/models/storage/directories_tests.rb +0 -5
  192. data/tests/rackspace/models/storage/directory_tests.rb +0 -5
  193. data/tests/rackspace/models/storage/file_tests.rb +0 -5
  194. data/tests/rackspace/models/storage/files_tests.rb +0 -5
  195. data/tests/rackspace/requests/compute/resize_tests.rb +0 -47
  196. data/tests/slicehost/helper.rb +0 -1
  197. data/tests/slicehost/models/compute/flavors_tests.rb +0 -5
  198. data/tests/slicehost/models/compute/server_tests.rb +0 -6
  199. data/tests/slicehost/models/compute/servers_tests.rb +0 -6
  200. data/tests/zerigo/helper.rb +0 -0
@@ -0,0 +1,74 @@
1
+ Shindo.tests('Brightbox::Compute | load balancer requests', ['brightbox']) do
2
+
3
+ tests('success') do
4
+
5
+ unless Fog.mocking?
6
+ @node = Brightbox[:compute].servers.create(:image_id => Brightbox::Compute::TestSupport::IMAGE_IDENTIFER)
7
+ node_id = @node.id
8
+ end
9
+
10
+ creation_args = {
11
+ :nodes => [{
12
+ :node => node_id
13
+ }],
14
+ :listeners => [{
15
+ :in => 80,
16
+ :out => 8080,
17
+ :protocol => "http"
18
+ }],
19
+ :healthcheck => {
20
+ :type => "http",
21
+ :port => 80
22
+ }
23
+ }
24
+
25
+ tests("#create_load_balancer(#{creation_args.inspect})").formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) do
26
+ pending if Fog.mocking?
27
+ data = Brightbox[:compute].create_load_balancer(creation_args)
28
+ @load_balancer_id = data["id"]
29
+ data
30
+ end
31
+
32
+ unless Fog.mocking?
33
+ Brightbox[:compute].load_balancers.get(@load_balancer_id).wait_for { ready? }
34
+ end
35
+
36
+ # tests("#list_load_balancers()").formats(Brightbox::Compute::Formats::Collection::LOAD_BALANCERS) do
37
+ # Brightbox[:compute].list_load_balancers
38
+ # end
39
+
40
+ tests("#get_load_balancer('#{@load_balancer_id}')").formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) do
41
+ pending if Fog.mocking?
42
+ Brightbox[:compute].get_load_balancer(@load_balancer_id)
43
+ end
44
+
45
+ tests("#destroy_load_balancer('#{@load_balancer_id}')").formats(Brightbox::Compute::Formats::Full::LOAD_BALANCER) do
46
+ pending if Fog.mocking?
47
+ Brightbox[:compute].destroy_load_balancer(@load_balancer_id)
48
+ end
49
+
50
+ unless Fog.mocking?
51
+ @node.destroy
52
+ end
53
+
54
+ end
55
+
56
+ tests('failure') do
57
+
58
+ tests("#create_load_balancer").raises(Excon::Errors::BadRequest) do
59
+ pending if Fog.mocking?
60
+ Brightbox[:compute].create_load_balancer
61
+ end
62
+
63
+ tests("#get_load_balancer('lba-00000')").raises(Excon::Errors::NotFound) do
64
+ pending if Fog.mocking?
65
+ Brightbox[:compute].get_load_balancer('lba-00000')
66
+ end
67
+
68
+ tests("#get_load_balancer").raises(ArgumentError) do
69
+ pending if Fog.mocking?
70
+ Brightbox[:compute].get_load_balancer
71
+ end
72
+ end
73
+
74
+ end
@@ -64,6 +64,7 @@ Shindo.tests('Brightbox::Compute | server requests', ['brightbox']) do
64
64
  pending if Fog.mocking?
65
65
  Brightbox[:compute].get_server
66
66
  end
67
+
67
68
  end
68
69
 
69
70
  end
@@ -27,6 +27,7 @@ Shindo.tests('Brightbox::Compute | server type requests', ['brightbox']) do
27
27
  pending if Fog.mocking?
28
28
  Brightbox[:compute].get_server_type
29
29
  end
30
+
30
31
  end
31
32
 
32
33
  end
@@ -27,6 +27,7 @@ Shindo.tests('Brightbox::Compute | zone requests', ['brightbox']) do
27
27
  pending if Fog.mocking?
28
28
  Brightbox[:compute].get_zone
29
29
  end
30
+
30
31
  end
31
32
 
32
33
  end
@@ -1,24 +1,22 @@
1
1
  Shindo.tests('Rackspace::Compute | image requests', ['rackspace']) do
2
2
 
3
- @images_format = {
3
+ @image_format = {
4
+ 'created' => Fog::Nullable::String,
4
5
  'id' => Integer,
5
6
  'name' => String,
7
+ 'progress' => Fog::Nullable::Integer,
8
+ 'serverId' => Fog::Nullable::Integer,
6
9
  'status' => String,
7
- 'updated' => String,
10
+ 'updated' => String
8
11
  }
9
12
 
10
- @image_format = @images_format.merge({
11
- 'created' => String,
12
- 'progress' => Integer,
13
- })
14
-
15
13
  tests('success') do
16
14
 
17
15
  @server = Rackspace[:compute].servers.create(:flavor_id => 1, :image_id => 19)
18
16
  @server.wait_for { ready? }
19
17
  @image_id = nil
20
18
 
21
- tests("#create_image(#{@server.id})").formats(@images_format.merge('serverId' => Integer)) do
19
+ tests("#create_image(#{@server.id})").formats(@image_format) do
22
20
  data = Rackspace[:compute].create_image(@server.id).body['image']
23
21
  @image_id = data['id']
24
22
  data
@@ -37,7 +35,7 @@ Shindo.tests('Rackspace::Compute | image requests', ['rackspace']) do
37
35
  Rackspace[:compute].list_images.body
38
36
  end
39
37
 
40
- tests('#list_images_detail').formats({'images' => [@images_format]}) do
38
+ tests('#list_images_detail').formats({'images' => [@image_format]}) do
41
39
  Rackspace[:compute].list_images_detail.body
42
40
  end
43
41
 
@@ -0,0 +1,33 @@
1
+ Shindo.tests('Rackspace::Compute | resize request', ['rackspace']) do
2
+
3
+ @confirm_server = Rackspace[:compute].servers.create(:flavor_id => 1, :image_id => 19)
4
+
5
+ @revert_server = Rackspace[:compute].servers.create(:flavor_id => 1, :image_id => 19)
6
+
7
+ @confirm_server.wait_for { ready? }
8
+ tests("#resize_server(#{@confirm_server.id}, 2) # to confirm").succeeds do
9
+ Rackspace[:compute].resize_server(@confirm_server.id, 2)
10
+ end
11
+
12
+ @revert_server.wait_for { ready? }
13
+ tests("#resize_server(#{@revert_server.id}, 2) # to revert").succeeds do
14
+ Rackspace[:compute].resize_server(@revert_server.id, 2)
15
+ end
16
+
17
+ @confirm_server.wait_for { status == 'VERIFY_RESIZE' }
18
+ tests("#confirm_resized_server(#{@confirm_server.id})").succeeds do
19
+ Rackspace[:compute].confirm_resized_server(@confirm_server.id)
20
+ end
21
+
22
+ @revert_server.wait_for { status == 'VERIFY_RESIZE' }
23
+ tests("#revert_resized_server(#{@revert_server.id})").succeeds do
24
+ Rackspace[:compute].revert_resized_server(@revert_server.id)
25
+ end
26
+
27
+ @confirm_server.wait_for { ready? }
28
+ @confirm_server.destroy
29
+
30
+ @revert_server.wait_for { ready? }
31
+ @revert_server.destroy
32
+
33
+ end
@@ -0,0 +1,19 @@
1
+ def dns_providers
2
+ {
3
+ AWS => {
4
+ :mocked => false
5
+ },
6
+ Linode => {
7
+ :mocked => false,
8
+ :zone_attributes => {
9
+ :email => 'fog@example.com'
10
+ }
11
+ },
12
+ Slicehost => {
13
+ :mocked => false
14
+ },
15
+ Zerigo => {
16
+ :mocked => false
17
+ }
18
+ }
19
+ end
@@ -0,0 +1,25 @@
1
+ for provider, config in dns_providers
2
+
3
+ Shindo.tests("#{provider}::DNS | record", [provider.to_s.downcase]) do
4
+
5
+ record_attributes = {
6
+ :ip => '1.2.3.4',
7
+ :name => 'www.fogrecordtests.com',
8
+ :type => 'A'
9
+ }.merge!(config[:record_attributes] || {})
10
+
11
+ if !Fog.mocking? || config[:mocked]
12
+ zone_attributes = {
13
+ :domain => 'fogrecordtests.com'
14
+ }.merge(config[:zone_attributes] || {})
15
+
16
+ @zone = provider[:dns].zones.create(zone_attributes)
17
+
18
+ model_tests(@zone.records, record_attributes, config[:mocked])
19
+
20
+ @zone.destroy
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ for provider, config in dns_providers
2
+
3
+ Shindo.tests("#{provider}::DNS | records", [provider.to_s.downcase]) do
4
+
5
+ record_attributes = {
6
+ :ip => '1.2.3.4',
7
+ :name => 'www.fogrecordstests.com',
8
+ :type => 'A'
9
+ }.merge!(config[:record_attributes] || {})
10
+
11
+ if !Fog.mocking? || config[:mocked]
12
+ zone_attributes = {
13
+ :domain => 'fogrecordstests.com'
14
+ }.merge(config[:zone_attributes] || {})
15
+
16
+ @zone = provider[:dns].zones.create(zone_attributes)
17
+
18
+ collection_tests(@zone.records, record_attributes, config[:mocked])
19
+
20
+ @zone.destroy
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,13 @@
1
+ for provider, config in dns_providers
2
+
3
+ Shindo.tests("#{provider}::DNS | zone", [provider.to_s.downcase]) do
4
+
5
+ zone_attributes = {
6
+ :domain => 'fogzonetests.com'
7
+ }.merge!(config[:zone_attributes] || {})
8
+
9
+ model_tests(provider[:dns].zones, zone_attributes, config[:mocked])
10
+
11
+ end
12
+
13
+ end
@@ -0,0 +1,13 @@
1
+ for provider, config in dns_providers
2
+
3
+ Shindo.tests("#{provider}::DNS | zones", [provider.to_s.downcase]) do
4
+
5
+ zone_attributes = {
6
+ :domain => 'fogzonestests.com'
7
+ }.merge!(config[:zone_attributes] || {})
8
+
9
+ collection_tests(provider[:dns].zones, zone_attributes, config[:mocked])
10
+
11
+ end
12
+
13
+ end
@@ -1,25 +1,7 @@
1
1
  require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
2
2
  require 'fog/core/bin'
3
3
 
4
- __DIR__ = File.dirname(__FILE__)
5
-
6
- $LOAD_PATH.unshift __DIR__ unless
7
- $LOAD_PATH.include?(__DIR__) ||
8
- $LOAD_PATH.include?(File.expand_path(__DIR__))
9
-
10
- require 'helpers/collection_tests'
11
- require 'helpers/model_tests'
12
-
13
- require 'helpers/compute/flavors_tests'
14
- require 'helpers/compute/server_tests'
15
- require 'helpers/compute/servers_tests'
16
-
17
- require 'helpers/storage/directory_tests'
18
- require 'helpers/storage/directories_tests'
19
- require 'helpers/storage/file_tests'
20
- require 'helpers/storage/files_tests'
21
-
22
- # Use so you can run in mock mode from the command line:
4
+ # Use so you can run in mock mode from the command line
23
5
  #
24
6
  # FOG_MOCK=true fog
25
7
 
@@ -35,87 +17,6 @@ for provider in (all_providers - available_providers)
35
17
  Thread.current[:tags] << ('-' << provider)
36
18
  end
37
19
 
38
- # Boolean hax
39
- module Fog
40
- module Boolean
41
- end
42
- end
43
- FalseClass.send(:include, Fog::Boolean)
44
- TrueClass.send(:include, Fog::Boolean)
45
-
46
20
  def lorem_file
47
21
  File.open(File.dirname(__FILE__) + '/lorem.txt', 'r')
48
22
  end
49
-
50
- module Shindo
51
- class Tests
52
-
53
- def responds_to(method_names)
54
- for method_name in [*method_names]
55
- tests("#respond_to?(:#{method_name})").succeeds do
56
- @instance.respond_to?(method_name)
57
- end
58
- end
59
- end
60
-
61
- def formats(format)
62
- test('has proper format') do
63
- formats_kernel(instance_eval(&Proc.new), format)
64
- end
65
- end
66
-
67
- def succeeds
68
- test('succeeds') do
69
- instance_eval(&Proc.new)
70
- true
71
- end
72
- end
73
-
74
- private
75
-
76
- def formats_kernel(original_data, original_format, original = true)
77
- valid = true
78
- data = original_data.dup
79
- format = original_format.dup
80
- if format.is_a?(Array)
81
- data = {:element => data}
82
- format = {:element => format}
83
- end
84
- for key, value in format
85
- valid &&= data.has_key?(key)
86
- datum = data.delete(key)
87
- format.delete(key)
88
- case value
89
- when Array
90
- valid &&= datum.is_a?(Array)
91
- if datum.is_a?(Array)
92
- for element in datum
93
- type = value.first
94
- if type.is_a?(Hash)
95
- valid &&= formats_kernel({:element => element}, {:element => type}, false)
96
- elsif type.nil?
97
- p "#{key} => #{value}"
98
- else
99
- valid &&= element.is_a?(type)
100
- end
101
- end
102
- end
103
- when Hash
104
- valid &&= datum.is_a?(Hash)
105
- valid &&= formats_kernel(datum, value, false)
106
- else
107
- p "#{key} => #{value}" unless datum.is_a?(value)
108
- valid &&= datum.is_a?(value)
109
- end
110
- end
111
- p data unless data.empty?
112
- p format unless format.empty?
113
- valid &&= data.empty? && format.empty?
114
- if !valid && original
115
- @message = "#{original_data.inspect} does not match #{original_format.inspect}"
116
- end
117
- valid
118
- end
119
-
120
- end
121
- end