From 429e4375ca5a54f0670edf38b1bc237aba9a044d Mon Sep 17 00:00:00 2001 From: Michael Hale Date: Mon, 5 Aug 2013 22:29:47 -0400 Subject: [PATCH] [AWS|ELB] restore policy.cookie and policy.expiration methods --- lib/fog/aws/models/elb/policies.rb | 17 +++++++++++++++-- tests/aws/models/elb/model_tests.rb | 2 ++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/fog/aws/models/elb/policies.rb b/lib/fog/aws/models/elb/policies.rb index bab7dc3cb..d8de70d60 100644 --- a/lib/fog/aws/models/elb/policies.rb +++ b/lib/fog/aws/models/elb/policies.rb @@ -19,11 +19,24 @@ module Fog private def munged_data data.inject([]){|m,e| - m << { + policy_attribute_descriptions = e["PolicyAttributeDescriptions"] + + policy = { :id => e["PolicyName"], :type_name => e["PolicyTypeName"], - :policy_attributes => policy_attributes(e["PolicyAttributeDescriptions"]) + :policy_attributes => policy_attributes(policy_attribute_descriptions) } + + case e["PolicyTypeName"] + when 'AppCookieStickinessPolicyType' + cookie_name = policy_attribute_descriptions.detect{|h| h['AttributeName'] == 'CookieName'}['AttributeValue'] + policy['CookieName'] = cookie_name if cookie_name + when 'LBCookieStickinessPolicyType' + cookie_expiration_period = policy_attribute_descriptions.detect{|h| h['AttributeName'] == 'CookieExpirationPeriod'}['AttributeValue'].to_i + policy['CookieExpirationPeriod'] = cookie_expiration_period if cookie_expiration_period > 0 + end + + m << policy m } end diff --git a/tests/aws/models/elb/model_tests.rb b/tests/aws/models/elb/model_tests.rb index be5a2b007..d1dcc3a72 100644 --- a/tests/aws/models/elb/model_tests.rb +++ b/tests/aws/models/elb/model_tests.rb @@ -250,6 +250,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do tests('create app policy') do elb.policies.create(:id => app_policy_id, :cookie => 'my-app-cookie', :cookie_stickiness => :app) returns(app_policy_id) { elb.policies.first.id } + returns("my-app-cookie") { elb.policies.get(app_policy_id).cookie } end tests('get policy') do @@ -270,6 +271,7 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do tests('setting a listener policy') do elb.set_listener_policy(80, lb_policy_id) returns([lb_policy_id]) { elb.listeners.get(80).policy_names } + returns(600) { elb.policies.get(lb_policy_id).expiration } end tests('unsetting a listener policy') do