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,51 @@
1
+ Shindo.tests('AWS::SimpleDB | domain requests', ['aws']) do
2
+
3
+ @domain_metadata_format = AWS::SimpleDB::Formats::BASIC.merge({
4
+ 'AttributeNameCount' => Integer,
5
+ 'AttributeNamesSizeBytes' => Integer,
6
+ 'AttributeValueCount' => Integer,
7
+ 'AttributeValuesSizeBytes' => Integer,
8
+ 'ItemCount' => Integer,
9
+ 'ItemNamesSizeBytes' => Integer,
10
+ 'Timestamp' => Time
11
+ })
12
+
13
+ @domain_name = "fog_domain_#{Time.now.to_f.to_s.gsub('.','')}"
14
+
15
+ tests('success') do
16
+
17
+ tests("#create_domain(#{@domain_name})").formats(AWS::SimpleDB::Formats::BASIC) do
18
+ AWS[:sdb].create_domain(@domain_name).body
19
+ end
20
+
21
+ tests("#create_domain(#{@domain_name})").succeeds do
22
+ AWS[:sdb].create_domain(@domain_name)
23
+ end
24
+
25
+ tests("#domain_metadata(#{@domain_name})").formats(@domain_metadata_format) do
26
+ AWS[:sdb].domain_metadata(@domain_name).body
27
+ end
28
+
29
+ tests("#list_domains").formats(AWS::SimpleDB::Formats::BASIC.merge('Domains' => [String])) do
30
+ AWS[:sdb].list_domains.body
31
+ end
32
+
33
+ tests("#delete_domain(#{@domain_name})").formats(AWS::SimpleDB::Formats::BASIC) do
34
+ AWS[:sdb].delete_domain(@domain_name).body
35
+ end
36
+
37
+ tests("#delete_domain(#{@domain_name})").succeeds do
38
+ AWS[:sdb].delete_domain(@domain_name)
39
+ end
40
+
41
+ end
42
+
43
+ tests('failure') do
44
+
45
+ tests("#domain_metadata('notadomain')").raises(Excon::Errors::BadRequest) do
46
+ AWS[:sdb].domain_metadata('notadomain')
47
+ end
48
+
49
+ end
50
+
51
+ end
@@ -0,0 +1,16 @@
1
+ class AWS
2
+
3
+ module SimpleDB
4
+
5
+ module Formats
6
+
7
+ BASIC = {
8
+ 'BoxUsage' => Float,
9
+ 'RequestId' => String
10
+ }
11
+
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,36 @@
1
+ def compute_providers
2
+ {
3
+ AWS => {
4
+ :server_attributes => {
5
+ :image_id => 'ami-1a837773' # image ami-1a837773 = Ubuntu
6
+ },
7
+ :mocked => true
8
+ },
9
+ Bluebox => {
10
+ :server_attributes => {
11
+ :image_id => 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
12
+ },
13
+ :mocked => false
14
+ },
15
+ Brightbox => {
16
+ :server_attributes => {
17
+ :image_id => 'img-9vxqi' # image img-9vxqi = Ubuntu Maverick 10.10 server
18
+ },
19
+ :mocked => false
20
+ },
21
+ Rackspace => {
22
+ :server_attributes => {
23
+ :image_id => 49, # image 49 = Ubuntu 10.04 LTS (lucid)
24
+ :name => "fog_#{Time.now.to_i}"
25
+ },
26
+ :mocked => true
27
+ },
28
+ Slicehost => {
29
+ :server_attributes => {
30
+ :image_id => 49, # image 49 = Ubuntu 10.04 LTS (lucid)
31
+ :name => "fog_#{Time.now.to_i}"
32
+ },
33
+ :mocked => false
34
+ }
35
+ }
36
+ end
@@ -0,0 +1,9 @@
1
+ for provider, config in compute_providers
2
+
3
+ Shindo.tests("#{provider}::Compute | flavors", [provider.to_s.downcase]) do
4
+
5
+ flavors_tests(provider[:compute], (config[:flavors_attributes] || {}), config[:mocked])
6
+
7
+ end
8
+
9
+ end
@@ -0,0 +1,9 @@
1
+ for provider, config in compute_providers
2
+
3
+ Shindo.tests("#{provider}::Compute | server", [provider.to_s.downcase]) do
4
+
5
+ server_tests(provider[:compute], (config[:server_attributes] || {}), config[:mocked])
6
+
7
+ end
8
+
9
+ end
@@ -0,0 +1,9 @@
1
+ for provider, config in compute_providers
2
+
3
+ Shindo.tests("#{provider}::Compute | servers", [provider.to_s.downcase]) do
4
+
5
+ servers_tests(provider[:compute], (config[:server_attributes] || {}), config[:mocked])
6
+
7
+ end
8
+
9
+ end
@@ -13,18 +13,6 @@ class AWS
13
13
 
