)]}'
{"api-ref/source/parameters.yaml":[{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"85c3d808446f360657c315605b7e62fd84c9e90f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    The target the message will be moved to when the message can\u0027t processed"},{"line_number":142,"context_line":"    successfully after meet the max claim count. It\u0027s not supported to add"},{"line_number":143,"context_line":"    queue C as the dead letter queue for queue B where queue B has been set"},{"line_number":144,"context_line":"    as a dead letter queue for queue A. It\u0027s not the case we want to address"},{"line_number":145,"context_line":"    in this spec. Technically, even though user can set a dead letter queue C"},{"line_number":146,"context_line":"    for queue B(when queue B is a dead letter queue of queue A), because the"},{"line_number":147,"context_line":"    moving is triggered by claim, so that means if user won\u0027t explicitly"},{"line_number":148,"context_line":"    claim messages in queue B, then nothing happened. It is one of the"},{"line_number":149,"context_line":"    ``reserved attributes`` of Zaqar queues."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"_dead_letter_queue_messages_ttl:"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f1d235d_ef922c4b","line":148,"range":{"start_line":144,"start_character":40,"end_line":148,"end_character":53},"updated":"2017-07-04 07:34:34.000000000","message":"We don\u0027t need to mention it here I guess.\n\nAnd also we should add: \nThere is no default value for this attribute. If it\u0027s not set, then that means this feature won\u0027t be enabled for current queue.","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"73b8e65fbdb9648bc58538b036281d7358873fe2","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    The target the message will be moved to when the message can\u0027t processed"},{"line_number":142,"context_line":"    successfully after meet the max claim count. It\u0027s not supported to add"},{"line_number":143,"context_line":"    queue C as the dead letter queue for queue B where queue B has been set"},{"line_number":144,"context_line":"    as a dead letter queue for queue A. It\u0027s not the case we want to address"},{"line_number":145,"context_line":"    in this spec. Technically, even though user can set a dead letter queue C"},{"line_number":146,"context_line":"    for queue B(when queue B is a dead letter queue of queue A), because the"},{"line_number":147,"context_line":"    moving is triggered by claim, so that means if user won\u0027t explicitly"},{"line_number":148,"context_line":"    claim messages in queue B, then nothing happened. It is one of the"},{"line_number":149,"context_line":"    ``reserved attributes`` of Zaqar queues."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"_dead_letter_queue_messages_ttl:"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3f1d235d_5699a276","line":148,"range":{"start_line":144,"start_character":40,"end_line":148,"end_character":53},"in_reply_to":"3f1d235d_ef922c4b","updated":"2017-07-04 19:42:20.000000000","message":"Oops, copy-paste error.","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"}],"zaqar/storage/mongodb/claims.py":[{"author":{"_account_id":21387,"name":"gecong","email":"ge.cong@zte.com.cn","username":"gecong"},"change_message_id":"c868fd34f977f336262d287a3d6938765f08572d","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Get a list of active, not claimed nor expired"},{"line_number":153,"context_line":"        # messages that could be claimed."},{"line_number":154,"context_line":"        msgs \u003d msg_ctrl._active(queue, projection\u003d{\u0027_id\u0027: 1, \u0027c\u0027: 1},"},{"line_number":155,"context_line":"                                project\u003dproject,"},{"line_number":156,"context_line":"                                limit\u003dlimit)"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f1d235d_c788cc20","line":154,"updated":"2017-06-30 02:41:43.000000000","message":"I think here should judge if queue has dead queue","commit_id":"ebc3988e382de0756a989a43563e94551ef4dbba"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"9d60f490847638eae04b90e8b3b71e8f84148ea1","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Get a list of active, not claimed nor expired"},{"line_number":153,"context_line":"        # messages that could be claimed."},{"line_number":154,"context_line":"        msgs \u003d msg_ctrl._active(queue, projection\u003d{\u0027_id\u0027: 1, \u0027c\u0027: 1},"},{"line_number":155,"context_line":"                                project\u003dproject,"},{"line_number":156,"context_line":"                                limit\u003dlimit)"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f1d235d_d2bac8dc","line":154,"in_reply_to":"3f1d235d_c788cc20","updated":"2017-06-30 03:27:57.000000000","message":"Thanks for reviewing this patch. Actually, it doesn\u0027t matter if there is a DLQ for current queue. Because if there is no DLQ, then this counter won\u0027t impact anything.","commit_id":"ebc3988e382de0756a989a43563e94551ef4dbba"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"85c3d808446f360657c315605b7e62fd84c9e90f","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                    # all the claim information."},{"line_number":215,"context_line":"                    dlq \u003d utils.scope_queue_name("},{"line_number":216,"context_line":"                        queue_meta[\u0027_dead_letter_queue\u0027], project)"},{"line_number":217,"context_line":"                    new_msg_info \u003d {\u0027c.c\u0027: claimed_count, \u0027p_q\u0027: dlq}"},{"line_number":218,"context_line":"                    dlq_ttl \u003d queue_meta.get(\"_dead_letter_queue_messages_ttl\")"},{"line_number":219,"context_line":"                    if dlq_ttl:"},{"line_number":220,"context_line":"                        new_msg_info[\u0027t\u0027] \u003d dlq_ttl"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_6daaa4d2","line":217,"updated":"2017-07-04 07:34:34.000000000","message":"we should check whether the dlq exists or not. If not, we should create it as well.","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"73b8e65fbdb9648bc58538b036281d7358873fe2","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                    # all the claim information."},{"line_number":215,"context_line":"                    dlq \u003d utils.scope_queue_name("},{"line_number":216,"context_line":"                        queue_meta[\u0027_dead_letter_queue\u0027], project)"},{"line_number":217,"context_line":"                    new_msg_info \u003d {\u0027c.c\u0027: claimed_count, \u0027p_q\u0027: dlq}"},{"line_number":218,"context_line":"                    dlq_ttl \u003d queue_meta.get(\"_dead_letter_queue_messages_ttl\")"},{"line_number":219,"context_line":"                    if dlq_ttl:"},{"line_number":220,"context_line":"                        new_msg_info[\u0027t\u0027] \u003d dlq_ttl"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_769c9e69","line":217,"in_reply_to":"3f1d235d_6daaa4d2","updated":"2017-07-04 19:42:20.000000000","message":"Thanks for the comments. I\u0027m aware of this actually, but personally, I prefer the non-lazy dead letter queue. That said, when user want to make a queue as a DLQ, he/she needs to make sure the queue has been created. Thoughts?","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"8ede07e87ae044a7555c1e02898678d35a59166a","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                    # all the claim information."},{"line_number":215,"context_line":"                    dlq \u003d utils.scope_queue_name("},{"line_number":216,"context_line":"                        queue_meta[\u0027_dead_letter_queue\u0027], project)"},{"line_number":217,"context_line":"                    new_msg_info \u003d {\u0027c.c\u0027: claimed_count, \u0027p_q\u0027: dlq}"},{"line_number":218,"context_line":"                    dlq_ttl \u003d queue_meta.get(\"_dead_letter_queue_messages_ttl\")"},{"line_number":219,"context_line":"                    if dlq_ttl:"},{"line_number":220,"context_line":"                        new_msg_info[\u0027t\u0027] \u003d dlq_ttl"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_0b42d53e","line":217,"in_reply_to":"3f1d235d_769c9e69","updated":"2017-07-05 09:41:50.000000000","message":"Sure.","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"85c3d808446f360657c315605b7e62fd84c9e90f","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                    new_msg_info \u003d {\u0027c.c\u0027: claimed_count, \u0027p_q\u0027: dlq}"},{"line_number":218,"context_line":"                    dlq_ttl \u003d queue_meta.get(\"_dead_letter_queue_messages_ttl\")"},{"line_number":219,"context_line":"                    if dlq_ttl:"},{"line_number":220,"context_line":"                        new_msg_info[\u0027t\u0027] \u003d dlq_ttl"},{"line_number":221,"context_line":"                    collection.update({\u0027_id\u0027: _id,"},{"line_number":222,"context_line":"                                       \u0027c.id\u0027: oid},"},{"line_number":223,"context_line":"                                      {\u0027$set\u0027: new_msg_info},"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_2f8ee4cf","line":220,"range":{"start_line":220,"start_character":24,"end_line":220,"end_character":41},"updated":"2017-07-04 07:34:34.000000000","message":"new_msg_info[\u0027t\u0027]  should has a defalut value at L217","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"73b8e65fbdb9648bc58538b036281d7358873fe2","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                    new_msg_info \u003d {\u0027c.c\u0027: claimed_count, \u0027p_q\u0027: dlq}"},{"line_number":218,"context_line":"                    dlq_ttl \u003d queue_meta.get(\"_dead_letter_queue_messages_ttl\")"},{"line_number":219,"context_line":"                    if dlq_ttl:"},{"line_number":220,"context_line":"                        new_msg_info[\u0027t\u0027] \u003d dlq_ttl"},{"line_number":221,"context_line":"                    collection.update({\u0027_id\u0027: _id,"},{"line_number":222,"context_line":"                                       \u0027c.id\u0027: oid},"},{"line_number":223,"context_line":"                                      {\u0027$set\u0027: new_msg_info},"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_f6b30e09","line":220,"range":{"start_line":220,"start_character":24,"end_line":220,"end_character":41},"in_reply_to":"3f1d235d_2f8ee4cf","updated":"2017-07-04 19:42:20.000000000","message":"No, we don\u0027t have to do that because if there is no \u0027t\u0027 in the new_msg_info dict, then that field won\u0027t be updated, so the current value will be kept.","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"8ede07e87ae044a7555c1e02898678d35a59166a","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                    new_msg_info \u003d {\u0027c.c\u0027: claimed_count, \u0027p_q\u0027: dlq}"},{"line_number":218,"context_line":"                    dlq_ttl \u003d queue_meta.get(\"_dead_letter_queue_messages_ttl\")"},{"line_number":219,"context_line":"                    if dlq_ttl:"},{"line_number":220,"context_line":"                        new_msg_info[\u0027t\u0027] \u003d dlq_ttl"},{"line_number":221,"context_line":"                    collection.update({\u0027_id\u0027: _id,"},{"line_number":222,"context_line":"                                       \u0027c.id\u0027: oid},"},{"line_number":223,"context_line":"                                      {\u0027$set\u0027: new_msg_info},"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f1d235d_4b7b2d7a","line":220,"range":{"start_line":220,"start_character":24,"end_line":220,"end_character":41},"in_reply_to":"3f1d235d_f6b30e09","updated":"2017-07-05 09:41:50.000000000","message":"Oh, Yes I forgot the value in DB.","commit_id":"3a5bbb97d877d623170bde2f62b00823a81670a2"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"8ba70ae63220c296e5fd1c8df8ae7ff23cb8b58b","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            \u0027c\u0027: 0   # NOTE(flwang): A placeholder which will be updated later"},{"line_number":148,"context_line":"        }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # Get the maxClaimCount and deadLetterQueue from current queue\u0027s meta"},{"line_number":151,"context_line":"        queue_meta \u003d queue_ctrl.get(queue, project\u003dproject)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # Get a list of active, not claimed nor expired"},{"line_number":154,"context_line":"        # messages that could be claimed."}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_2c4dd571","line":151,"range":{"start_line":150,"start_character":0,"end_line":151,"end_character":59},"updated":"2017-07-12 06:43:06.000000000","message":"Small performance improve: this should be moved after L164. If there is no free message. We don\u0027t need to get the queue_meta.","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"9a26321e7df042953604e1dad5d2ce04dffad0c4","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            \u0027c\u0027: 0   # NOTE(flwang): A placeholder which will be updated later"},{"line_number":148,"context_line":"        }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        # Get the maxClaimCount and deadLetterQueue from current queue\u0027s meta"},{"line_number":151,"context_line":"        queue_meta \u003d queue_ctrl.get(queue, project\u003dproject)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # Get a list of active, not claimed nor expired"},{"line_number":154,"context_line":"        # messages that could be claimed."}],"source_content_type":"text/x-python","patch_set":15,"id":"1f1a1f67_42f6f591","line":151,"range":{"start_line":150,"start_character":0,"end_line":151,"end_character":59},"in_reply_to":"3f1d235d_2c4dd571","updated":"2017-07-12 22:32:15.000000000","message":"Yep, that would be nice.","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"8ba70ae63220c296e5fd1c8df8ae7ff23cb8b58b","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    collection.update({\u0027_id\u0027: _id,"},{"line_number":208,"context_line":"                                       \u0027c.id\u0027: oid},"},{"line_number":209,"context_line":"                                      {\u0027$set\u0027: {\u0027c.c\u0027: claimed_count + 1}},"},{"line_number":210,"context_line":"                                      upsert\u003dFalse)[\u0027n\u0027]"},{"line_number":211,"context_line":"                else:"},{"line_number":212,"context_line":"                    # 2. Check if the message\u0027s claim count has exceeded the"},{"line_number":213,"context_line":"                    # max claim count defined in the queue, if so, move the"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_2c3715b3","line":210,"range":{"start_line":210,"start_character":51,"end_line":210,"end_character":56},"updated":"2017-07-12 06:43:06.000000000","message":"Don\u0027t need this.","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"9a26321e7df042953604e1dad5d2ce04dffad0c4","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    collection.update({\u0027_id\u0027: _id,"},{"line_number":208,"context_line":"                                       \u0027c.id\u0027: oid},"},{"line_number":209,"context_line":"                                      {\u0027$set\u0027: {\u0027c.c\u0027: claimed_count + 1}},"},{"line_number":210,"context_line":"                                      upsert\u003dFalse)[\u0027n\u0027]"},{"line_number":211,"context_line":"                else:"},{"line_number":212,"context_line":"                    # 2. Check if the message\u0027s claim count has exceeded the"},{"line_number":213,"context_line":"                    # max claim count defined in the queue, if so, move the"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f1a1f67_22f3f9a0","line":210,"range":{"start_line":210,"start_character":51,"end_line":210,"end_character":56},"in_reply_to":"3f1d235d_2c3715b3","updated":"2017-07-12 22:32:15.000000000","message":"Done","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"8ba70ae63220c296e5fd1c8df8ae7ff23cb8b58b","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                    # max, so the current claim is not valid. And technically,"},{"line_number":240,"context_line":"                    # it\u0027s failed to create the claim."},{"line_number":241,"context_line":"                    return None, iter([])"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        if updated !\u003d 0:"},{"line_number":244,"context_line":"            # NOTE(kgriffs): This extra step is necessary because"},{"line_number":245,"context_line":"            # in between having gotten a list of active messages"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_0cd69928","line":242,"updated":"2017-07-12 06:43:06.000000000","message":"I think that one of Zaqar\u0027s gaps is that it doesn\u0027t has enough LOG information for admin users. Such as claim_create action, there is no LOG at all! I\u0027m not sure if the LOG can lead some performance issue or not. But IMO we\u0027d better add some. Can you add some, for the dead letter feature as least. Thanks.","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"9a26321e7df042953604e1dad5d2ce04dffad0c4","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                    # max, so the current claim is not valid. And technically,"},{"line_number":240,"context_line":"                    # it\u0027s failed to create the claim."},{"line_number":241,"context_line":"                    return None, iter([])"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        if updated !\u003d 0:"},{"line_number":244,"context_line":"            # NOTE(kgriffs): This extra step is necessary because"},{"line_number":245,"context_line":"            # in between having gotten a list of active messages"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f1a1f67_e213c1b7","line":242,"in_reply_to":"3f1d235d_0cd69928","updated":"2017-07-12 22:32:15.000000000","message":"I agree with you here. I will add some debug log to this dead letter queue feature. And we can add more logs later, which could be a low-hanging-fruit for new comers.","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"8a2d307b6e7e804fe670293e5413f2e48657b05c","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                # claimed_count equals queue_meta[\u0027_max_claim_count\u0027], the"},{"line_number":209,"context_line":"                # message has met the threshold. And Zaqar will move it to the"},{"line_number":210,"context_line":"                # DLQ."},{"line_number":211,"context_line":"                LOG.debug(\"\")"},{"line_number":212,"context_line":"                if claimed_count \u003c queue_meta[\u0027_max_claim_count\u0027]:"},{"line_number":213,"context_line":"                    # 1. Save the new max claim count for message"},{"line_number":214,"context_line":"                    collection.update({\u0027_id\u0027: _id,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f1a1f67_1772144a","line":211,"range":{"start_line":211,"start_character":0,"end_line":211,"end_character":29},"updated":"2017-07-17 01:31:24.000000000","message":"any information?","commit_id":"30a46c8ba380f4af65d6948190942fd634b1143a"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"b5f2855607607e5c820b0ee91b3688d7948dbcb8","unresolved":false,"context_lines":[{"line_number":208,"context_line":"                # claimed_count equals queue_meta[\u0027_max_claim_count\u0027], the"},{"line_number":209,"context_line":"                # message has met the threshold. And Zaqar will move it to the"},{"line_number":210,"context_line":"                # DLQ."},{"line_number":211,"context_line":"                LOG.debug(\"\")"},{"line_number":212,"context_line":"                if claimed_count \u003c queue_meta[\u0027_max_claim_count\u0027]:"},{"line_number":213,"context_line":"                    # 1. Save the new max claim count for message"},{"line_number":214,"context_line":"                    collection.update({\u0027_id\u0027: _id,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1f1a1f67_1771f40c","line":211,"range":{"start_line":211,"start_character":0,"end_line":211,"end_character":29},"in_reply_to":"1f1a1f67_1772144a","updated":"2017-07-17 01:45:16.000000000","message":"Nice catch, xiyuan.","commit_id":"30a46c8ba380f4af65d6948190942fd634b1143a"}],"zaqar/tests/unit/storage/base.py":[{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"72ac4b2c0cf43dcefb0602f1f23bcd70beae81ef","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"                                     client_uuid\u003dstr(uuid.uuid1()),"},{"line_number":1029,"context_line":"                                     project\u003dself.project)"},{"line_number":1030,"context_line":""},{"line_number":1031,"context_line":"        claim_id, messages \u003d self.controller.create(self.queue_name, meta,"},{"line_number":1032,"context_line":"                                                    project\u003dself.project)"},{"line_number":1033,"context_line":"        self.assertIsNotNone(claim_id)"},{"line_number":1034,"context_line":"        self.assertEqual(1, len(list(messages)))"},{"line_number":1035,"context_line":"        time.sleep(5)"},{"line_number":1036,"context_line":"        claim_id, messages \u003d self.controller.create(self.queue_name, meta,"},{"line_number":1037,"context_line":"                                                    project\u003dself.project)"},{"line_number":1038,"context_line":"        self.assertIsNotNone(claim_id)"},{"line_number":1039,"context_line":"        messages \u003d list(messages)"},{"line_number":1040,"context_line":"        self.assertEqual(1, len(messages))"},{"line_number":1041,"context_line":"        time.sleep(5)"},{"line_number":1042,"context_line":"        claim_id, messages \u003d self.controller.create(self.queue_name, meta,"},{"line_number":1043,"context_line":"                                                    project\u003dself.project)"},{"line_number":1044,"context_line":"        self.assertIsNone(claim_id)"},{"line_number":1045,"context_line":"        self.assertEqual(0, len(list(messages)))"},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"        DLQ_messages \u003d self.message_controller.list(DLQ_name,"},{"line_number":1048,"context_line":"                                                    project\u003dself.project,"}],"source_content_type":"text/x-python","patch_set":18,"id":"1f1a1f67_0078ebf5","line":1045,"range":{"start_line":1031,"start_character":1,"end_line":1045,"end_character":48},"updated":"2017-07-21 01:47:41.000000000","message":"I think those codes could be more simpler, but shouldn\u0027t block this patch, we can improve it after merged.","commit_id":"7fdb41fab7864d46cdb8970b537b3b6f71dee529"}],"zaqar/transport/validation.py":[{"author":{"_account_id":21387,"name":"gecong","email":"ge.cong@zte.com.cn","username":"gecong"},"change_message_id":"e7ad49d055b21c5b9cd4eb9aca61cde2cf993dad","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                      \u0027 and must be at least greater than 0.\u0027),"},{"line_number":328,"context_line":"                    self._limits_conf.max_messages_post_size)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        queue_max_claim_count \u003d queue_metadata.get(\u0027_queue_max_claim_count\u0027,"},{"line_number":331,"context_line":"                                                   None)"},{"line_number":332,"context_line":"        if queue_max_claim_count and not isinstance(queue_max_claim_count,"},{"line_number":333,"context_line":"                                                    int):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_073af296","line":330,"updated":"2017-07-12 07:21:23.000000000","message":"here should be _max_claim_count ,I think","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"9a26321e7df042953604e1dad5d2ce04dffad0c4","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                      \u0027 and must be at least greater than 0.\u0027),"},{"line_number":328,"context_line":"                    self._limits_conf.max_messages_post_size)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        queue_max_claim_count \u003d queue_metadata.get(\u0027_queue_max_claim_count\u0027,"},{"line_number":331,"context_line":"                                                   None)"},{"line_number":332,"context_line":"        if queue_max_claim_count and not isinstance(queue_max_claim_count,"},{"line_number":333,"context_line":"                                                    int):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f1a1f67_f8736e4c","line":330,"in_reply_to":"3f1d235d_073af296","updated":"2017-07-12 22:32:15.000000000","message":"nice catch.","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":21387,"name":"gecong","email":"ge.cong@zte.com.cn","username":"gecong"},"change_message_id":"e7ad49d055b21c5b9cd4eb9aca61cde2cf993dad","unresolved":false,"context_lines":[{"line_number":334,"context_line":"            msg \u003d _(u\u0027_queue_max_claim_count must be integer.\u0027)"},{"line_number":335,"context_line":"            raise ValidationFailed(msg)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        dead_letter_queue_ttl \u003d queue_metadata.get(\u0027_dead_letter_queue_ttl\u0027,"},{"line_number":338,"context_line":"                                                   None)"},{"line_number":339,"context_line":"        if dead_letter_queue_ttl and not isinstance(dead_letter_queue_ttl,"},{"line_number":340,"context_line":"                                                    int):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_675406cb","line":337,"updated":"2017-07-12 07:21:23.000000000","message":"here should be \"_dead_letter_queue_messages_ttl\" . thanks","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"9a26321e7df042953604e1dad5d2ce04dffad0c4","unresolved":false,"context_lines":[{"line_number":334,"context_line":"            msg \u003d _(u\u0027_queue_max_claim_count must be integer.\u0027)"},{"line_number":335,"context_line":"            raise ValidationFailed(msg)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        dead_letter_queue_ttl \u003d queue_metadata.get(\u0027_dead_letter_queue_ttl\u0027,"},{"line_number":338,"context_line":"                                                   None)"},{"line_number":339,"context_line":"        if dead_letter_queue_ttl and not isinstance(dead_letter_queue_ttl,"},{"line_number":340,"context_line":"                                                    int):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f1a1f67_b893b64f","line":337,"in_reply_to":"3f1d235d_675406cb","updated":"2017-07-12 22:32:15.000000000","message":"Done","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":21387,"name":"gecong","email":"ge.cong@zte.com.cn","username":"gecong"},"change_message_id":"e7ad49d055b21c5b9cd4eb9aca61cde2cf993dad","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                                                   None)"},{"line_number":339,"context_line":"        if dead_letter_queue_ttl and not isinstance(dead_letter_queue_ttl,"},{"line_number":340,"context_line":"                                                    int):"},{"line_number":341,"context_line":"            msg \u003d _(u\u0027_dead_letter_queue_ttl must be integer.\u0027)"},{"line_number":342,"context_line":"            raise ValidationFailed(msg)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def queue_purging(self, document):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3f1d235d_e75936fe","line":341,"updated":"2017-07-12 07:21:23.000000000","message":"_dead_letter_queue_messages_ttl too","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"9a26321e7df042953604e1dad5d2ce04dffad0c4","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                                                   None)"},{"line_number":339,"context_line":"        if dead_letter_queue_ttl and not isinstance(dead_letter_queue_ttl,"},{"line_number":340,"context_line":"                                                    int):"},{"line_number":341,"context_line":"            msg \u003d _(u\u0027_dead_letter_queue_ttl must be integer.\u0027)"},{"line_number":342,"context_line":"            raise ValidationFailed(msg)"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def queue_purging(self, document):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1f1a1f67_9898fa6a","line":341,"in_reply_to":"3f1d235d_e75936fe","updated":"2017-07-12 22:32:15.000000000","message":"Done","commit_id":"18e4d247306e2f7b9c43e2a1972160db49fb79f5"}]}
