Metadata zero value will skip valid check
At present, the metadata attributes of the queue are validated. Metadata must be within a valid range, otherwise an exception will be raised. For example, the default metadata '_default_message_ttl' must be greater than 60s, but this bug will cause I can enter 0 and can also succeed. This is clearly contrary to the original logic of implementation. Closes-Bug: #1729200 Change-Id: Id72771eaa4139e0c871e12e15577107457abc61c
This commit is contained in:
parent
5cded65dff
commit
b135653fcf
@ -125,6 +125,12 @@ class TestValidation(base.V2Base):
|
||||
headers=self.headers)
|
||||
self.assertEqual(falcon.HTTP_201, self.srmock.status)
|
||||
|
||||
# TTL value is zero
|
||||
self.simulate_put(queue_1,
|
||||
self.project_id,
|
||||
body='{"_default_message_ttl": 0}')
|
||||
self.assertEqual(falcon.HTTP_400, self.srmock.status)
|
||||
|
||||
# TTL under min
|
||||
self.simulate_put(queue_1,
|
||||
self.project_id,
|
||||
@ -153,6 +159,12 @@ class TestValidation(base.V2Base):
|
||||
body='{"_max_messages_post_size": 257}')
|
||||
self.assertEqual(falcon.HTTP_400, self.srmock.status)
|
||||
|
||||
# Size value is zero
|
||||
self.simulate_put(queue_2,
|
||||
self.project_id,
|
||||
body='{"_max_messages_post_size": 0}')
|
||||
self.assertEqual(falcon.HTTP_400, self.srmock.status)
|
||||
|
||||
# _dead_letter_queue_messages_ttl is not integer
|
||||
self.simulate_put(queue_2,
|
||||
self.project_id,
|
||||
@ -171,6 +183,12 @@ class TestValidation(base.V2Base):
|
||||
body='{"_dead_letter_queue_messages_ttl": 59}')
|
||||
self.assertEqual(falcon.HTTP_400, self.srmock.status)
|
||||
|
||||
# _dead_letter_queue_messages_ttl value is zero
|
||||
self.simulate_put(queue_2,
|
||||
self.project_id,
|
||||
body='{"_dead_letter_queue_messages_ttl": 0}')
|
||||
self.assertEqual(falcon.HTTP_400, self.srmock.status)
|
||||
|
||||
def test_queue_patching(self):
|
||||
headers = {
|
||||
'Client-ID': uuidutils.generate_uuid(),
|
||||
|
@ -350,7 +350,7 @@ class Validator(object):
|
||||
msg = _(u'_default_message_ttl must be integer.')
|
||||
raise ValidationFailed(msg)
|
||||
|
||||
if queue_default_ttl:
|
||||
if queue_default_ttl is not None:
|
||||
if not (MIN_MESSAGE_TTL <= queue_default_ttl <=
|
||||
self._limits_conf.max_message_ttl):
|
||||
msg = _(u'_default_message_ttl can not exceed {0} '
|
||||
@ -364,7 +364,7 @@ class Validator(object):
|
||||
msg = _(u'_max_messages_post_size must be integer.')
|
||||
raise ValidationFailed(msg)
|
||||
|
||||
if queue_max_msg_size:
|
||||
if queue_max_msg_size is not None:
|
||||
if not (0 < queue_max_msg_size <=
|
||||
self._limits_conf.max_messages_post_size):
|
||||
raise ValidationFailed(
|
||||
@ -382,8 +382,8 @@ class Validator(object):
|
||||
msg = _(u'_dead_letter_queue_messages_ttl must be integer.')
|
||||
raise ValidationFailed(msg)
|
||||
|
||||
if dlq_ttl and not (MIN_MESSAGE_TTL <= dlq_ttl <=
|
||||
self._limits_conf.max_message_ttl):
|
||||
if dlq_ttl is not None and not (MIN_MESSAGE_TTL <= dlq_ttl <=
|
||||
self._limits_conf.max_message_ttl):
|
||||
msg = _(u'The TTL for a message may not exceed {0} seconds, '
|
||||
'and must be at least {1} seconds long.')
|
||||
raise ValidationFailed(msg, self._limits_conf.max_message_ttl,
|
||||
|
Loading…
x
Reference in New Issue
Block a user