14
14
  end
15
15
 
16
- module IAM
17
-
18
- module Formats
19
-
20
- BASIC = {
21
- 'RequestId' => String
22
- }
23
-
24
- end
25
-
26
- end
27
-
28
16
  end
29
17
 
30
18
  unless defined?(GENTOO_AMI)
@@ -2,16 +2,20 @@ Shindo.tests('Brightbox::Compute | cloud ip requests', ['brightbox']) do
2
2
 
3
3
  tests('success') do
4
4
 
5
- tests("#create_cloud_ip()").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
5
+ unless Fog.mocking?
6
+ @server = Brightbox[:compute].servers.create(compute_providers[Brightbox][:server_attributes])
7
+ end
8
+
9
+ tests("#create_cloud_ip").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
6
10
  pending if Fog.mocking?
7
- data = Brightbox[:compute].create_cloud_ip()
11
+ data = Brightbox[:compute].create_cloud_ip
8
12
  @cloud_ip_id = data["id"]
9
13
  data
10
14
  end
11
15
 
12
- tests("#list_cloud_ips()").formats(Brightbox::Compute::Formats::Collection::CLOUD_IPS) do
16
+ tests("#list_cloud_ips").formats(Brightbox::Compute::Formats::Collection::CLOUD_IPS) do
13
17
  pending if Fog.mocking?
14
- Brightbox[:compute].list_cloud_ips()
18
+ Brightbox[:compute].list_cloud_ips
15
19
  end
16
20
 
17
21
  tests("#get_cloud_ip('#{@cloud_ip_id}')").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
@@ -20,9 +24,8 @@ Shindo.tests('Brightbox::Compute | cloud ip requests', ['brightbox']) do
20
24
  end
21
25
 
22
26
  unless Fog.mocking?
23
- server = Brightbox[:compute].servers.first
24
- interface_id = server.interfaces.first["id"]
25
- map_options = {:interface => interface_id}
27
+ @server.wait_for { ready? }
28
+ map_options = {:interface => @server.interfaces.first["id"]}
26
29
  end
27
30
 
28
31
  tests("#map_cloud_ip('#{@cloud_ip_id}', #{map_options.inspect})").formats(Brightbox::Compute::Formats::Full::CLOUD_IP) do
@@ -44,6 +47,10 @@ Shindo.tests('Brightbox::Compute | cloud ip requests', ['brightbox']) do
44
47
  Brightbox[:compute].destroy_cloud_ip(@cloud_ip_id)
45
48
  end
46
49
 
50
+ unless Fog.mocking?
51
+ @server.destroy
52
+ end
53
+
47
54
  end
48
55
 
49
56
  tests('failure') do
@@ -60,4 +67,5 @@ Shindo.tests('Brightbox::Compute | cloud ip requests', ['brightbox']) do
60
67
 
61
68
  end
62
69
 
70
+
63
71
  end
@@ -1,19 +1,16 @@
1
1
  module Fog
2
2
  module Brightbox
3
3
  module Nullable
4
- module String; end
5
4
  module Account; end
6
5
  module Image; end
7
6
  module Interface; end
7
+ module LoadBalancer; end
8
8
  module Server; end
9
9
  module Zone; end
10
10
  end
11
11
  end
12
12
  end
13
13
 
14
- String.send :include, Fog::Brightbox::Nullable::String
15
- NilClass.send :include, Fog::Brightbox::Nullable::String
16
-
17
14
  Hash.send :include, Fog::Brightbox::Nullable::Account
18
15
  NilClass.send :include, Fog::Brightbox::Nullable::Account
19
16
 
@@ -23,6 +20,9 @@ NilClass.send :include, Fog::Brightbox::Nullable::Image
23
20
  Hash.send :include, Fog::Brightbox::Nullable::Interface
24
21
  NilClass.send :include, Fog::Brightbox::Nullable::Interface
25
22
 
23
+ Hash.send :include, Fog::Brightbox::Nullable::LoadBalancer
24
+ NilClass.send :include, Fog::Brightbox::Nullable::LoadBalancer
25
+
26
26
  Hash.send :include, Fog::Brightbox::Nullable::Server
27
27
  NilClass.send :include, Fog::Brightbox::Nullable::Server
28
28
 
@@ -36,6 +36,23 @@ class Brightbox
36
36
  IMAGE_IDENTIFER = "img-9vxqi"
37
37
  end
38
38
  module Formats
