)]}'
{"marconi/queues/storage/base.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"8a9bdc2adc7cfc2a5316f21e07a142393dee4032","unresolved":false,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        :param queue: Name of the queue to post"},{"line_number":325,"context_line":"            message to."},{"line_number":326,"context_line":"        :param message_ids: (Default None) A sequence of message IDs"},{"line_number":327,"context_line":"            to be deleted. If omitted, all messages in the queue"},{"line_number":328,"context_line":"            will be purged."},{"line_number":329,"context_line":"        :param project: Project id"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAU3%2F%2FpMk%3D","line":326,"updated":"2014-02-25 14:14:21.000000000","message":"What do you think about versioning this docstring?\n\nI\u0027d like to make explicit the difference between v1 and v1.1","commit_id":"0bf1b8892b823dc54c03f5fb1202dddc7ea750df"},{"author":{"_account_id":6944,"name":"Allele Dev","email":"cpp.cabrera@gmail.com","username":"cpp-cabrera"},"change_message_id":"58b29631b49800438c43c71c5115583bc94c6d4c","unresolved":false,"context_lines":[{"line_number":321,"context_line":"    def bulk_delete(self, queue, message_ids\u003dNone, project\u003dNone):"},{"line_number":322,"context_line":"        \"\"\"Base method for deleting multiple messages."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        .. versionchanged: 1.1"},{"line_number":325,"context_line":"           The *message_ids* parameter was changed to allow None, in"},{"line_number":326,"context_line":"           order to implement the API v1.1 feature of being able"},{"line_number":327,"context_line":"           to truncate a queue (without deleting the queue itself)."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVn%2F%2Fszg%3D","line":324,"updated":"2014-03-04 16:02:03.000000000","message":"Oooh, this is nice.","commit_id":"1245c0414af461d593616801524440bb3f8909d9"}],"marconi/queues/storage/sqlalchemy/messages.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"8a9bdc2adc7cfc2a5316f21e07a142393dee4032","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            if message_ids is None:"},{"line_number":271,"context_line":"                statement \u003d statement.where(tables.Messages.c.qid \u003d\u003d qid)"},{"line_number":272,"context_line":"            else:"},{"line_number":273,"context_line":"                and_stmt \u003d [tables.Messages.c.id.in_(message_ids),"},{"line_number":274,"context_line":"                            tables.Messages.c.qid \u003d\u003d qid]"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                statement \u003d statement.where(sa.and_(*and_stmt))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAU3%2F%2FpIE%3D","line":273,"updated":"2014-02-25 14:14:21.000000000","message":"I think this could be re-written like:\n\n    and_stmt \u003d [tables.Messages.c.qid \u003d\u003d qid]\n    if message_ids is not None:\n        and_stmt.append(tables.Messages.c.id.in_(message_ids))\n\n    statement \u003d statement.where(sa.and_(*and_stmt))\n    trans.execute(statement)","commit_id":"0bf1b8892b823dc54c03f5fb1202dddc7ea750df"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"b6b4bcaf21c3bf2d1fea73a079a2589e765822c9","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        # NOTE(kgriffs): Explicitly test for None, since that value is"},{"line_number":258,"context_line":"        # semantically distinct from the user specifying an empty list."},{"line_number":259,"context_line":"        if message_ids is not None:"},{"line_number":260,"context_line":"            message_ids \u003d \u0027,\u0027.join("},{"line_number":261,"context_line":"                [\"\u0027%s\u0027\" % id for id in"},{"line_number":262,"context_line":"                 map(utils.msgid_decode, message_ids) if id]"},{"line_number":263,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F5Co%3D","line":260,"updated":"2014-03-03 15:58:47.000000000","message":"This could be moved under the second `if message_ids is not None`","commit_id":"632aa05590199e1cad9b324a6f92a17baa5a7a22"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"34a329c8498fe538554b2698ec793f562add88b5","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        # NOTE(kgriffs): Explicitly test for None, since that value is"},{"line_number":258,"context_line":"        # semantically distinct from the user specifying an empty list."},{"line_number":259,"context_line":"        if message_ids is not None:"},{"line_number":260,"context_line":"            message_ids \u003d \u0027,\u0027.join("},{"line_number":261,"context_line":"                [\"\u0027%s\u0027\" % id for id in"},{"line_number":262,"context_line":"                 map(utils.msgid_decode, message_ids) if id]"},{"line_number":263,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2F1Sw%3D","line":260,"in_reply_to":"AAAAVn%2F%2F5Co%3D","updated":"2014-03-03 21:52:28.000000000","message":"Done","commit_id":"632aa05590199e1cad9b324a6f92a17baa5a7a22"}],"tests/unit/queues/transport/wsgi/test_v1_1.py":[{"author":{"_account_id":7498,"name":"Malini Kamalambal","email":"malini.kamalambal@rackspace.com","username":"malini-pk"},"change_message_id":"cd155f954f0fda7b83c3ae6c68ba414bfc96620a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        path \u003d self.queue_path + \u0027/messages\u0027"},{"line_number":42,"context_line":"        self._post_messages(path, repeat\u003d5)"},{"line_number":43,"context_line":"        [target, params] \u003d self.srmock.headers_dict[\u0027location\u0027].split(\u0027?\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.simulate_delete(target, self.project_id, query_string\u003dparams)"},{"line_number":46,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_204)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F43w%3D","line":44,"updated":"2014-04-25 14:36:35.000000000","message":"what happens when there is a claimed message in the queue?","commit_id":"87eb5fdb38f01edde15e26ebca7ca70f555f4240"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"f82100e18ee3922a0d8da24bf45add65fe7e8e9f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        path \u003d self.queue_path + \u0027/messages\u0027"},{"line_number":42,"context_line":"        self._post_messages(path, repeat\u003d5)"},{"line_number":43,"context_line":"        [target, params] \u003d self.srmock.headers_dict[\u0027location\u0027].split(\u0027?\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.simulate_delete(target, self.project_id, query_string\u003dparams)"},{"line_number":46,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_204)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F4AA%3D","line":44,"in_reply_to":"AAAAXX%2F%2F43w%3D","updated":"2014-04-25 16:07:58.000000000","message":"Good question. In v1.0 claimed messages are deleted for bulk deletes (without requiring a claim_id parameter). I think the idea is that if you are claiming things, we want to encourage deleting messages once at a time since that means that at most on message could be processed by not deleted if a worker happens to crash at just the wrong moment:\n\n    for each message in batch:\n        process message\n        delete message\n\nSo, it may be a good idea to document that using bulk delete in this situation is an anti-pattern, i.e.:\n\n    for each message in batch:\n        process message\n\n    bulk-delete batch","commit_id":"87eb5fdb38f01edde15e26ebca7ca70f555f4240"},{"author":{"_account_id":6427,"name":"Kurt Griffiths","email":"kurt.griffiths@rackspace.com","username":"kgriffs"},"change_message_id":"14581cad98a768ee9d47385438a9d49e0a905faf","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        path \u003d self.queue_path + \u0027/messages\u0027"},{"line_number":42,"context_line":"        self._post_messages(path, repeat\u003d5)"},{"line_number":43,"context_line":"        [target, params] \u003d self.srmock.headers_dict[\u0027location\u0027].split(\u0027?\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.simulate_delete(target, self.project_id, query_string\u003dparams)"},{"line_number":46,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_204)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXX%2F%2F1%2FQ%3D","line":44,"in_reply_to":"AAAAXX%2F%2F4AA%3D","updated":"2014-04-25 20:26:14.000000000","message":"In any case, these tests should include some claimed messages.","commit_id":"87eb5fdb38f01edde15e26ebca7ca70f555f4240"}]}
