Enable deleting of message with claim id
This patch fixes a bug wherein a user was not able to delete a claimed message due to the claim id not being passed along with the message id. Change-Id: If893d2ca9cb1e0ff5fe82cc15e3f2e8dd0ccac3f Closes-Bug:1325032
This commit is contained in:
parent
9e53235006
commit
cd95664f3f
|
@ -35,18 +35,15 @@ def send_jobs():
|
|||
|
||||
|
||||
def process_jobs():
|
||||
while True:
|
||||
claim1 = queue.claim(ttl=500, grace=900, limit=2)
|
||||
for msg in claim1:
|
||||
claim_id = msg.claim_id
|
||||
print('{claim_id} =? {id}'.format(claim_id=claim_id, id=claim1.id))
|
||||
print('processing job %s' % (msg))
|
||||
msg.delete()
|
||||
claim2 = queue.claim(id=claim_id)
|
||||
print(claim2)
|
||||
print('nothing to do but have a sleep :)')
|
||||
time.sleep(1)
|
||||
claim1 = queue.claim(ttl=500, grace=900, limit=2)
|
||||
for msg in claim1:
|
||||
claim_id = msg.claim_id
|
||||
print('{claim_id} =? {id}'.format(claim_id=claim_id, id=claim1.id))
|
||||
print('processing job %s' % (msg))
|
||||
msg.delete()
|
||||
time.sleep(0.5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
send_jobs()
|
||||
process_jobs()
|
||||
while True:
|
||||
send_jobs()
|
||||
process_jobs()
|
||||
|
|
|
@ -243,7 +243,8 @@ def message_get_many(transport, request, queue_name, messages, callback=None):
|
|||
return resp.deserialized_content
|
||||
|
||||
|
||||
def message_delete(transport, request, queue_name, message_id, callback=None):
|
||||
def message_delete(transport, request, queue_name, message_id,
|
||||
claim_id=None, callback=None):
|
||||
"""Deletes messages from `queue_name`
|
||||
|
||||
:param transport: Transport instance to use
|
||||
|
@ -263,6 +264,8 @@ def message_delete(transport, request, queue_name, message_id, callback=None):
|
|||
request.operation = 'message_delete'
|
||||
request.params['queue_name'] = queue_name
|
||||
request.params['message_id'] = message_id
|
||||
if claim_id:
|
||||
request.params['claim_id'] = claim_id
|
||||
|
||||
transport.send(request)
|
||||
|
||||
|
|
|
@ -50,7 +50,8 @@ class Message(object):
|
|||
|
||||
def delete(self):
|
||||
req, trans = self.queue.client._request_and_transport()
|
||||
core.message_delete(trans, req, self.queue._name, self._id)
|
||||
core.message_delete(trans, req, self.queue._name,
|
||||
self._id, self.claim_id)
|
||||
|
||||
|
||||
def create_object(parent):
|
||||
|
|
|
@ -40,3 +40,22 @@ class QueuesV1MessageUnitTest(base.QueuesTestBase):
|
|||
|
||||
send_method.return_value = None
|
||||
self.assertIsNone(msg.delete())
|
||||
|
||||
def test_message_delete_with_claim(self):
|
||||
returned = {
|
||||
'href': '/v1/queues/fizbit/messages/50b68a50d6?claim_id=5388b5dd0',
|
||||
'ttl': 800,
|
||||
'age': 790,
|
||||
'body': {'event': 'ActivateAccount', 'mode': 'active'}
|
||||
}
|
||||
|
||||
with mock.patch.object(self.transport, 'send',
|
||||
autospec=True) as send_method:
|
||||
|
||||
resp = response.Response(None, json.dumps(returned))
|
||||
send_method.return_value = resp
|
||||
|
||||
msg = self.queue.message('50b68a50d6')
|
||||
|
||||
send_method.return_value = None
|
||||
self.assertIsNone(msg.delete())
|
||||
|
|
Loading…
Reference in New Issue