)]}'
{"monasca_notification/state_tracker.py":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"08d334363c0c191dd79a9053036eeaa0d32fed48","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        \"\"\"Grab a lock within zookeeper, if not available retry."},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        if self.zookeeper.exists(self.lock_path):"},{"line_number":86,"context_line":"            log.info(\u0027Another process has the lock for topic %s, waiting then retrying.\u0027 % self.topic)"},{"line_number":87,"context_line":"        while True:"},{"line_number":88,"context_line":"            # The path is ephemeral so if it exists wait then cycle again"},{"line_number":89,"context_line":"            if self.zookeeper.exists(self.lock_path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_3be60716","line":86,"updated":"2015-01-23 18:50:00.000000000","message":"It would be nice if there was some indication the lock was actually grabbed. This just says it is waiting. Also, this may return false but the next one return true or vice versa","commit_id":"3bc8e0e53f18ca69a114a405e6f346f32645d20b"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"6daa8acf28fe54b60e809595ede9672cb26de7b9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                self.zookeeper.create(self.lock_path, ephemeral\u003dTrue, makepath\u003dTrue)"},{"line_number":100,"context_line":"            except kazoo.exceptions.KazooException as e:"},{"line_number":101,"context_line":"                # If creating the path fails something beat us to it most likely, try again"},{"line_number":102,"context_line":"                log.warn(\u0027Error creating lock path {}\\n{}\u0027.format(self.lock_path, e))"},{"line_number":103,"context_line":"                continue"},{"line_number":104,"context_line":"            else:"},{"line_number":105,"context_line":"                # Succeeded in grabbing the lock continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_8d90a844","line":102,"updated":"2015-01-29 22:37:10.000000000","message":"Break into two log statements.","commit_id":"c76a161952b278654595e116ade082bbc7278eea"},{"author":{"_account_id":12512,"name":"Deklan Dieterly","email":"deklan.dieterly@hpe.com","username":"deklan"},"change_message_id":"6daa8acf28fe54b60e809595ede9672cb26de7b9","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                continue"},{"line_number":104,"context_line":"            else:"},{"line_number":105,"context_line":"                # Succeeded in grabbing the lock continue"},{"line_number":106,"context_line":"                log.info(\u0027Grabbed lock for topic {}\u0027.format(self.topic))"},{"line_number":107,"context_line":"                self.has_lock \u003d True"},{"line_number":108,"context_line":"                break"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_cd838002","line":106,"updated":"2015-01-29 22:37:10.000000000","message":"\u0027Acquired\u0027 would be better than \u0027Grabbed\u0027.","commit_id":"c76a161952b278654595e116ade082bbc7278eea"}]}
