dont use base64 for marker at describe_rules
This commit is contained in:
parent
5c0d5e920a
commit
2b10ef8517
@ -1,6 +1,4 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import sys
|
|
||||||
import base64
|
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from .models import elbv2_backends
|
from .models import elbv2_backends
|
||||||
from .exceptions import DuplicateTagKeysError
|
from .exceptions import DuplicateTagKeysError
|
||||||
@ -126,17 +124,11 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_LOAD_BALANCERS_TEMPLATE)
|
template = self.response_template(DESCRIBE_LOAD_BALANCERS_TEMPLATE)
|
||||||
return template.render(load_balancers=load_balancers_resp, marker=next_marker)
|
return template.render(load_balancers=load_balancers_resp, marker=next_marker)
|
||||||
|
|
||||||
def _b64_encode(self, s):
|
|
||||||
if sys.version_info >= (3, 0):
|
|
||||||
return base64.urlsafe_b64encode(bytes(s, 'UTF-8'))
|
|
||||||
return s
|
|
||||||
|
|
||||||
def describe_rules(self):
|
def describe_rules(self):
|
||||||
listener_arn = self._get_param('ListenerArn')
|
listener_arn = self._get_param('ListenerArn')
|
||||||
rule_arns = self._get_multi_param('RuleArns.member') if any(k for k in list(self.querystring.keys()) if k.startswith('RuleArns.member')) else None
|
rule_arns = self._get_multi_param('RuleArns.member') if any(k for k in list(self.querystring.keys()) if k.startswith('RuleArns.member')) else None
|
||||||
all_rules = self.elbv2_backend.describe_rules(listener_arn, rule_arns)
|
all_rules = self.elbv2_backend.describe_rules(listener_arn, rule_arns)
|
||||||
all_arns = [rule.arn for rule in all_rules]
|
all_arns = [rule.arn for rule in all_rules]
|
||||||
all_arns = [self._b64_encode(rule.arn) for rule in all_rules]
|
|
||||||
page_size = self._get_int_param('PageSize', 50) # set 50 for temporary
|
page_size = self._get_int_param('PageSize', 50) # set 50 for temporary
|
||||||
|
|
||||||
marker = self._get_param('Marker')
|
marker = self._get_param('Marker')
|
||||||
@ -146,6 +138,7 @@ class ELBV2Response(BaseResponse):
|
|||||||
start = 0
|
start = 0
|
||||||
rules_resp = all_rules[start:start + page_size]
|
rules_resp = all_rules[start:start + page_size]
|
||||||
next_marker = None
|
next_marker = None
|
||||||
|
|
||||||
if len(all_rules) > start + page_size:
|
if len(all_rules) > start + page_size:
|
||||||
next_marker = rules_resp[-1].arn
|
next_marker = rules_resp[-1].arn
|
||||||
template = self.response_template(DESCRIBE_RULES_TEMPLATE)
|
template = self.response_template(DESCRIBE_RULES_TEMPLATE)
|
||||||
|
@ -648,6 +648,12 @@ def test_handle_listener_rules():
|
|||||||
obtained_rules = conn.describe_rules(ListenerArn=http_listener_arn, PageSize=1)
|
obtained_rules = conn.describe_rules(ListenerArn=http_listener_arn, PageSize=1)
|
||||||
len(obtained_rules['Rules']).should.equal(1)
|
len(obtained_rules['Rules']).should.equal(1)
|
||||||
obtained_rules.should.have.key('NextMarker')
|
obtained_rules.should.have.key('NextMarker')
|
||||||
|
next_marker = obtained_rules['NextMarker']
|
||||||
|
|
||||||
|
following_rules = conn.describe_rules(ListenerArn=http_listener_arn, PageSize=1, Marker=next_marker)
|
||||||
|
len(following_rules['Rules']).should.equal(1)
|
||||||
|
following_rules.should.have.key('NextMarker')
|
||||||
|
following_rules['Rules'][0]['RuleArn'].should_not.equal(obtained_rules['Rules'][0]['RuleArn'])
|
||||||
|
|
||||||
# test for invalid describe rule request
|
# test for invalid describe rule request
|
||||||
with assert_raises(ClientError):
|
with assert_raises(ClientError):
|
||||||
|
Loading…
Reference in New Issue
Block a user