fog 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) hide show
  1. data/.gitignore +2 -1
  2. data/Rakefile +90 -1
  3. data/bin/fog +5 -1
  4. data/changelog.txt +156 -0
  5. data/docs/_layouts/default.html +1 -0
  6. data/docs/about/press.markdown +4 -0
  7. data/docs/compute/index.markdown +4 -0
  8. data/docs/storage/index.markdown +4 -0
  9. data/fog.gemspec +3 -3
  10. data/lib/fog.rb +1 -1
  11. data/lib/fog/aws/iam.rb +7 -6
  12. data/lib/fog/aws/models/rds/server.rb +27 -23
  13. data/lib/fog/aws/parsers/iam/get_group.rb +2 -2
  14. data/lib/fog/aws/requests/iam/update_server_certificate.rb +37 -0
  15. data/lib/fog/bin.rb +2 -1
  16. data/lib/fog/bin/dynect.rb +30 -0
  17. data/lib/fog/bin/rackspace.rb +4 -0
  18. data/lib/fog/cdn.rb +4 -0
  19. data/lib/fog/cdn/aws.rb +6 -0
  20. data/lib/fog/cdn/parsers/aws/get_invalidation_list.rb +43 -0
  21. data/lib/fog/cdn/parsers/aws/get_streaming_distribution_list.rb +59 -0
  22. data/lib/fog/cdn/parsers/aws/streaming_distribution.rb +59 -0
  23. data/lib/fog/cdn/requests/aws/delete_streaming_distribution.rb +28 -0
  24. data/lib/fog/cdn/requests/aws/get_invalidation_list.rb +42 -0
  25. data/lib/fog/cdn/requests/aws/get_streaming_distribution.rb +50 -0
  26. data/lib/fog/cdn/requests/aws/get_streaming_distribution_list.rb +59 -0
  27. data/lib/fog/cdn/requests/aws/post_streaming_distribution.rb +78 -0
  28. data/lib/fog/cdn/requests/aws/put_streaming_distribution_config.rb +83 -0
  29. data/lib/fog/compute.rb +6 -2
  30. data/lib/fog/compute/aws.rb +12 -1
  31. data/lib/fog/compute/brightbox.rb +22 -12
  32. data/lib/fog/compute/models/aws/image.rb +5 -0
  33. data/lib/fog/compute/models/aws/server.rb +19 -22
  34. data/lib/fog/compute/models/aws/tag.rb +1 -1
  35. data/lib/fog/compute/models/bluebox/server.rb +2 -18
  36. data/lib/fog/compute/models/brightbox/account.rb +1 -1
  37. data/lib/fog/compute/models/brightbox/server.rb +2 -2
  38. data/lib/fog/compute/models/go_grid/server.rb +2 -18
  39. data/lib/fog/compute/models/linode/server.rb +5 -5
  40. data/lib/fog/compute/models/ninefold/server.rb +2 -2
  41. data/lib/fog/compute/models/rackspace/server.rb +2 -18
  42. data/lib/fog/compute/models/server.rb +27 -0
  43. data/lib/fog/compute/models/slicehost/server.rb +2 -18
  44. data/lib/fog/compute/models/storm_on_demand/server.rb +3 -3
  45. data/lib/fog/compute/models/voxel/server.rb +2 -2
  46. data/lib/fog/compute/parsers/aws/describe_images.rb +15 -3
  47. data/lib/fog/compute/parsers/aws/describe_instances.rb +1 -1
  48. data/lib/fog/compute/parsers/aws/describe_security_groups.rb +31 -7
  49. data/lib/fog/compute/requests/aws/describe_images.rb +33 -14
  50. data/lib/fog/compute/requests/aws/describe_volumes.rb +1 -0
  51. data/lib/fog/compute/requests/aws/modify_image_attribute.rb +39 -0
  52. data/lib/fog/compute/requests/aws/modify_instance_attribute.rb +37 -0
  53. data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +10 -10
  54. data/lib/fog/compute/requests/aws/register_image.rb +54 -13
  55. data/lib/fog/compute/requests/aws/run_instances.rb +5 -0
  56. data/lib/fog/compute/requests/aws/stop_instances.rb +2 -1
  57. data/lib/fog/compute/requests/brightbox/activate_console_server.rb +2 -8
  58. data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +2 -8
  59. data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +2 -8
  60. data/lib/fog/compute/requests/brightbox/create_api_client.rb +2 -8
  61. data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +2 -8
  62. data/lib/fog/compute/requests/brightbox/create_image.rb +2 -8
  63. data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +2 -8
  64. data/lib/fog/compute/requests/brightbox/create_server.rb +2 -8
  65. data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +2 -8
  66. data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +2 -8
  67. data/lib/fog/compute/requests/brightbox/destroy_image.rb +2 -8
  68. data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +2 -8
  69. data/lib/fog/compute/requests/brightbox/destroy_server.rb +2 -8
  70. data/lib/fog/compute/requests/brightbox/get_account.rb +2 -8
  71. data/lib/fog/compute/requests/brightbox/get_api_client.rb +2 -8
  72. data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +2 -8
  73. data/lib/fog/compute/requests/brightbox/get_image.rb +2 -8
  74. data/lib/fog/compute/requests/brightbox/get_interface.rb +2 -8
  75. data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +2 -8
  76. data/lib/fog/compute/requests/brightbox/get_server.rb +2 -8
  77. data/lib/fog/compute/requests/brightbox/get_server_type.rb +2 -8
  78. data/lib/fog/compute/requests/brightbox/get_user.rb +2 -8
  79. data/lib/fog/compute/requests/brightbox/get_zone.rb +2 -8
  80. data/lib/fog/compute/requests/brightbox/list_api_clients.rb +2 -8
  81. data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +2 -8
  82. data/lib/fog/compute/requests/brightbox/list_images.rb +2 -8
  83. data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +2 -8
  84. data/lib/fog/compute/requests/brightbox/list_server_types.rb +2 -8
  85. data/lib/fog/compute/requests/brightbox/list_servers.rb +2 -8
  86. data/lib/fog/compute/requests/brightbox/list_users.rb +2 -8
  87. data/lib/fog/compute/requests/brightbox/list_zones.rb +2 -8
  88. data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +2 -8
  89. data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +2 -8
  90. data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +2 -8
  91. data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +2 -8
  92. data/lib/fog/compute/requests/brightbox/shutdown_server.rb +2 -8
  93. data/lib/fog/compute/requests/brightbox/snapshot_server.rb +2 -8
  94. data/lib/fog/compute/requests/brightbox/start_server.rb +2 -8
  95. data/lib/fog/compute/requests/brightbox/stop_server.rb +2 -8
  96. data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +2 -8
  97. data/lib/fog/compute/requests/brightbox/update_account.rb +2 -8
  98. data/lib/fog/compute/requests/brightbox/update_api_client.rb +2 -8
  99. data/lib/fog/compute/requests/brightbox/update_image.rb +2 -8
  100. data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +2 -8
  101. data/lib/fog/compute/requests/brightbox/update_server.rb +2 -8
  102. data/lib/fog/compute/requests/brightbox/update_user.rb +2 -8
  103. data/lib/fog/core.rb +1 -0
  104. data/lib/fog/core/credentials.rb +1 -1
  105. data/lib/fog/core/errors.rb +3 -1
  106. data/lib/fog/core/json.rb +20 -0
  107. data/lib/fog/core/provider.rb +3 -1
  108. data/lib/fog/core/service.rb +5 -0
  109. data/lib/fog/dns.rb +8 -1
  110. data/lib/fog/dns/dynect.rb +80 -0
  111. data/lib/fog/dns/models/dynect/record.rb +67 -0
  112. data/lib/fog/dns/models/dynect/records.rb +53 -0
  113. data/lib/fog/dns/models/dynect/zone.rb +60 -0
  114. data/lib/fog/dns/models/dynect/zones.rb +29 -0
  115. data/lib/fog/dns/requests/dynect/delete_record.rb +24 -0
  116. data/lib/fog/dns/requests/dynect/delete_zone.rb +21 -0
  117. data/lib/fog/dns/requests/dynect/get_node_list.rb +23 -0
  118. data/lib/fog/dns/requests/dynect/get_record.rb +25 -0
  119. data/lib/fog/dns/requests/dynect/get_zone.rb +22 -0
  120. data/lib/fog/dns/requests/dynect/post_record.rb +27 -0
  121. data/lib/fog/dns/requests/dynect/post_session.rb +36 -0
  122. data/lib/fog/dns/requests/dynect/post_zone.rb +32 -0
  123. data/lib/fog/dns/requests/dynect/put_zone.rb +26 -0
  124. data/lib/fog/dns/zerigo.rb +1 -1
  125. data/lib/fog/providers.rb +1 -0
  126. data/lib/fog/providers/dynect.rb +14 -0
  127. data/lib/fog/providers/rackspace.rb +1 -0
  128. data/lib/fog/rackspace/load_balancers.rb +179 -0
  129. data/lib/fog/rackspace/models/load_balancers/access_rule.rb +39 -0
  130. data/lib/fog/rackspace/models/load_balancers/access_rules.rb +29 -0
  131. data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +216 -0
  132. data/lib/fog/rackspace/models/load_balancers/load_balancers.rb +27 -0
  133. data/lib/fog/rackspace/models/load_balancers/node.rb +58 -0
  134. data/lib/fog/rackspace/models/load_balancers/nodes.rb +29 -0
  135. data/lib/fog/rackspace/models/load_balancers/virtual_ip.rb +35 -0
  136. data/lib/fog/rackspace/models/load_balancers/virtual_ips.rb +32 -0
  137. data/lib/fog/rackspace/requests/load_balancers/create_access_rule.rb +24 -0
  138. data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +26 -0
  139. data/lib/fog/rackspace/requests/load_balancers/create_node.rb +27 -0
  140. data/lib/fog/rackspace/requests/load_balancers/create_virtual_ip.rb +20 -0
  141. data/lib/fog/rackspace/requests/load_balancers/delete_access_rule.rb +15 -0
  142. data/lib/fog/rackspace/requests/load_balancers/delete_all_access_rules.rb +15 -0
  143. data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +15 -0
  144. data/lib/fog/rackspace/requests/load_balancers/delete_node.rb +15 -0
  145. data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +17 -0
  146. data/lib/fog/rackspace/requests/load_balancers/delete_virtual_ip.rb +15 -0
  147. data/lib/fog/rackspace/requests/load_balancers/get_connection_logging.rb +15 -0
  148. data/lib/fog/rackspace/requests/load_balancers/get_connection_throttling.rb +15 -0
  149. data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +15 -0
  150. data/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb +21 -0
  151. data/lib/fog/rackspace/requests/load_balancers/get_monitor.rb +15 -0
  152. data/lib/fog/rackspace/requests/load_balancers/get_node.rb +15 -0
  153. data/lib/fog/rackspace/requests/load_balancers/get_session_persistence.rb +15 -0
  154. data/lib/fog/rackspace/requests/load_balancers/get_usage.rb +20 -0
  155. data/lib/fog/rackspace/requests/load_balancers/list_access_rules.rb +15 -0
  156. data/lib/fog/rackspace/requests/load_balancers/list_algorithms.rb +15 -0
  157. data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +15 -0
  158. data/lib/fog/rackspace/requests/load_balancers/list_nodes.rb +15 -0
  159. data/lib/fog/rackspace/requests/load_balancers/list_protocols.rb +15 -0
  160. data/lib/fog/rackspace/requests/load_balancers/list_virtual_ips.rb +15 -0
  161. data/lib/fog/rackspace/requests/load_balancers/remove_connection_throttling.rb +15 -0
  162. data/lib/fog/rackspace/requests/load_balancers/remove_monitor.rb +15 -0
  163. data/lib/fog/rackspace/requests/load_balancers/remove_session_persistence.rb +15 -0
  164. data/lib/fog/rackspace/requests/load_balancers/set_connection_logging.rb +21 -0
  165. data/lib/fog/rackspace/requests/load_balancers/set_connection_throttling.rb +22 -0
  166. data/lib/fog/rackspace/requests/load_balancers/set_monitor.rb +31 -0
  167. data/lib/fog/rackspace/requests/load_balancers/set_session_persistence.rb +21 -0
  168. data/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb +24 -0
  169. data/lib/fog/rackspace/requests/load_balancers/update_node.rb +26 -0
  170. data/lib/fog/storage.rb +5 -1
  171. data/lib/fog/storage/aws.rb +3 -0
  172. data/lib/fog/storage/models/aws/directory.rb +1 -3
  173. data/lib/fog/storage/models/aws/file.rb +1 -1
  174. data/lib/fog/storage/models/google/file.rb +1 -1
  175. data/lib/fog/storage/models/local/file.rb +8 -6
  176. data/lib/fog/storage/models/ninefold/file.rb +0 -1
  177. data/lib/fog/storage/requests/aws/copy_object.rb +1 -1
  178. data/lib/fog/storage/requests/aws/get_bucket.rb +14 -11
  179. data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +2 -4
  180. data/tests/aws/models/rds/server_tests.rb +4 -4
  181. data/tests/compute/models/aws/server_tests.rb +15 -1
  182. data/tests/compute/requests/aws/helper.rb +0 -4
  183. data/tests/compute/requests/aws/image_tests.rb +40 -9
  184. data/tests/compute/requests/brightbox/account_tests.rb +1 -1
  185. data/tests/compute/requests/brightbox/helper.rb +3 -0
  186. data/tests/compute/requests/brightbox/load_balancer_tests.rb +1 -1
  187. data/tests/compute/requests/voxel/server_tests.rb +2 -2
  188. data/tests/dns/helper.rb +18 -0
  189. data/tests/dns/models/record_tests.rb +3 -2
  190. data/tests/dns/models/records_tests.rb +2 -2
  191. data/tests/dns/models/zone_tests.rb +2 -2
  192. data/tests/dns/models/zones_tests.rb +1 -1
  193. data/tests/dns/requests/bluebox/dns_tests.rb +0 -12
  194. data/tests/dns/requests/dnsimple/dns_tests.rb +0 -12
  195. data/tests/dns/requests/dnsmadeeasy/dns_tests.rb +0 -12
  196. data/tests/dns/requests/dynect/dns_tests.rb +132 -0
  197. data/tests/dns/requests/linode/dns_tests.rb +1 -13
  198. data/tests/dns/requests/slicehost/dns_tests.rb +1 -13
  199. data/tests/helper.rb +1 -1
  200. data/tests/helpers/collection_helper.rb +2 -2
  201. data/tests/helpers/formats_helper.rb +2 -0
  202. data/tests/helpers/mock_helper.rb +4 -1
  203. data/tests/rackspace/helper.rb +24 -0
  204. data/tests/rackspace/load_balancer_tests.rb +21 -0
  205. data/tests/rackspace/models/access_list_tests.rb +12 -0
  206. data/tests/rackspace/models/access_lists_tests.rb +12 -0
  207. data/tests/rackspace/models/load_balancer_tests.rb +116 -0
  208. data/tests/rackspace/models/load_balancers_tests.rb +19 -0
  209. data/tests/rackspace/models/node_tests.rb +19 -0
  210. data/tests/rackspace/models/nodes_tests.rb +12 -0
  211. data/tests/rackspace/models/virtual_ip_tests.rb +16 -0
  212. data/tests/rackspace/models/virtual_ips_tests.rb +12 -0
  213. data/tests/rackspace/requests/access_list_tests.rb +56 -0
  214. data/tests/rackspace/requests/algorithm_tests.rb +19 -0
  215. data/tests/rackspace/requests/connection_logging_tests.rb +25 -0
  216. data/tests/rackspace/requests/connection_throttling_tests.rb +37 -0
  217. data/tests/rackspace/requests/helper.rb +112 -0
  218. data/tests/rackspace/requests/load_balancer_tests.rb +63 -0
  219. data/tests/rackspace/requests/load_balancer_usage_tests.rb +19 -0
  220. data/tests/rackspace/requests/monitor_tests.rb +46 -0
  221. data/tests/rackspace/requests/node_tests.rb +87 -0
  222. data/tests/rackspace/requests/protocol_tests.rb +21 -0
  223. data/tests/rackspace/requests/session_persistence_tests.rb +33 -0
  224. data/tests/rackspace/requests/usage_tests.rb +17 -0
  225. data/tests/rackspace/requests/virtual_ip_tests.rb +40 -0
  226. data/tests/storage/requests/aws/bucket_tests.rb +53 -0
  227. metadata +127 -8
  228. data/lib/fog/compute/requests/aws/modify_image_attributes.rb +0 -37