39
+ module Struct
40
+ LB_LISTENER = {
41
+ "in" => Integer,
42
+ "out" => Integer,
43
+ "protocol" => String
44
+ }
45
+ LB_HEALTHCHECK = {
46
+ "type" => String,
47
+ "request" => String,
48
+ "port" => Integer,
49
+ "interval" => Integer,
50
+ "timeout" => Integer,
51
+ "threshold_up" => Integer,
52
+ "threshold_down" => Integer
53
+ }
54
+ end
55
+
39
56
  module Nested
40
57
  ACCOUNT = {
41
58
  "name" => String,
@@ -94,8 +111,8 @@ class Brightbox
94
111
  "status" => String,
95
112
  "hostname" => String,
96
113
  "created_at" => String,
97
- "started_at" => Fog::Brightbox::Nullable::String,
98
- "deleted_at" => Fog::Brightbox::Nullable::String
114
+ "started_at" => Fog::Nullable::String,
115
+ "deleted_at" => Fog::Nullable::String
99
116
  }
100
117
 
101
118
  SERVER_TYPE = {
@@ -124,7 +141,7 @@ class Brightbox
124
141
  "id" => String,
125
142
  "resource_type" => String,
126
143
  "url" => String,
127
- "handle" => Fog::Brightbox::Nullable::String
144
+ "handle" => Fog::Nullable::String
128
145
  }
129
146
  end
130
147
 
@@ -147,7 +164,8 @@ class Brightbox
147
164
  "reverse_dns" => String,
148
165
  "account" => Brightbox::Compute::Formats::Nested::ACCOUNT,
149
166
  "interface" => Fog::Brightbox::Nullable::Interface,
150
- "server" => Fog::Brightbox::Nullable::String
167
+ "load_balancer" => Fog::Brightbox::Nullable::LoadBalancer,
168
+ "server" => Fog::Nullable::String
151
169
  }
152
170
 
153
171
  IMAGE = {
@@ -170,6 +188,16 @@ class Brightbox
170
188
  "ancestor" => Fog::Brightbox::Nullable::Image
171
189
  }
172
190
 
191
+ LOAD_BALANCER = {
192
+ "id" => String,
193
+ "resource_type" => String,
194
+ "url" => String,
195
+ "name" => String,
196
+ "status" => String,
197
+ "created_at" => String,
198
+ "deleted_at" => Fog::Nullable::String
199
+ }
200
+
173
201
  SERVER = {
174
202
  "id" => String,
175
203
  "resource_type" => String,
@@ -178,8 +206,8 @@ class Brightbox
178
206
  "status" => String,
179
207
  "hostname" => String,
180
208
  "created_at" => String,
181
- "started_at" => Fog::Brightbox::Nullable::String,
182
- "deleted_at" => Fog::Brightbox::Nullable::String,
209
+ "started_at" => Fog::Nullable::String,
210
+ "deleted_at" => Fog::Nullable::String,
183
211
  "account" => Brightbox::Compute::Formats::Nested::ACCOUNT,
184
212
  "server_type" => Brightbox::Compute::Formats::Nested::SERVER_TYPE,
185
213
  "cloud_ips" => [Brightbox::Compute::Formats::Nested::CLOUD_IP],
@@ -193,7 +221,7 @@ class Brightbox
193
221
  "id" => String,
194
222
  "resource_type" => String,
195
223
  "url" => String,
196
- "handle" => Fog::Brightbox::Nullable::String,
224
+ "handle" => Fog::Nullable::String,
197
225
  "name" => String,
198
226
  "status" => String,
199
227
  "cores" => Integer,
@@ -216,7 +244,7 @@ class Brightbox
216
244
  "id" => String,
217
245
  "resource_type" => String,
218
246
  "url" => String,
219
- "handle" => Fog::Brightbox::Nullable::String
247
+ "handle" => Fog::Nullable::String
220
248
  }
221
249
  end
222
250
 
@@ -234,7 +262,7 @@ class Brightbox
234
262
  "postcode" => String,
235
263
  "country_code" => String,
236
264
  "country_name" => String,
237
- "vat_registration_number" => Fog::Brightbox::Nullable::String,
265
+ "vat_registration_number" => Fog::Nullable::String,
238
266
  "telephone_number" => String,
239
267
  "telephone_verified" => Fog::Boolean,
240
268
  "created_at" => String,
@@ -243,7 +271,7 @@ class Brightbox
243
271
  "limits_cloudips" => Integer,
244
272
  "library_ftp_host" => String,
245
273
  "library_ftp_user" => String,
246
- "library_ftp_password" => Fog::Brightbox::Nullable::String,
274
+ "library_ftp_password" => Fog::Nullable::String,
247
275
  "owner" => Brightbox::Compute::Formats::Nested::USER,
248
276
  "users" => [Brightbox::Compute::Formats::Nested::USER],
