mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
133 lines
6.3 KiB
Ruby
133 lines
6.3 KiB
Ruby
|
Shindo.tests('Aws::ELB | policy_tests', ['aws', 'elb']) do
|
||
|
@load_balancer_id = 'fog-test-policies'
|
||
|
|
||
|
tests('success') do
|
||
|
listeners = [{'LoadBalancerPort' => 80, 'InstancePort' => 80, 'Protocol' => 'HTTP'}]
|
||
|
Fog::AWS[:elb].create_load_balancer(['us-east-1a'], @load_balancer_id, listeners)
|
||
|
|
||
|
tests("#describe_load_balancer_policy_types").formats(Aws::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICY_TYPES) do
|
||
|
@policy_types = Fog::AWS[:elb].describe_load_balancer_policy_types.body
|
||
|
end
|
||
|
|
||
|
tests("#create_app_cookie_stickiness_policy").formats(Aws::ELB::Formats::BASIC) do
|
||
|
cookie, policy = 'fog-app-cookie', 'fog-app-policy'
|
||
|
Fog::AWS[:elb].create_app_cookie_stickiness_policy(@load_balancer_id, policy, cookie).body
|
||
|
end
|
||
|
|
||
|
tests("#create_lb_cookie_stickiness_policy with expiry").formats(Aws::ELB::Formats::BASIC) do
|
||
|
policy = 'fog-lb-expiry'
|
||
|
expiry = 300
|
||
|
Fog::AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy, expiry).body
|
||
|
end
|
||
|
|
||
|
tests("#create_lb_cookie_stickiness_policy without expiry").formats(Aws::ELB::Formats::BASIC) do
|
||
|
policy = 'fog-lb-no-expiry'
|
||
|
Fog::AWS[:elb].create_lb_cookie_stickiness_policy(@load_balancer_id, policy).body
|
||
|
end
|
||
|
|
||
|
tests("#create_load_balancer_policy").formats(Aws::ELB::Formats::BASIC) do
|
||
|
policy = 'fog-policy'
|
||
|
Fog::AWS[:elb].create_load_balancer_policy(@load_balancer_id, policy, 'PublicKeyPolicyType', {'PublicKey' => Aws::IAM::SERVER_CERT_PUBLIC_KEY}).body
|
||
|
end
|
||
|
|
||
|
tests("#describe_load_balancer_policies") do
|
||
|
body = Fog::AWS[:elb].describe_load_balancer_policies(@load_balancer_id).body
|
||
|
formats(Aws::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICIES) { body }
|
||
|
|
||
|
# Check the result of each policy by name
|
||
|
returns({
|
||
|
"PolicyAttributeDescriptions"=>[{
|
||
|
"AttributeName"=>"CookieName",
|
||
|
"AttributeValue"=>"fog-app-cookie"
|
||
|
}],
|
||
|
"PolicyName"=>"fog-app-policy",
|
||
|
"PolicyTypeName"=>"AppCookieStickinessPolicyType"
|
||
|
}) do
|
||
|
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-app-policy' }
|
||
|
end
|
||
|
|
||
|
returns({
|
||
|
"PolicyAttributeDescriptions"=>[{
|
||
|
"AttributeName"=>"CookieExpirationPeriod",
|
||
|
"AttributeValue"=>"300"
|
||
|
}],
|
||
|
"PolicyName"=>"fog-lb-expiry",
|
||
|
"PolicyTypeName"=>"LBCookieStickinessPolicyType"
|
||
|
}) do
|
||
|
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-lb-expiry' }
|
||
|
end
|
||
|
|
||
|
returns({
|
||
|
"PolicyAttributeDescriptions"=>[{
|
||
|
"AttributeName"=>"CookieExpirationPeriod",
|
||
|
"AttributeValue"=>"0"
|
||
|
}],
|
||
|
"PolicyName"=>"fog-lb-no-expiry",
|
||
|
"PolicyTypeName"=>"LBCookieStickinessPolicyType"
|
||
|
}) do
|
||
|
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-lb-no-expiry' }
|
||
|
end
|
||
|
|
||
|
returns({
|
||
|
"PolicyAttributeDescriptions"=>[{
|
||
|
"AttributeName"=>"PublicKey",
|
||
|
"AttributeValue"=> Aws::IAM::SERVER_CERT_PUBLIC_KEY
|
||
|
}],
|
||
|
"PolicyName"=>"fog-policy",
|
||
|
"PolicyTypeName"=>"PublicKeyPolicyType"
|
||
|
}) do
|
||
|
body["DescribeLoadBalancerPoliciesResult"]["PolicyDescriptions"].find{|e| e['PolicyName'] == 'fog-policy' }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
tests("#describe_load_balancer includes all policies") do
|
||
|
lb = Fog::AWS[:elb].describe_load_balancers("LoadBalancerNames" => [@load_balancer_id]).body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"].first
|
||
|
returns([
|
||
|
{"PolicyName"=>"fog-app-policy", "CookieName"=>"fog-app-cookie"}
|
||
|
]) { lb["Policies"]["AppCookieStickinessPolicies"] }
|
||
|
|
||
|
returns([
|
||
|
{"PolicyName"=>"fog-lb-expiry", "CookieExpirationPeriod"=> 300}
|
||
|
]) { lb["Policies"]["LBCookieStickinessPolicies"].select{|e| e["PolicyName"] == "fog-lb-expiry"} }
|
||
|
|
||
|
returns([
|
||
|
{"PolicyName" => "fog-lb-no-expiry"}
|
||
|
]) { lb["Policies"]["LBCookieStickinessPolicies"].select{|e| e["PolicyName"] == "fog-lb-no-expiry"} }
|
||
|
|
||
|
returns([
|
||
|
"fog-policy"
|
||
|
]) { lb["Policies"]["OtherPolicies"] }
|
||
|
end
|
||
|
|
||
|
tests("#delete_load_balancer_policy").formats(Aws::ELB::Formats::BASIC) do
|
||
|
policy = 'fog-lb-no-expiry'
|
||
|
Fog::AWS[:elb].delete_load_balancer_policy(@load_balancer_id, policy).body
|
||
|
end
|
||
|
|
||
|
tests("#set_load_balancer_policies_of_listener adds policy").formats(Aws::ELB::Formats::BASIC) do
|
||
|
port, policies = 80, ['fog-lb-expiry']
|
||
|
Fog::AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, policies).body
|
||
|
end
|
||
|
|
||
|
tests("#set_load_balancer_policies_of_listener removes policy").formats(Aws::ELB::Formats::BASIC) do
|
||
|
port = 80
|
||
|
Fog::AWS[:elb].set_load_balancer_policies_of_listener(@load_balancer_id, port, []).body
|
||
|
end
|
||
|
|
||
|
proxy_policy = "EnableProxyProtocol"
|
||
|
Fog::AWS[:elb].create_load_balancer_policy(@load_balancer_id, proxy_policy, 'ProxyProtocolPolicyType', { "ProxyProtocol" => true })
|
||
|
|
||
|
tests("#set_load_balancer_policies_for_backend_server replaces policies on port").formats(Aws::ELB::Formats::BASIC) do
|
||
|
Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(@load_balancer_id, 80, [proxy_policy]).body
|
||
|
end
|
||
|
|
||
|
tests("#describe_load_balancers has other policies") do
|
||
|
Fog::AWS[:elb].set_load_balancer_policies_for_backend_server(@load_balancer_id, 80, [proxy_policy]).body
|
||
|
description = Fog::AWS[:elb].describe_load_balancers("LoadBalancerNames" => [@load_balancer_id]).body["DescribeLoadBalancersResult"]["LoadBalancerDescriptions"].first
|
||
|
returns(true) { description["Policies"]["OtherPolicies"].include?(proxy_policy) }
|
||
|
end
|
||
|
|
||
|
Fog::AWS[:elb].delete_load_balancer(@load_balancer_id)
|
||
|
end
|
||
|
end
|