@@ -0,0 +1,37 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | connection_throttling', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ given_a_load_balancer do
7
+ tests('success') do
8
+
9
+ @lb.wait_for { ready? }
10
+ tests("#get_connection_throttling(#{@lb.id})").formats(CONNECTION_THROTTLING_FORMAT) do
11
+ @service.get_connection_throttling(@lb.id).body
12
+ end
13
+
14
+ @lb.wait_for { ready? }
15
+ tests("#set_connection_throttling(#{@lb.id}, 10, 10, 10, 30)").succeeds do
16
+ @service.set_connection_throttling(@lb.id, 10, 10, 10, 30)
17
+ end
18
+
19
+ @lb.wait_for { ready? }
20
+ tests("#get_connection_throttling(#{@lb.id})").formats(CONNECTION_THROTTLING_FORMAT) do
21
+ @service.get_connection_throttling(@lb.id).body
22
+ end
23
+
24
+ @lb.wait_for { ready? }
25
+ tests("#remove_connection_throttling()").succeeds do
26
+ @service.remove_connection_throttling(@lb.id)
27
+ end
28
+ end
29
+
30
+ tests('failure') do
31
+ tests("#set_connection_throttling(#{@lb.id}, -1, -1, -1, -1)").raises(Fog::Rackspace::LoadBalancers::BadRequest) do
32
+ @service.set_connection_throttling(@lb.id, -1, -1, -1, -1)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,112 @@
1
+ SINGLE_NODE_FORMAT = {'address' => String, 'id' => Integer, 'status' => String, 'weight' => Fog::Nullable::Integer, 'port' => Integer, 'condition' => String}
2
+ NODE_FORMAT = {'node' => SINGLE_NODE_FORMAT}
3
+ NODES_FORMAT = {'nodes' => [SINGLE_NODE_FORMAT]}
4
+ VIRTUAL_IP_FORMAT = {'type' => String, 'id' => Integer, 'type' => String, 'ipVersion' => String, 'address' => String}
5
+ VIRTUAL_IPS_FORMAT = { 'virtualIps' => [VIRTUAL_IP_FORMAT] }
6
+ LOAD_BALANCER_USAGE_FORMAT = {
7
+ 'loadBalancerUsageRecords' => [
8
+ {
9
+ 'id' => Fog::Nullable::Integer,
10
+ 'eventType' => Fog::Nullable::String,
11
+ 'averageNumConnections' => Fog::Nullable::Float,
12
+ 'incomingTransfer' => Fog::Nullable::Integer,
13
+ 'outgoingTransfer' => Fog::Nullable::Integer,
14
+ 'numVips' => Fog::Nullable::Integer,
15
+ 'numPolls' => Fog::Nullable::Integer,
16
+ 'startTime' => Fog::Nullable::String,
17
+ 'endTime' => Fog::Nullable::String
18
+ }
19
+ ]
20
+ }
21
+
22
+ USAGE_FORMAT = {
23
+ 'accountId' => Integer,
24
+ 'loadBalancerUsages' => [
25
+ {
26
+ 'loadBalancerId' => Fog::Nullable::Integer,
27
+ 'loadBalancerName' => Fog::Nullable::String
28
+ }.merge(LOAD_BALANCER_USAGE_FORMAT)
29
+ ],
30
+ 'accountUsage' => [
31
+ {
32
+ 'startTime' => Fog::Nullable::String,
33
+ 'numLoadBalancers' => Fog::Nullable::Integer,
34
+ 'numPublicVips' => Fog::Nullable::Integer,
35
+ 'numServicenetVips' => Fog::Nullable::Integer
36
+ }
37
+ ]
38
+ }
39
+ CONNECTION_LOGGING_FORMAT = {
40
+ 'connectionLogging' => {
41
+ 'enabled' => Fog::Boolean
42
+ }
43
+ }
44
+ CONNECTION_THROTTLING_FORMAT = {
45
+ 'connectionThrottle' => {
46
+ 'maxConnections' => Fog::Nullable::Integer,
47
+ 'minConnections' => Fog::Nullable::Integer,
48
+ 'maxConnectionRate' => Fog::Nullable::Integer,
49
+ 'rateInterval' => Fog::Nullable::Integer
50
+ }
51
+ }
52
+ SESSION_PERSISTENCE_FORMAT = {
53
+ 'sessionPersistence' => {
54
+ 'persistenceType' => Fog::Nullable::String
55
+ }
56
+ }
57
+
58
+ ACCESS_LIST_FORMAT = {
59
+ 'accessList' => [
60
+ {
61
+ 'address' => String,
62
+ 'id' => Integer,
63
+ 'type' => String
64
+ }
65
+ ]
66
+ }
67
+ HEALTH_MONITOR_FORMAT = {
68
+ 'healthMonitor' => {
69
+ 'type' => Fog::Nullable::String,
70
+ 'delay' => Fog::Nullable::Integer,
71
+ 'timeout' => Fog::Nullable::Integer,
72
+ 'attemptsBeforeDeactivation' => Fog::Nullable::Integer,
73
+ 'path' => Fog::Nullable::String,
74
+ 'bodyRegex' => Fog::Nullable::String,
75
+ 'statusRegex' => Fog::Nullable::String
76
+ }
77
+ }
78
+
79
+ STATUS_ACTIVE = 'ACTIVE'
80
+
81
+ LOAD_BALANCERS_FORMAT = {
82
+ 'loadBalancers' => [
83
+ {
84
+ 'name' => String,
85
+ 'id' => Integer,
86
+ 'port' => Integer,
87
+ 'protocol' => String,
88
+ 'algorithm' => String,
89
+ 'status' => String,
90
+ 'virtualIps' => [VIRTUAL_IP_FORMAT],
91
+ 'nodes' => [SINGLE_NODE_FORMAT],
92
+ 'created' => { 'time' => String },
93
+ 'updated' => { 'time' => String }
94
+ }]
95
+ }
96
+ LOAD_BALANCER_FORMAT = {
97
+ 'loadBalancer' => {
98
+ 'name' => String,
99
+ 'id' => Integer,
100
+ 'port' => Integer,
101
+ 'protocol' => String,
102
+ 'algorithm' => String,
103
+ 'status' => String,
104
+ 'cluster' => { 'name' => String },
105
+ 'virtualIps' => [VIRTUAL_IP_FORMAT],
106
+ 'nodes' => [SINGLE_NODE_FORMAT],
107
+ 'created' => { 'time' => String },
108
+ 'updated' => { 'time' => String },
109
+ }.merge(CONNECTION_LOGGING_FORMAT)
110
+ }
111
+
112
+
@@ -0,0 +1,63 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ tests('success') do
7
+
8
+ @lb_id = nil
9
+ @lb_name = 'fog' + Time.now.to_i.to_s
10
+
11
+ tests('#create_load_balancer(fog, )').formats(LOAD_BALANCER_FORMAT) do
12
+ data = @service.create_load_balancer(@lb_name, 'HTTP', 80, [{ :type => 'PUBLIC'}], [{ :address => '10.0.0.1', :port => 80, :condition => 'ENABLED'}]).body
13
+ @lb_id = data['loadBalancer']['id']
14
+ data
15
+ end
16
+
17
+ tests("#update_load_balancer(#{@lb_id}) while immutable").raises(Fog::Rackspace::LoadBalancers::ServiceError) do
18
+ @service.update_load_balancer(@lb_id, { :port => 80 }).body
19
+ end
20
+
21
+ tests("#get_load_balancer(#{@lb_id})").formats(LOAD_BALANCER_FORMAT) do
22
+ @service.get_load_balancer(@lb_id).body
23
+ end
24
+
25
+ tests("#list_load_balancers()").formats(LOAD_BALANCERS_FORMAT) do
26
+ @service.list_load_balancers.body
27
+ end
28
+
29
+ until @service.get_load_balancer(@lb_id).body["loadBalancer"]["status"] == STATUS_ACTIVE
30
+ sleep 10
31
+ end
32
+
33
+
34
+ tests("#update_load_balancer(#{@lb_id}, { :port => 80 })").succeeds do
35
+ @service.update_load_balancer(@lb_id, { :port => 80 }).body
36
+ end
37
+
38
+ until @service.get_load_balancer(@lb_id).body["loadBalancer"]["status"] == STATUS_ACTIVE
39
+ sleep 10
40
+ end
41
+
42
+ tests("#delete_load_balancer(#{@ld_id})").succeeds do
43
+ @service.delete_load_balancer(@lb_id).body
44
+ end
45
+ end
46
+
47
+ tests('failure') do
48
+ tests('#create_load_balancer(invalid name)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
49
+ @service.create_load_balancer('', 'HTTP', 80, [{ :type => 'PUBLIC'}], [{ :address => '10.0.0.1', :port => 80, :condition => 'ENABLED'}])
50
+ end
51
+
52
+ tests('#get_load_balancer(0)').raises(Fog::Rackspace::LoadBalancers::NotFound) do
53
+ @service.get_load_balancer(0)
54
+ end
55
+ tests('#delete_load_balancer(0)').raises(Fog::Rackspace::LoadBalancers::NotFound) do
56
+ @service.delete_load_balancer(0)
57
+ end
58
+ tests('#update_load_balancer(0)').raises(Fog::Rackspace::LoadBalancers::NotFound) do
59
+ @service.update_load_balancer(0, { :name => 'newname' })
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,19 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_usage', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ given_a_load_balancer do
7
+ tests('success') do
8
+ @lb.wait_for { ready? }
9
+ tests("#get_usage(#{@lb.id})").formats(LOAD_BALANCER_USAGE_FORMAT) do
10
+ @service.get_load_balancer_usage(@lb.id).body
11
+ end
12
+
13
+ tests("#get_usage(:start_time => '2010-05-10', :end_time => '2010-05-11')").formats(LOAD_BALANCER_USAGE_FORMAT) do
14
+ @service.get_load_balancer_usage(@lb.id, :start_time => '2010-05-10', :end_time => '2010-05-11').body
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,46 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | monitor', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ given_a_load_balancer do
7
+ tests('success') do
8
+
9
+ @lb.wait_for { ready? }
10
+ tests("#get_monitor(#{@lb.id})").formats(HEALTH_MONITOR_FORMAT) do
11
+ @service.get_monitor(@lb.id).body
12
+ end
13
+
14
+ @lb.wait_for { ready? }
15
+ tests("#set_monitor(#{@lb.id}, 'CONNECT', 5, 5, 5)").succeeds do
16
+ @service.set_monitor(@lb.id, 'CONNECT', 5, 5, 5)
17
+ end
18
+
19
+ @lb.wait_for { ready? }
20
+ tests("#set_monitor(#{@lb.id}, 'HTTP', 5, 5, 5, :path => '/', :body_regex => '^200$', :status_regex => '^2[0-9][0-9]$')").succeeds do
21
+ @service.set_monitor(@lb.id, 'HTTP', 5, 5, 5, :path => '/', :body_regex => '^200$', :status_regex => '2[0-9][0-9]$')
22
+ end
23
+
24
+ @lb.wait_for { ready? }
25
+ tests("#get_monitor(#{@lb.id})").formats(HEALTH_MONITOR_FORMAT) do
26
+ @service.get_monitor(@lb.id).body
27
+ end
28
+
29
+ @lb.wait_for { ready? }
30
+ tests("#remove_monitor()").succeeds do
31
+ @service.remove_monitor(@lb.id)
32
+ end
33
+ end
34
+
35
+ tests('failure') do
36
+ tests("#set_monitor(#{@lb.id}, 'HTP', 5, 5, 5, 5)").raises(Fog::Rackspace::LoadBalancers::BadRequest) do
37
+ @service.set_monitor(@lb.id, 5, 5, 5, 5)
38
+ end
39
+
40
+ tests("#remove_monitor(#{@lb.id}) => No Monitor").raises(Fog::Rackspace::LoadBalancers::ServiceError) do
41
+ @service.remove_monitor(@lb.id)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,87 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | load_balancer_tests', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ given_a_load_balancer do
7
+ @nodes_created = []
8
+
9
+ tests('success') do
10
+
11
+ @lb.wait_for { ready? }
12
+ tests('#create_node').formats(NODES_FORMAT) do
13
+ data = @service.create_node(@lb.id, '10.10.10.10', 80, 'ENABLED').body
14
+ @nodes_created << data['nodes'][0]['id']
15
+ data
16
+ end
17
+
18
+ @lb.wait_for { ready? }
19
+ tests('#create_node with weight').formats(NODES_FORMAT) do
20
+ data = @service.create_node(@lb.id, '10.10.10.11', 80, 'ENABLED', { :weight => 10 }).body
21
+ @nodes_created << data['nodes'][0]['id']
22
+ data
23
+ end
24
+
25
+ @lb.wait_for { ready? }
26
+ tests("list_nodes").formats(NODES_FORMAT) do
27
+ @service.list_nodes(@lb.id).body
28
+ end
29
+
30
+ @lb.wait_for { ready? }
31
+ tests("get_node(#{@lb_node_id})").formats(NODE_FORMAT) do
32
+ @service.get_node(@lb.id, @nodes_created[0]).body
33
+ end
34
+
35
+ tests("update_node(#{@lb.id}, #{@nodes_created[0]})").succeeds do
36
+
37
+ @lb.wait_for { ready? }
38
+ tests("condition").succeeds do
39
+ @service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED' })
40
+ end
41
+
42
+ @lb.wait_for { ready? }
43
+ tests("weight").succeeds do
44
+ @service.update_node(@lb.id, @nodes_created[0], { :weight => 20 })
45
+ end
46
+
47
+ @lb.wait_for { ready? }
48
+ tests("condition and weight").succeeds do
49
+ @service.update_node(@lb.id, @nodes_created[0], { :condition => 'DISABLED', :weight => 20 })
50
+ end
51
+ end
52
+ end
53
+
54
+ tests('failure') do
55
+ tests('create_node(invalid ip)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
56
+ @service.create_node(@lb.id, '', 80, 'ENABLED')
57
+ end
58
+ tests('create_node(invalid condition)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
59
+ @service.create_node(@lb.id, '10.10.10.10', 80, 'EABLED')
60
+ end
61
+ tests('get_node(0)').raises(Fog::Rackspace::LoadBalancers::NotFound) do
62
+ @service.get_node(@lb.id, 0)
63
+ end
64
+ tests('delete_nodes(0)').raises(Fog::Rackspace::LoadBalancers::ServiceError) do
65
+ @service.delete_nodes(@lb.id, 0)
66
+ end
67
+ tests('update_node(0)').raises(Fog::Rackspace::LoadBalancers::NotFound) do
68
+ @service.update_node(@lb.id, 0, { :weight => 20 })
69
+ end
70
+ end
71
+
72
+ tests('success') do
73
+ @lb.wait_for { ready? }
74
+ tests("#delete_nodes(multiple node)").succeeds do
75
+ pending
76
+ @service.delete_nodes(@lb.id, *@nodes_created)
77
+ end
78
+ @lb.wait_for { ready? }
79
+ tests("#delete_node()").succeeds do
80
+ node_id = @service.create_node(@lb.id, '10.10.10.12', 80, 'ENABLED').body['nodes'][0]['id']
81
+ @lb.wait_for { ready? }
82
+ @service.delete_node(@lb.id, node_id)
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,21 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | protocol_tests', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ PROTOCOLS_FORMAT = {
6
+ 'protocols' => [
7
+ {
8
+ 'name' => String,
9
+ 'port' => Integer
10
+ }
11
+ ]}
12
+
13
+ @service = Fog::Rackspace::LoadBalancers.new
14
+
15
+ tests('success') do
16
+
17
+ tests('#list_protocols').formats(PROTOCOLS_FORMAT) do
18
+ @service.list_protocols.body
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,33 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | session_persistence', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ given_a_load_balancer do
7
+ tests('success') do
8
+ @lb.wait_for { ready? }
9
+ tests("#set_session_persistence(#{@lb.id}, 'HTTP_COOKIE')").succeeds do
10
+ @service.set_session_persistence(@lb.id, 'HTTP_COOKIE')
11
+ end
12
+
13
+ @lb.wait_for { ready? }
14
+ tests("#get_session_persistence{@lb.id})").formats(SESSION_PERSISTENCE_FORMAT) do
15
+ data = @service.get_session_persistence(@lb.id).body
16
+ returns('HTTP_COOKIE') { data['sessionPersistence']['persistenceType'] }
17
+ data
18
+ end
19
+
20
+ @lb.wait_for { ready? }
21
+ tests("#remove_session_persistence()").succeeds do
22
+ @service.remove_session_persistence(@lb.id)
23
+ end
24
+ end
25
+
26
+ tests('failure') do
27
+ tests("#set_session_persistence(#{@lb.id}, 'aaa')").raises(Fog::Rackspace::LoadBalancers::BadRequest) do
28
+ @service.set_session_persistence(@lb.id, 'aaa')
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,17 @@
1
+ Shindo.tests('Fog::Rackspace::LoadBalancers | usage', ['rackspace']) do
2
+
3
+ pending if Fog.mocking?
4
+
5
+ given_a_load_balancer_service do
6
+ tests('success') do
7
+
8
+ tests("#get_usage()").formats(USAGE_FORMAT) do
9
+ @service.get_usage.body
10
+ end
11
+
12
+ tests("#get_usage(:start_time => '2010-05-10', :end_time => '2010-05-11')").formats(USAGE_FORMAT) do
13
+ @service.get_usage(:start_time => '2010-05-10', :end_time => '2010-05-11').body
14
+ end
15
+ end
16
+ end
17
+ end