249
277
  "clients" => [Brightbox::Compute::Formats::Nested::API_CLIENT],
@@ -258,7 +286,7 @@ class Brightbox
258
286
  "url" => String,
259
287
  "name" => String,
260
288
  "description" => String,
261
- "secret" => Fog::Brightbox::Nullable::String,
289
+ "secret" => Fog::Nullable::String,
262
290
  "account" => Brightbox::Compute::Formats::Nested::ACCOUNT
263
291
  }
264
292
 
@@ -269,8 +297,9 @@ class Brightbox
269
297
  "public_ip" => String,
270
298
  "status" => String,
271
299
  "reverse_dns" => String,
272
- "account" => Brightbox::Compute::Formats::Nested::ACCOUNT,
300
+ "account" => Fog::Brightbox::Nullable::Account,
273
301
  "interface" => Fog::Brightbox::Nullable::Interface,
302
+ "load_balancer" => Fog::Brightbox::Nullable::LoadBalancer,
274
303
  "server" => Fog::Brightbox::Nullable::Server
275
304
  }
276
305
 
@@ -303,6 +332,21 @@ class Brightbox
303
332
  "server" => Brightbox::Compute::Formats::Nested::SERVER
304
333
  }
305
334
 
335
+ LOAD_BALANCER = {
336
+ "id" => String,
337
+ "resource_type" => String,
338
+ "url" => String,
339
+ "name" => String,
340
+ "status" => String,
341
+ "listeners" => [Brightbox::Compute::Formats::Struct::LB_LISTENER],
342
+ "policy" => String,
343
+ "healthcheck" => Brightbox::Compute::Formats::Struct::LB_HEALTHCHECK,
344
+ "created_at" => String,
345
+ "deleted_at" => Fog::Nullable::String,
346
+ "account" => Brightbox::Compute::Formats::Nested::ACCOUNT,
347
+ "nodes" => [Brightbox::Compute::Formats::Nested::SERVER]
348
+ }
349
+
306
350
  SERVER = {
307
351
  "id" => String,
308
352
  "resource_type" => String,
@@ -311,9 +355,9 @@ class Brightbox
311
355
  "status" => String,
312
356
  "hostname" => String,
313
357
  "created_at" => String,
314
- "started_at" => Fog::Brightbox::Nullable::String,
315
- "deleted_at" => Fog::Brightbox::Nullable::String,
316
- "user_data" => Fog::Brightbox::Nullable::String,
358
+ "started_at" => Fog::Nullable::String,
359
+ "deleted_at" => Fog::Nullable::String,
360
+ "user_data" => Fog::Nullable::String,
317
361
  "account" => Brightbox::Compute::Formats::Nested::ACCOUNT,
318
362
  "server_type" => Brightbox::Compute::Formats::Nested::SERVER_TYPE,
319
363
  "cloud_ips" => [Brightbox::Compute::Formats::Nested::CLOUD_IP],
@@ -327,7 +371,7 @@ class Brightbox
327
371
  "id" => String,
328
372
  "resource_type" => String,
329
373
  "url" => String,
330
- "handle" => Fog::Brightbox::Nullable::String,
374
+ "handle" => Fog::Nullable::String,
331
375
  "name" => String,
332
376
  "status" => String,
333
377
  "cores" => Integer,
@@ -344,21 +388,23 @@ class Brightbox
344
388
  "email_verified" => Fog::Boolean,
345
389
  "accounts" => [Brightbox::Compute::Formats::Nested::ACCOUNT],
346
390
  "default_account" => Fog::Brightbox::Nullable::Account,
347
- "ssh_key" => Fog::Brightbox::Nullable::String
391
+ "ssh_key" => Fog::Nullable::String
348
392
  }
349
393
 
350
394
  ZONE = {
351
395
  "id" => String,
352
396
  "resource_type" => String,
353
397
  "url" => String,
354
- "handle" => Fog::Brightbox::Nullable::String
398
+ "handle" => Fog::Nullable::String
355
399
  }
400
+
356
401
  end
357
402
 
358
403
  module Collection
359
404
  API_CLIENTS = [Brightbox::Compute::Formats::Collected::API_CLIENT]
360
405
  CLOUD_IPS = [Brightbox::Compute::Formats::Collected::CLOUD_IP]
361
406
  IMAGES = [Brightbox::Compute::Formats::Collected::IMAGE]
407
+ LOAD_BALANCERS = [Brightbox::Compute::Formats::Collected::LOAD_BALANCER]
362
408
  SERVERS = [Brightbox::Compute::Formats::Collected::SERVER]
363
409
  SERVER_TYPES = [Brightbox::Compute::Formats::Collected::SERVER_TYPE]
364
410
  USERS = [Brightbox::Compute::Formats::Collected::USER]