fog 0.3.34 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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]