fog 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/Rakefile +90 -1
- data/bin/fog +5 -1
- data/changelog.txt +156 -0
- data/docs/_layouts/default.html +1 -0
- data/docs/about/press.markdown +4 -0
- data/docs/compute/index.markdown +4 -0
- data/docs/storage/index.markdown +4 -0
- data/fog.gemspec +3 -3
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/iam.rb +7 -6
- data/lib/fog/aws/models/rds/server.rb +27 -23
- data/lib/fog/aws/parsers/iam/get_group.rb +2 -2
- data/lib/fog/aws/requests/iam/update_server_certificate.rb +37 -0
- data/lib/fog/bin.rb +2 -1
- data/lib/fog/bin/dynect.rb +30 -0
- data/lib/fog/bin/rackspace.rb +4 -0
- data/lib/fog/cdn.rb +4 -0
- data/lib/fog/cdn/aws.rb +6 -0
- data/lib/fog/cdn/parsers/aws/get_invalidation_list.rb +43 -0
- data/lib/fog/cdn/parsers/aws/get_streaming_distribution_list.rb +59 -0
- data/lib/fog/cdn/parsers/aws/streaming_distribution.rb +59 -0
- data/lib/fog/cdn/requests/aws/delete_streaming_distribution.rb +28 -0
- data/lib/fog/cdn/requests/aws/get_invalidation_list.rb +42 -0
- data/lib/fog/cdn/requests/aws/get_streaming_distribution.rb +50 -0
- data/lib/fog/cdn/requests/aws/get_streaming_distribution_list.rb +59 -0
- data/lib/fog/cdn/requests/aws/post_streaming_distribution.rb +78 -0
- data/lib/fog/cdn/requests/aws/put_streaming_distribution_config.rb +83 -0
- data/lib/fog/compute.rb +6 -2
- data/lib/fog/compute/aws.rb +12 -1
- data/lib/fog/compute/brightbox.rb +22 -12
- data/lib/fog/compute/models/aws/image.rb +5 -0
- data/lib/fog/compute/models/aws/server.rb +19 -22
- data/lib/fog/compute/models/aws/tag.rb +1 -1
- data/lib/fog/compute/models/bluebox/server.rb +2 -18
- data/lib/fog/compute/models/brightbox/account.rb +1 -1
- data/lib/fog/compute/models/brightbox/server.rb +2 -2
- data/lib/fog/compute/models/go_grid/server.rb +2 -18
- data/lib/fog/compute/models/linode/server.rb +5 -5
- data/lib/fog/compute/models/ninefold/server.rb +2 -2
- data/lib/fog/compute/models/rackspace/server.rb +2 -18
- data/lib/fog/compute/models/server.rb +27 -0
- data/lib/fog/compute/models/slicehost/server.rb +2 -18
- data/lib/fog/compute/models/storm_on_demand/server.rb +3 -3
- data/lib/fog/compute/models/voxel/server.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_images.rb +15 -3
- data/lib/fog/compute/parsers/aws/describe_instances.rb +1 -1
- data/lib/fog/compute/parsers/aws/describe_security_groups.rb +31 -7
- data/lib/fog/compute/requests/aws/describe_images.rb +33 -14
- data/lib/fog/compute/requests/aws/describe_volumes.rb +1 -0
- data/lib/fog/compute/requests/aws/modify_image_attribute.rb +39 -0
- data/lib/fog/compute/requests/aws/modify_instance_attribute.rb +37 -0
- data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +10 -10
- data/lib/fog/compute/requests/aws/register_image.rb +54 -13
- data/lib/fog/compute/requests/aws/run_instances.rb +5 -0
- data/lib/fog/compute/requests/aws/stop_instances.rb +2 -1
- data/lib/fog/compute/requests/brightbox/activate_console_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_interface.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_server_type.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_user.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_zone.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_api_clients.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_images.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_server_types.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_servers.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_users.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_zones.rb +2 -8
- data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/shutdown_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/snapshot_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/start_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/stop_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_user.rb +2 -8
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/credentials.rb +1 -1
- data/lib/fog/core/errors.rb +3 -1
- data/lib/fog/core/json.rb +20 -0
- data/lib/fog/core/provider.rb +3 -1
- data/lib/fog/core/service.rb +5 -0
- data/lib/fog/dns.rb +8 -1
- data/lib/fog/dns/dynect.rb +80 -0
- data/lib/fog/dns/models/dynect/record.rb +67 -0
- data/lib/fog/dns/models/dynect/records.rb +53 -0
- data/lib/fog/dns/models/dynect/zone.rb +60 -0
- data/lib/fog/dns/models/dynect/zones.rb +29 -0
- data/lib/fog/dns/requests/dynect/delete_record.rb +24 -0
- data/lib/fog/dns/requests/dynect/delete_zone.rb +21 -0
- data/lib/fog/dns/requests/dynect/get_node_list.rb +23 -0
- data/lib/fog/dns/requests/dynect/get_record.rb +25 -0
- data/lib/fog/dns/requests/dynect/get_zone.rb +22 -0
- data/lib/fog/dns/requests/dynect/post_record.rb +27 -0
- data/lib/fog/dns/requests/dynect/post_session.rb +36 -0
- data/lib/fog/dns/requests/dynect/post_zone.rb +32 -0
- data/lib/fog/dns/requests/dynect/put_zone.rb +26 -0
- data/lib/fog/dns/zerigo.rb +1 -1
- data/lib/fog/providers.rb +1 -0
- data/lib/fog/providers/dynect.rb +14 -0
- data/lib/fog/providers/rackspace.rb +1 -0
- data/lib/fog/rackspace/load_balancers.rb +179 -0
- data/lib/fog/rackspace/models/load_balancers/access_rule.rb +39 -0
- data/lib/fog/rackspace/models/load_balancers/access_rules.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +216 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancers.rb +27 -0
- data/lib/fog/rackspace/models/load_balancers/node.rb +58 -0
- data/lib/fog/rackspace/models/load_balancers/nodes.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ip.rb +35 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ips.rb +32 -0
- data/lib/fog/rackspace/requests/load_balancers/create_access_rule.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +26 -0
- data/lib/fog/rackspace/requests/load_balancers/create_node.rb +27 -0
- data/lib/fog/rackspace/requests/load_balancers/create_virtual_ip.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_access_rule.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_all_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +17 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_virtual_ip.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_logging.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/get_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_usage.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/list_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_algorithms.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_nodes.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_protocols.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_virtual_ips.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_logging.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_throttling.rb +22 -0
- data/lib/fog/rackspace/requests/load_balancers/set_monitor.rb +31 -0
- data/lib/fog/rackspace/requests/load_balancers/set_session_persistence.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/update_node.rb +26 -0
- data/lib/fog/storage.rb +5 -1
- data/lib/fog/storage/aws.rb +3 -0
- data/lib/fog/storage/models/aws/directory.rb +1 -3
- data/lib/fog/storage/models/aws/file.rb +1 -1
- data/lib/fog/storage/models/google/file.rb +1 -1
- data/lib/fog/storage/models/local/file.rb +8 -6
- data/lib/fog/storage/models/ninefold/file.rb +0 -1
- data/lib/fog/storage/requests/aws/copy_object.rb +1 -1
- data/lib/fog/storage/requests/aws/get_bucket.rb +14 -11
- data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +2 -4
- data/tests/aws/models/rds/server_tests.rb +4 -4
- data/tests/compute/models/aws/server_tests.rb +15 -1
- data/tests/compute/requests/aws/helper.rb +0 -4
- data/tests/compute/requests/aws/image_tests.rb +40 -9
- data/tests/compute/requests/brightbox/account_tests.rb +1 -1
- data/tests/compute/requests/brightbox/helper.rb +3 -0
- data/tests/compute/requests/brightbox/load_balancer_tests.rb +1 -1
- data/tests/compute/requests/voxel/server_tests.rb +2 -2
- data/tests/dns/helper.rb +18 -0
- data/tests/dns/models/record_tests.rb +3 -2
- data/tests/dns/models/records_tests.rb +2 -2
- data/tests/dns/models/zone_tests.rb +2 -2
- data/tests/dns/models/zones_tests.rb +1 -1
- data/tests/dns/requests/bluebox/dns_tests.rb +0 -12
- data/tests/dns/requests/dnsimple/dns_tests.rb +0 -12
- data/tests/dns/requests/dnsmadeeasy/dns_tests.rb +0 -12
- data/tests/dns/requests/dynect/dns_tests.rb +132 -0
- data/tests/dns/requests/linode/dns_tests.rb +1 -13
- data/tests/dns/requests/slicehost/dns_tests.rb +1 -13
- data/tests/helper.rb +1 -1
- data/tests/helpers/collection_helper.rb +2 -2
- data/tests/helpers/formats_helper.rb +2 -0
- data/tests/helpers/mock_helper.rb +4 -1
- data/tests/rackspace/helper.rb +24 -0
- data/tests/rackspace/load_balancer_tests.rb +21 -0
- data/tests/rackspace/models/access_list_tests.rb +12 -0
- data/tests/rackspace/models/access_lists_tests.rb +12 -0
- data/tests/rackspace/models/load_balancer_tests.rb +116 -0
- data/tests/rackspace/models/load_balancers_tests.rb +19 -0
- data/tests/rackspace/models/node_tests.rb +19 -0
- data/tests/rackspace/models/nodes_tests.rb +12 -0
- data/tests/rackspace/models/virtual_ip_tests.rb +16 -0
- data/tests/rackspace/models/virtual_ips_tests.rb +12 -0
- data/tests/rackspace/requests/access_list_tests.rb +56 -0
- data/tests/rackspace/requests/algorithm_tests.rb +19 -0
- data/tests/rackspace/requests/connection_logging_tests.rb +25 -0
- data/tests/rackspace/requests/connection_throttling_tests.rb +37 -0
- data/tests/rackspace/requests/helper.rb +112 -0
- data/tests/rackspace/requests/load_balancer_tests.rb +63 -0
- data/tests/rackspace/requests/load_balancer_usage_tests.rb +19 -0
- data/tests/rackspace/requests/monitor_tests.rb +46 -0
- data/tests/rackspace/requests/node_tests.rb +87 -0
- data/tests/rackspace/requests/protocol_tests.rb +21 -0
- data/tests/rackspace/requests/session_persistence_tests.rb +33 -0
- data/tests/rackspace/requests/usage_tests.rb +17 -0
- data/tests/rackspace/requests/virtual_ip_tests.rb +40 -0
- data/tests/storage/requests/aws/bucket_tests.rb +53 -0
- metadata +127 -8
- 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
|