mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
[aws|fog] crapiness and hacks. ✌️
This commit is contained in:
parent
c4cb974a37
commit
caaccecc9f
9 changed files with 56 additions and 14 deletions
|
@ -31,7 +31,24 @@ module Fog
|
||||||
|
|
||||||
class Mock
|
class Mock
|
||||||
def create_app_cookie_stickiness_policy(lb_name, policy_name, cookie_name)
|
def create_app_cookie_stickiness_policy(lb_name, policy_name, cookie_name)
|
||||||
create_load_balancer_policy(lb_name, policy_name, 'AppCookieStickinessPolicyType', {'CookieName' => cookie_name})
|
if load_balancer = self.data[:load_balancers][lb_name]
|
||||||
|
response = Excon::Response.new
|
||||||
|
response.status = 200
|
||||||
|
|
||||||
|
load_balancer['Policies']['AppCookieStickinessPolicies'] << { 'CookieName' => cookie_name, 'PolicyName' => policy_name }
|
||||||
|
|
||||||
|
create_load_balancer_policy(lb_name, policy_name, 'AppCookieStickinessPolicyType', {'CookieName' => cookie_name})
|
||||||
|
|
||||||
|
response.body = {
|
||||||
|
'ResponseMetadata' => {
|
||||||
|
'RequestId' => Fog::AWS::Mock.request_id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
response
|
||||||
|
else
|
||||||
|
raise Fog::AWS::ELB::NotFound
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,7 +33,24 @@ module Fog
|
||||||
|
|
||||||
class Mock
|
class Mock
|
||||||
def create_lb_cookie_stickiness_policy(lb_name, policy_name, cookie_expiration_period=nil)
|
def create_lb_cookie_stickiness_policy(lb_name, policy_name, cookie_expiration_period=nil)
|
||||||
create_load_balancer_policy(lb_name, policy_name, 'LBCookieStickinessPolicyType', {'CookieExpirationPeriod' => cookie_expiration_period})
|
if load_balancer = self.data[:load_balancers][lb_name]
|
||||||
|
response = Excon::Response.new
|
||||||
|
response.status = 200
|
||||||
|
|
||||||
|
load_balancer['Policies']['LBCookieStickinessPolicies'] << { 'CookieExpirationPeriod' => cookie_expiration_period, 'PolicyName' => policy_name }
|
||||||
|
|
||||||
|
create_load_balancer_policy(lb_name, policy_name, 'LBCookieStickinessPolicyType', {'CookieExpirationPeriod' => cookie_expiration_period})
|
||||||
|
|
||||||
|
response.body = {
|
||||||
|
'ResponseMetadata' => {
|
||||||
|
'RequestId' => Fog::AWS::Mock.request_id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
response
|
||||||
|
else
|
||||||
|
raise Fog::AWS::ELB::NotFound
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -82,7 +82,11 @@ module Fog
|
||||||
'Instances' => [],
|
'Instances' => [],
|
||||||
'ListenerDescriptions' => listeners,
|
'ListenerDescriptions' => listeners,
|
||||||
'LoadBalancerName' => lb_name,
|
'LoadBalancerName' => lb_name,
|
||||||
'Policies' => [],
|
'Policies' => {
|
||||||
|
'AppCookieStickinessPolicies' => [],
|
||||||
|
'LBCookieStickinessPolicies' => [],
|
||||||
|
'Proper' => []
|
||||||
|
},
|
||||||
'SourceSecurityGroup' => {
|
'SourceSecurityGroup' => {
|
||||||
'GroupName' => '',
|
'GroupName' => '',
|
||||||
'OwnerAlias' => ''
|
'OwnerAlias' => ''
|
||||||
|
|
|
@ -46,16 +46,16 @@ module Fog
|
||||||
class Mock
|
class Mock
|
||||||
def create_load_balancer_policy(lb_name, name, type_name, attributes = {})
|
def create_load_balancer_policy(lb_name, name, type_name, attributes = {})
|
||||||
if load_balancer = self.data[:load_balancers][lb_name]
|
if load_balancer = self.data[:load_balancers][lb_name]
|
||||||
raise Fog::AWS::IAM::DuplicatePolicyName if policy = load_balancer['Policies'].find { |p| p['PolicyName'] == name }
|
raise Fog::AWS::IAM::DuplicatePolicyName if policy = load_balancer['Policies']['Proper'].find { |p| p['PolicyName'] == name }
|
||||||
raise Fog::AWS::IAM::PolicyTypeNotFound unless policy_type = self.data[:policy_types].find { |pt| pt['PolicyTypeName'] == type_name }
|
raise Fog::AWS::IAM::PolicyTypeNotFound unless policy_type = self.data[:policy_types].find { |pt| pt['PolicyTypeName'] == type_name }
|
||||||
|
|
||||||
response = Excon::Response.new
|
response = Excon::Response.new
|
||||||
|
|
||||||
attributes = attributes.map do |name, value|
|
attributes = attributes.map do |key, value|
|
||||||
{"AttributeName" => name, "AttributeValue" => value}
|
{"AttributeName" => key, "AttributeValue" => value.to_s}
|
||||||
end
|
end
|
||||||
|
|
||||||
load_balancer['Policies'] << {
|
load_balancer['Policies']['Proper'] << {
|
||||||
'PolicyAttributeDescriptions' => attributes,
|
'PolicyAttributeDescriptions' => attributes,
|
||||||
'PolicyName' => name,
|
'PolicyName' => name,
|
||||||
'PolicyTypeName' => type_name
|
'PolicyTypeName' => type_name
|
||||||
|
|
|
@ -33,8 +33,8 @@ module Fog
|
||||||
response = Excon::Response.new
|
response = Excon::Response.new
|
||||||
response.status = 200
|
response.status = 200
|
||||||
|
|
||||||
load_balancer['Policies'].delete_if do |policy|
|
load_balancer['Policies'].each do |name, policies|
|
||||||
policy['PolicyName'] == policy_name
|
policies.delete_if { |policy| policy['PolicyName'] == policy_name }
|
||||||
end
|
end
|
||||||
|
|
||||||
response.body = {
|
response.body = {
|
||||||
|
|
|
@ -41,11 +41,11 @@ module Fog
|
||||||
names = [*names]
|
names = [*names]
|
||||||
policies = if names.any?
|
policies = if names.any?
|
||||||
names.map do |name|
|
names.map do |name|
|
||||||
raise Fog::AWS::ELB::PolicyNotFound unless policy = load_balancer['Policies'].find { |p| p['PolicyName'] == name }
|
raise Fog::AWS::ELB::PolicyNotFound unless policy = load_balancer['Policies']['Proper'].find { |p| p['PolicyName'] == name }
|
||||||
policy.dup
|
policy.dup
|
||||||
end.compact
|
end.compact
|
||||||
else
|
else
|
||||||
load_balancer['Policies']
|
load_balancer['Policies']['Proper']
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
policies = []
|
policies = []
|
||||||
|
|
|
@ -73,7 +73,11 @@ module Fog
|
||||||
'RequestId' => Fog::AWS::Mock.request_id
|
'RequestId' => Fog::AWS::Mock.request_id
|
||||||
},
|
},
|
||||||
'DescribeLoadBalancersResult' => {
|
'DescribeLoadBalancersResult' => {
|
||||||
'LoadBalancerDescriptions' => load_balancers.map { |lb| lb['Instances'] = lb['Instances'].map { |i| i['InstanceId'] }; lb }
|
'LoadBalancerDescriptions' => load_balancers.map do |lb|
|
||||||
|
lb['Instances'] = lb['Instances'].map { |i| i['InstanceId'] }
|
||||||
|
lb['Policies'] = lb['Policies'].reject { |name, policies| name == 'Proper' }
|
||||||
|
lb
|
||||||
|
end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ module Fog
|
||||||
raise Excon::Errors.status_error({:expects => 200}, response)
|
raise Excon::Errors.status_error({:expects => 200}, response)
|
||||||
end
|
end
|
||||||
|
|
||||||
unless load_balancer['Policies'].find { |policy| policy['PolicyName'] == policy_names.first }
|
unless load_balancer['Policies']['Proper'].find { |policy| policy['PolicyName'] == policy_names.first }
|
||||||
response.status = 400
|
response.status = 400
|
||||||
response.body = "<?xml version=\"1.0\"?><Response><Errors><Error><Code>PolicyNotFound</Code><Message>One or more specified policies were not found.</Message></Error></Errors><RequestID>#{Fog::AWS::Mock.request_id}</RequestId></Response>"
|
response.body = "<?xml version=\"1.0\"?><Response><Errors><Error><Code>PolicyNotFound</Code><Message>One or more specified policies were not found.</Message></Error></Errors><RequestID>#{Fog::AWS::Mock.request_id}</RequestId></Response>"
|
||||||
raise Excon::Errors.status_error({:expects => 200}, response)
|
raise Excon::Errors.status_error({:expects => 200}, response)
|
||||||
|
|
|
@ -33,7 +33,7 @@ Shindo.tests('AWS::ELB | policy_tests', ['aws', 'elb']) do
|
||||||
end
|
end
|
||||||
|
|
||||||
tests("#describe_load_balancer_policies").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICIES) do
|
tests("#describe_load_balancer_policies").formats(AWS::ELB::Formats::DESCRIBE_LOAD_BALANCER_POLICIES) do
|
||||||
Fog::AWS[:elb].describe_load_balancer_policies(@load_balancer_id, 'fog-policy').body
|
Fog::AWS[:elb].describe_load_balancer_policies(@load_balancer_id).body
|
||||||
end
|
end
|
||||||
|
|
||||||
tests("#delete_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
|
tests("#delete_load_balancer_policy").formats(AWS::ELB::Formats::BASIC) do
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue