)]}'
{"requirements-py3.txt":[{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"708564d32c35f043710246be9dab0db68d662a90","unresolved":false,"context_lines":[{"line_number":11,"context_line":"keystonemiddleware\u003e\u003d1.5.0"},{"line_number":12,"context_line":"msgpack-python\u003e\u003d0.4.0"},{"line_number":13,"context_line":"posix_ipc"},{"line_number":14,"context_line":"pymongo\u003e\u003d3.0.2"},{"line_number":15,"context_line":"# python-memcached has no Py3k support for now"},{"line_number":16,"context_line":"# python-memcached\u003e\u003d1.48"},{"line_number":17,"context_line":"WebOb\u003e\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":3,"id":"fa32b979_93c0802c","line":14,"updated":"2015-06-19 14:31:14.000000000","message":"Do we want to add an upper bound on this, e.g. \u003c4.0?","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"ab2800250d7e4cf3b777a9519acad22690771241","unresolved":false,"context_lines":[{"line_number":11,"context_line":"keystonemiddleware\u003e\u003d1.5.0"},{"line_number":12,"context_line":"msgpack-python\u003e\u003d0.4.0"},{"line_number":13,"context_line":"posix_ipc"},{"line_number":14,"context_line":"pymongo\u003e\u003d3.0.2"},{"line_number":15,"context_line":"# python-memcached has no Py3k support for now"},{"line_number":16,"context_line":"# python-memcached\u003e\u003d1.48"},{"line_number":17,"context_line":"WebOb\u003e\u003d1.2.3"}],"source_content_type":"text/plain","patch_set":3,"id":"fa32b979_e72b3493","line":14,"in_reply_to":"fa32b979_93c0802c","updated":"2015-06-19 21:55:01.000000000","message":"WE normally try to not cap versions in global-requirements. I think it\u0027s fine, if 4.0 is out and breaks the gate, we\u0027ll cap for sure.","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"}],"test-requirements.txt":[{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"708564d32c35f043710246be9dab0db68d662a90","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"# Backends"},{"line_number":11,"context_line":"redis\u003e\u003d2.10.0"},{"line_number":12,"context_line":"pymongo\u003e\u003d3.0.2"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"# Unit testing"},{"line_number":15,"context_line":"coverage\u003e\u003d3.6"}],"source_content_type":"text/plain","patch_set":3,"id":"fa32b979_33dc1418","line":12,"updated":"2015-06-19 14:31:14.000000000","message":"Same.","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"}],"zaqar/storage/mongodb/catalogue.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d8869b958f6ff5d13897fc3305aac6fd87b25d4b","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        fields \u003d {\u0027_id\u0027: 0}"},{"line_number":69,"context_line":"        key \u003d utils.scope_queue_name(queue, project)"},{"line_number":70,"context_line":"        entry \u003d self._col.find_one({PRIMARY_KEY: key},"},{"line_number":71,"context_line":"                                   projection\u003dfields)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        if entry is None:"},{"line_number":74,"context_line":"            raise errors.QueueNotMapped(queue, project)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_183d0bbb","line":71,"updated":"2015-06-23 09:05:38.000000000","message":"projection\u003dprojection","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"}],"zaqar/storage/mongodb/driver.py":[{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"708564d32c35f043710246be9dab0db68d662a90","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        else:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"            _mongo_wc \u003d conn.write_concern.document.get(\u0027w\u0027)"},{"line_number":101,"context_line":"            majority \u003d (_mongo_wc \u003d\u003d \u0027majority\u0027 or"},{"line_number":102,"context_line":"                        _mongo_wc \u003e\u003d 2)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            if not self.conf.unreliable and not majority:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_73c37c39","line":101,"updated":"2015-06-19 14:31:14.000000000","message":"Can this have a name other than \"majority\"? Write concern of over 2 seems not to meet the definition of majority for clusters bigger than 3 nodes. Maybe \"replicated\"/\"reliable\" would be a better name.","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"ab2800250d7e4cf3b777a9519acad22690771241","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        else:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"            _mongo_wc \u003d conn.write_concern.document.get(\u0027w\u0027)"},{"line_number":101,"context_line":"            majority \u003d (_mongo_wc \u003d\u003d \u0027majority\u0027 or"},{"line_number":102,"context_line":"                        _mongo_wc \u003e\u003d 2)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            if not self.conf.unreliable and not majority:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_5208a028","line":101,"in_reply_to":"fa32b979_73c37c39","updated":"2015-06-19 21:55:01.000000000","message":"That\u0027s the name in mongodb and it does calculate the majority of nodes. The check below is probably the one that needs to be fixed (count number of nodes and verify the wc is bigger than the half of it.","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"},{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"85864373b2ce94a427d88b67bb23df8006240d5d","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"            _mongo_wc \u003d conn.write_concern.document.get(\u0027w\u0027)"},{"line_number":101,"context_line":"            majority \u003d (_mongo_wc \u003d\u003d \u0027majority\u0027 or"},{"line_number":102,"context_line":"                        _mongo_wc \u003e\u003d 2)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            if not self.conf.unreliable and not majority:"},{"line_number":105,"context_line":"                raise RuntimeError(_(\u0027Using a write concern other than \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_9500f6ac","line":102,"updated":"2015-06-23 12:56:48.000000000","message":"I still would rather the variable name be something like \"durable\" rather than majority since this would be True for a cluster of 5 with write concern of 2.","commit_id":"5d6c4adebea562313c37002b6392b48709338e00"}],"zaqar/storage/mongodb/messages.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d8869b958f6ff5d13897fc3305aac6fd87b25d4b","unresolved":false,"context_lines":[{"line_number":570,"context_line":"        else:"},{"line_number":571,"context_line":"            if message[\u0027c\u0027][\u0027id\u0027] !\u003d cid:"},{"line_number":572,"context_line":"                kwargs \u003d {}"},{"line_number":573,"context_line":"                # NOTE(flaper87): In pymongo 3.0 PRIMARY is the default and"},{"line_number":574,"context_line":"                # `read_preference` is read only. We\u0027d need to set it when the"},{"line_number":575,"context_line":"                # client is created."},{"line_number":576,"context_line":"                # NOTE(kgriffs): Read from primary in case the message"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_b39f605e","line":573,"updated":"2015-06-23 09:05:38.000000000","message":"NIT. Copy this NOTE to L365","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d8869b958f6ff5d13897fc3305aac6fd87b25d4b","unresolved":false,"context_lines":[{"line_number":614,"context_line":"        fields \u003d {\u0027_id\u0027: 1, \u0027t\u0027: 1, \u0027b\u0027: 1, \u0027c.id\u0027: 1}"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"        messages \u003d (collection.find_and_modify(query,"},{"line_number":617,"context_line":"                                               projection\u003dfields,"},{"line_number":618,"context_line":"                                               remove\u003dTrue)"},{"line_number":619,"context_line":"                    for _ in range(limit))"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_33827001","line":617,"updated":"2015-06-23 09:05:38.000000000","message":"projection\u003dprojection","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"}],"zaqar/storage/mongodb/queues.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d8869b958f6ff5d13897fc3305aac6fd87b25d4b","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        if detailed:"},{"line_number":204,"context_line":"            fields[\u0027m\u0027] \u003d 1"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        cursor \u003d self._collection.find(query, projection\u003dfields)"},{"line_number":207,"context_line":"        cursor \u003d cursor.limit(limit).sort(\u0027p_q\u0027)"},{"line_number":208,"context_line":"        marker_name \u003d {}"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_d371c445","line":206,"updated":"2015-06-23 09:05:38.000000000","message":"projection\u003dprojection","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"}],"zaqar/storage/mongodb/subscriptions.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d8869b958f6ff5d13897fc3305aac6fd87b25d4b","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        fields \u003d {\u0027s\u0027: 1, \u0027u\u0027: 1, \u0027t\u0027: 1, \u0027p\u0027: 1, \u0027o\u0027: 1, \u0027_id\u0027: 1}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        cursor \u003d self._collection.find(query, projection\u003dfields)"},{"line_number":64,"context_line":"        cursor \u003d cursor.limit(limit).sort(\u0027_id\u0027)"},{"line_number":65,"context_line":"        marker_name \u003d {}"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_3399106f","line":63,"updated":"2015-06-23 09:05:38.000000000","message":"projection\u003dprojection","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"},{"author":{"_account_id":12321,"name":"Ryan Brown","email":"rybrown@redhat.com","username":"ryansb"},"change_message_id":"708564d32c35f043710246be9dab0db68d662a90","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        ttl \u003d int(ttl)"},{"line_number":97,"context_line":"        expires \u003d now + ttl"},{"line_number":98,"context_line":"        source_query \u003d {\u0027p_q\u0027: utils.scope_queue_name(source, project)}"},{"line_number":99,"context_line":"        target_source \u003d self._queue_collection.find_one(source_query,"},{"line_number":100,"context_line":"                                                        projection\u003d{\u0027m\u0027: 1,"},{"line_number":101,"context_line":"                                                                    \u0027_id\u0027: 0})"},{"line_number":102,"context_line":"        if target_source is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_d3c60849","line":99,"updated":"2015-06-19 14:31:14.000000000","message":"Want to put the first arg on a new line here, these breaks are a bit awkward.","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"d8869b958f6ff5d13897fc3305aac6fd87b25d4b","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        ttl \u003d int(ttl)"},{"line_number":97,"context_line":"        expires \u003d now + ttl"},{"line_number":98,"context_line":"        source_query \u003d {\u0027p_q\u0027: utils.scope_queue_name(source, project)}"},{"line_number":99,"context_line":"        target_source \u003d self._queue_collection.find_one(source_query,"},{"line_number":100,"context_line":"                                                        projection\u003d{\u0027m\u0027: 1,"},{"line_number":101,"context_line":"                                                                    \u0027_id\u0027: 0})"},{"line_number":102,"context_line":"        if target_source is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_73b6b8dd","line":99,"in_reply_to":"fa32b979_d3c60849","updated":"2015-06-23 09:05:38.000000000","message":"+1","commit_id":"c13bc471cdeaf901632ccf04586c18572cd1ceab"}]}
