)]}'
{"tooz/drivers/etcd3.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"15cb6db2a4d4d3bd5f29318dcd76fae1a0032171","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    @_translate_failures"},{"line_number":63,"context_line":"    def acquire(self, *args, **kwargs):"},{"line_number":64,"context_line":"        if self not in self._coord._acquired_locks:"},{"line_number":65,"context_line":"            self._coord._acquired_locks.append(self)"},{"line_number":66,"context_line":"        return self._lock.acquire()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @_translate_failures"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_0495b485","line":65,"range":{"start_line":64,"start_character":7,"end_line":65,"end_character":52},"updated":"2017-03-22 13:12:40.000000000","message":"This is not thread safe. If you use a set() this is less a problem as you can just add() it blindly.","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3498ffd4dd7d37058308e2224be86c61191f0d20","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    @_translate_failures"},{"line_number":63,"context_line":"    def acquire(self, *args, **kwargs):"},{"line_number":64,"context_line":"        if self not in self._coord._acquired_locks:"},{"line_number":65,"context_line":"            self._coord._acquired_locks.append(self)"},{"line_number":66,"context_line":"        return self._lock.acquire()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @_translate_failures"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_1543ff14","line":65,"range":{"start_line":64,"start_character":7,"end_line":65,"end_character":52},"in_reply_to":"1a1ced50_0495b485","updated":"2017-03-28 14:37:44.000000000","message":"Done","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"15cb6db2a4d4d3bd5f29318dcd76fae1a0032171","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def acquire(self, *args, **kwargs):"},{"line_number":64,"context_line":"        if self not in self._coord._acquired_locks:"},{"line_number":65,"context_line":"            self._coord._acquired_locks.append(self)"},{"line_number":66,"context_line":"        return self._lock.acquire()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @_translate_failures"},{"line_number":69,"context_line":"    def release(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_84efe41c","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":35},"updated":"2017-03-22 13:12:40.000000000","message":"If that return false I don\u0027t think you want to add the lock to acquired_locks and send heartbeat to it.","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3498ffd4dd7d37058308e2224be86c61191f0d20","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def acquire(self, *args, **kwargs):"},{"line_number":64,"context_line":"        if self not in self._coord._acquired_locks:"},{"line_number":65,"context_line":"            self._coord._acquired_locks.append(self)"},{"line_number":66,"context_line":"        return self._lock.acquire()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @_translate_failures"},{"line_number":69,"context_line":"    def release(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_f54bfb27","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":35},"in_reply_to":"1a1ced50_84efe41c","updated":"2017-03-28 14:37:44.000000000","message":"Done","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"15cb6db2a4d4d3bd5f29318dcd76fae1a0032171","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if res and self in self._coord._acquired_locks:"},{"line_number":72,"context_line":"            self._coord._acquired_locks.remove(self)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def break_(self, *args, **kwargs):"},{"line_number":75,"context_line":"        return self.release()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @_translate_failures"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_04c3f489","line":74,"range":{"start_line":74,"start_character":19,"end_line":74,"end_character":36},"updated":"2017-03-22 13:12:40.000000000","message":"it seems there\u0027s no args/kwargs there.","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3498ffd4dd7d37058308e2224be86c61191f0d20","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if res and self in self._coord._acquired_locks:"},{"line_number":72,"context_line":"            self._coord._acquired_locks.remove(self)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def break_(self, *args, **kwargs):"},{"line_number":75,"context_line":"        return self.release()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @_translate_failures"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_d548f72d","line":74,"range":{"start_line":74,"start_character":19,"end_line":74,"end_character":36},"in_reply_to":"1a1ced50_04c3f489","updated":"2017-03-28 14:37:44.000000000","message":"Done","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"15cb6db2a4d4d3bd5f29318dcd76fae1a0032171","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        return self.release()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @_translate_failures"},{"line_number":78,"context_line":"    def heartbeat(self, *args, **kwargs):"},{"line_number":79,"context_line":"        return self._lock.refresh()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_843d2491","line":78,"range":{"start_line":78,"start_character":24,"end_line":78,"end_character":39},"updated":"2017-03-22 13:12:40.000000000","message":"ditto","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3498ffd4dd7d37058308e2224be86c61191f0d20","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        return self.release()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @_translate_failures"},{"line_number":78,"context_line":"    def heartbeat(self, *args, **kwargs):"},{"line_number":79,"context_line":"        return self._lock.refresh()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_b551f3db","line":78,"range":{"start_line":78,"start_character":24,"end_line":78,"end_character":39},"in_reply_to":"1a1ced50_843d2491","updated":"2017-03-28 14:37:44.000000000","message":"Done","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"15cb6db2a4d4d3bd5f29318dcd76fae1a0032171","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        timeout \u003d int(options.get(\u0027timeout\u0027, self.DEFAULT_TIMEOUT))"},{"line_number":104,"context_line":"        self.client \u003d etcd3.client(host\u003dhost, port\u003dport, timeout\u003dtimeout)"},{"line_number":105,"context_line":"        self.lock_timeout \u003d int(options.get(\u0027lock_timeout\u0027, timeout))"},{"line_number":106,"context_line":"        self._acquired_locks \u003d []"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @_translate_failures"},{"line_number":109,"context_line":"    def _start(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_64858858","line":106,"updated":"2017-03-22 13:12:40.000000000","message":"This probably should be a set()","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3498ffd4dd7d37058308e2224be86c61191f0d20","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        timeout \u003d int(options.get(\u0027timeout\u0027, self.DEFAULT_TIMEOUT))"},{"line_number":104,"context_line":"        self.client \u003d etcd3.client(host\u003dhost, port\u003dport, timeout\u003dtimeout)"},{"line_number":105,"context_line":"        self.lock_timeout \u003d int(options.get(\u0027lock_timeout\u0027, timeout))"},{"line_number":106,"context_line":"        self._acquired_locks \u003d []"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @_translate_failures"},{"line_number":109,"context_line":"    def _start(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_556627c3","line":106,"in_reply_to":"1a1ced50_64858858","updated":"2017-03-28 14:37:44.000000000","message":"Done","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"15cb6db2a4d4d3bd5f29318dcd76fae1a0032171","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        return Etcd3Lock(etcd3_lock, self)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def heartbeat(self):"},{"line_number":117,"context_line":"        for lock in self._acquired_locks:"},{"line_number":118,"context_line":"            lock.heartbeat()"},{"line_number":119,"context_line":"        return self.lock_timeout"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_04713476","line":117,"range":{"start_line":117,"start_character":20,"end_line":117,"end_character":40},"updated":"2017-03-22 13:12:40.000000000","message":"you might want to iterate over a copy of that because it can mutate during the iteration (multi-threading)","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3498ffd4dd7d37058308e2224be86c61191f0d20","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        return Etcd3Lock(etcd3_lock, self)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def heartbeat(self):"},{"line_number":117,"context_line":"        for lock in self._acquired_locks:"},{"line_number":118,"context_line":"            lock.heartbeat()"},{"line_number":119,"context_line":"        return self.lock_timeout"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_355723cd","line":117,"range":{"start_line":117,"start_character":20,"end_line":117,"end_character":40},"in_reply_to":"1a1ced50_04713476","updated":"2017-03-28 14:37:44.000000000","message":"Done","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a44ca3cbd10444a4ff6d390f9836b7c17c72d7ee","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            self._coord._acquired_locks.remove(self)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def break_(self):"},{"line_number":76,"context_line":"        return self.release()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @_translate_failures"},{"line_number":79,"context_line":"    def heartbeat(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_ea60f703","line":76,"updated":"2017-04-03 18:56:02.000000000","message":"i think we can make this similar to release but just don\u0027t check if acquired()","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"94b6b6017ef4698dabe44aa992da276df7dc97b3","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            self._coord._acquired_locks.remove(self)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def break_(self):"},{"line_number":76,"context_line":"        return self.release()"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @_translate_failures"},{"line_number":79,"context_line":"    def heartbeat(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_1a0f20e2","line":76,"in_reply_to":"dfeb2761_ea60f703","updated":"2017-04-17 15:47:43.000000000","message":"Done","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a44ca3cbd10444a4ff6d390f9836b7c17c72d7ee","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    @_translate_failures"},{"line_number":79,"context_line":"    def heartbeat(self):"},{"line_number":80,"context_line":"        return self._lock.refresh()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class Etcd3Driver(coordination.CoordinationDriver):"},{"line_number":84,"context_line":"    \"\"\"An etcd based driver."}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_aaac2f34","line":81,"updated":"2017-04-03 18:56:02.000000000","message":"we should implement acquired() method to check self._lock.is_acquired() so we only release and heartbeat if we have acquired lock.\n\nnot sure if the client allows you to release an unacquired lock but seems safer to check first.","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"94b6b6017ef4698dabe44aa992da276df7dc97b3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    @_translate_failures"},{"line_number":79,"context_line":"    def heartbeat(self):"},{"line_number":80,"context_line":"        return self._lock.refresh()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"class Etcd3Driver(coordination.CoordinationDriver):"},{"line_number":84,"context_line":"    \"\"\"An etcd based driver."}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_3a0adcd1","line":81,"in_reply_to":"dfeb2761_aaac2f34","updated":"2017-04-17 15:47:43.000000000","message":"Done","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a44ca3cbd10444a4ff6d390f9836b7c17c72d7ee","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self._acquired_locks \u003d set()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @_translate_failures"},{"line_number":110,"context_line":"    def _start(self):"},{"line_number":111,"context_line":"        pass"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def get_lock(self, name):"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_aa1d4f67","line":110,"updated":"2017-04-03 18:56:02.000000000","message":"doesn\u0027t seem to be changing anything from default behaviour so maybe just remove it?","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"94b6b6017ef4698dabe44aa992da276df7dc97b3","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        self._acquired_locks \u003d set()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @_translate_failures"},{"line_number":110,"context_line":"    def _start(self):"},{"line_number":111,"context_line":"        pass"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def get_lock(self, name):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_ba3dccbc","line":110,"in_reply_to":"dfeb2761_aa1d4f67","updated":"2017-04-17 15:47:43.000000000","message":"Done","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a44ca3cbd10444a4ff6d390f9836b7c17c72d7ee","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def heartbeat(self):"},{"line_number":118,"context_line":"        # NOTE(jaypipes): Copying because set can mutate during iteration"},{"line_number":119,"context_line":"        clocks \u003d self._acquired_locks.copy()"},{"line_number":120,"context_line":"        for lock in clocks:"},{"line_number":121,"context_line":"            lock.heartbeat()"},{"line_number":122,"context_line":"        return self.lock_timeout"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfeb2761_0a743b98","line":119,"updated":"2017-04-03 18:56:02.000000000","message":"don\u0027t bother storing in variable.","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"94b6b6017ef4698dabe44aa992da276df7dc97b3","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    def heartbeat(self):"},{"line_number":118,"context_line":"        # NOTE(jaypipes): Copying because set can mutate during iteration"},{"line_number":119,"context_line":"        clocks \u003d self._acquired_locks.copy()"},{"line_number":120,"context_line":"        for lock in clocks:"},{"line_number":121,"context_line":"            lock.heartbeat()"},{"line_number":122,"context_line":"        return self.lock_timeout"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ffa3b31_1a2280a5","line":119,"in_reply_to":"dfeb2761_0a743b98","updated":"2017-04-17 15:47:43.000000000","message":"Done","commit_id":"2957a3369c4d0e280245ff403ef4856f4210e95c"}],"tox.ini":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"8848f6677890380a3babf5601b1f56fe2b226db9","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"[testenv:py35-etcd3]"},{"line_number":79,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd3 -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":80,"context_line":"           {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd3 --cluster -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"[testenv:py27-consul]"},{"line_number":83,"context_line":"commands \u003d {toxinidir}/setup-consul-env.sh pifpaf -g TOOZ_TEST run consul -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""}],"source_content_type":"text/x-properties","patch_set":2,"id":"1a1ced50_b1ec8e2a","line":80,"range":{"start_line":80,"start_character":65,"end_line":80,"end_character":70},"updated":"2017-03-20 09:43:26.000000000","message":"etcd","commit_id":"f061e5153fe8a2964b2d88dc919b0c3f1f539c01"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f0c4046a39d0d47cbdb83258199aa67d33a8936f","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"[testenv:py35-etcd3]"},{"line_number":79,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd3 -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":80,"context_line":"           {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd3 --cluster -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"[testenv:py27-consul]"},{"line_number":83,"context_line":"commands \u003d {toxinidir}/setup-consul-env.sh pifpaf -g TOOZ_TEST run consul -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""}],"source_content_type":"text/x-properties","patch_set":2,"id":"1a1ced50_9de4bce1","line":80,"range":{"start_line":80,"start_character":65,"end_line":80,"end_character":70},"in_reply_to":"1a1ced50_b1ec8e2a","updated":"2017-03-21 16:57:56.000000000","message":"doh, copy/paste. thanks. fixed.","commit_id":"f061e5153fe8a2964b2d88dc919b0c3f1f539c01"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"560b30d8948a5813cbb9cf118268e0c59e03d582","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"[testenv:py35-etcd3]"},{"line_number":79,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":80,"context_line":"           {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --cluster -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"[testenv:py27-consul]"},{"line_number":83,"context_line":"commands \u003d {toxinidir}/setup-consul-env.sh pifpaf -g TOOZ_TEST run consul -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""}],"source_content_type":"text/x-properties","patch_set":4,"id":"1a1ced50_44496cb6","line":80,"range":{"start_line":80,"start_character":48,"end_line":80,"end_character":50},"updated":"2017-03-22 13:18:29.000000000","message":"Also I just noticed, the tests are not run because there\u0027s a typo here. It should be -e like in other drivers. I just sent https://review.openstack.org/448564\n\nwe need to make that more robust in the future","commit_id":"ae52b056b4263e2773b3f5dbc41f448df477d15d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ce2ad7d7d8e55b8d4ab2a464b02b0200573dd391","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"[testenv:py27-etcd3]"},{"line_number":75,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":76,"context_line":"           {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --cluster --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"[testenv:py35-etcd3]"},{"line_number":79,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""}],"source_content_type":"text/x-properties","patch_set":5,"id":"ffe62b97_601dc372","line":76,"range":{"start_line":76,"start_character":48,"end_line":76,"end_character":51},"updated":"2017-03-29 09:16:58.000000000","message":"-e\n\nand then I\u0027m not sure the tests pass :)","commit_id":"f9065e7b572b30f00feb22e3c4a602bddf7714b3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"670e23352add68ddb6920044da8490f341b7bb2a","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"[testenv:py27-etcd3]"},{"line_number":75,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":76,"context_line":"           {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --cluster --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"[testenv:py35-etcd3]"},{"line_number":79,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""}],"source_content_type":"text/x-properties","patch_set":5,"id":"ffe62b97_f01cc2c2","line":76,"range":{"start_line":76,"start_character":48,"end_line":76,"end_character":51},"in_reply_to":"ffe62b97_601dc372","updated":"2017-03-30 14:14:56.000000000","message":"I copied the lines from the etcd driver (see lines 67-68 and 71-72. Should I change those as well? Also, -g is used in the consul driver on lines 83 and 89.","commit_id":"f9065e7b572b30f00feb22e3c4a602bddf7714b3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e069affa16f674dd8d7fcb4fc766bb087fa874bb","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"[testenv:py27-etcd3]"},{"line_number":75,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":76,"context_line":"           {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --cluster --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"[testenv:py35-etcd3]"},{"line_number":79,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""}],"source_content_type":"text/x-properties","patch_set":5,"id":"ffe62b97_d682d652","line":76,"range":{"start_line":76,"start_character":48,"end_line":76,"end_character":51},"in_reply_to":"ffe62b97_b3bf64cf","updated":"2017-03-30 14:39:50.000000000","message":"got it. will do, thanks Julien :)","commit_id":"f9065e7b572b30f00feb22e3c4a602bddf7714b3"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4adfcb7eac50f94044eec226d69d1ecd4ad00aa9","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"[testenv:py27-etcd3]"},{"line_number":75,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":76,"context_line":"           {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd --cluster --  {toxinidir}/tools/pretty_tox.sh \"{posargs}\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"[testenv:py35-etcd3]"},{"line_number":79,"context_line":"commands \u003d {toxinidir}/setup-etcd-env.sh pifpaf -g TOOZ_TEST run etcd -- {toxinidir}/tools/pretty_tox.sh \"{posargs}\""}],"source_content_type":"text/x-properties","patch_set":5,"id":"ffe62b97_b3bf64cf","line":76,"range":{"start_line":76,"start_character":48,"end_line":76,"end_character":51},"in_reply_to":"ffe62b97_f01cc2c2","updated":"2017-03-30 14:28:48.000000000","message":"Yeah as I wrote in an earlier comment (but maybe you missed it), I noticed you copy/pasted them, so I went ahead and already fixed that in master (commit 85fbf6ca3ca055a9050fadf6ed2019a132d823f7) :)\n\nSo just rebase and switch to -e. Running the tests should trigger some failure that should be easy to fix (I hope). I also fixed some stuff in the etcd2 driver that you may want to steal also.","commit_id":"f9065e7b572b30f00feb22e3c4a602bddf7714b3"}]}
