)]}'
{"manila/coordination.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"741f6bf9d8fcdec79063e3d2222818423669fe9d","unresolved":false,"context_lines":[{"line_number":191,"context_line":"class Lock(locking.Lock):"},{"line_number":192,"context_line":"    \"\"\"Lock with dynamic name."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    :param str lock_name: Lock name."},{"line_number":195,"context_line":"    :param dict lock_data: Data for lock name formatting."},{"line_number":196,"context_line":"    :param coordinator: Coordinator object to use when creating lock."},{"line_number":197,"context_line":"        Defaults to the global coordinator."}],"source_content_type":"text/x-python","patch_set":11,"id":"da4df55a_14729fad","line":194,"range":{"start_line":194,"start_character":26,"end_line":194,"end_character":36},"updated":"2016-12-23 15:43:29.000000000","message":"How big can it be?","commit_id":"8543df8b5c4f926e6b7e94978653727e42032eb8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"76123b482f08f2d897da19f9b85c7b94777ddc1f","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    Available field names are keys of lock_data."},{"line_number":210,"context_line":"    \"\"\""},{"line_number":211,"context_line":"    def __init__(self, lock_name, lock_data\u003dNone, coordinator\u003dNone):"},{"line_number":212,"context_line":"        super(Lock, self).__init__(str(id(self)))"},{"line_number":213,"context_line":"        lock_data \u003d lock_data or {}"},{"line_number":214,"context_line":"        self.coordinator \u003d coordinator or LOCK_COORDINATOR"},{"line_number":215,"context_line":"        self.blocking \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"da4df55a_ba5c7e26","line":212,"updated":"2016-12-22 21:36:01.000000000","message":"str() -\u003e six.text_type()","commit_id":"8543df8b5c4f926e6b7e94978653727e42032eb8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b7da6590016ef5ed01fc38d60ae2cf24bad197bf","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    Available field names are keys of lock_data."},{"line_number":210,"context_line":"    \"\"\""},{"line_number":211,"context_line":"    def __init__(self, lock_name, lock_data\u003dNone, coordinator\u003dNone):"},{"line_number":212,"context_line":"        super(Lock, self).__init__(str(id(self)))"},{"line_number":213,"context_line":"        lock_data \u003d lock_data or {}"},{"line_number":214,"context_line":"        self.coordinator \u003d coordinator or LOCK_COORDINATOR"},{"line_number":215,"context_line":"        self.blocking \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"da4df55a_f9e7d4e1","line":212,"in_reply_to":"da4df55a_ba5c7e26","updated":"2016-12-23 15:27:26.000000000","message":"or following:\n\"\"\"\n\u0027%d\u0027 % id(self)\n\"\"\"","commit_id":"8543df8b5c4f926e6b7e94978653727e42032eb8"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"07bc976daf2803befba788c18b349cf8e90d82bc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            try:"},{"line_number":84,"context_line":"                self._start()"},{"line_number":85,"context_line":"                self.started \u003d True"},{"line_number":86,"context_line":"                # NOTE(bluex): Start heartbeat in separate thread to avoid"},{"line_number":87,"context_line":"                # being blocked by long co-routines."},{"line_number":88,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":89,"context_line":"                    LOG.debug(\"This tooz lock management back end supports \""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba5201f7_1ef175cd","line":86,"range":{"start_line":86,"start_character":23,"end_line":86,"end_character":29},"updated":"2017-01-06 07:08:59.000000000","message":"Change all the names to our manila guys could be more convenient","commit_id":"5f67951e1d7a9924af37fc4606831447e2902b82"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b30449db1df9e029bf07c702f6de7165224ba95d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            try:"},{"line_number":84,"context_line":"                self._start()"},{"line_number":85,"context_line":"                self.started \u003d True"},{"line_number":86,"context_line":"                # NOTE(bluex): Start heartbeat in separate thread to avoid"},{"line_number":87,"context_line":"                # being blocked by long co-routines."},{"line_number":88,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":89,"context_line":"                    LOG.debug(\"This tooz lock management back end supports \""}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_d355c3c6","line":86,"range":{"start_line":86,"start_character":23,"end_line":86,"end_character":29},"in_reply_to":"ba5201f7_1ef175cd","updated":"2017-01-19 16:47:45.000000000","message":"Done","commit_id":"5f67951e1d7a9924af37fc4606831447e2902b82"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fc42c1f7ea89d8c9d16f932529ebb006838332e7","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    Available field names are keys of lock_data."},{"line_number":210,"context_line":"    \"\"\""},{"line_number":211,"context_line":"    def __init__(self, lock_name, lock_data\u003dNone, coordinator\u003dNone):"},{"line_number":212,"context_line":"        super(Lock, self).__init__(str(id(self)))"},{"line_number":213,"context_line":"        lock_data \u003d lock_data or {}"},{"line_number":214,"context_line":"        self.coordinator \u003d coordinator or LOCK_COORDINATOR"},{"line_number":215,"context_line":"        self.blocking \u003d True"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_fd9c4e6b","line":212,"range":{"start_line":212,"start_character":35,"end_line":212,"end_character":39},"updated":"2017-01-19 16:26:48.000000000","message":"str() -\u003e six.text_type()","commit_id":"5f67951e1d7a9924af37fc4606831447e2902b82"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b30449db1df9e029bf07c702f6de7165224ba95d","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    Available field names are keys of lock_data."},{"line_number":210,"context_line":"    \"\"\""},{"line_number":211,"context_line":"    def __init__(self, lock_name, lock_data\u003dNone, coordinator\u003dNone):"},{"line_number":212,"context_line":"        super(Lock, self).__init__(str(id(self)))"},{"line_number":213,"context_line":"        lock_data \u003d lock_data or {}"},{"line_number":214,"context_line":"        self.coordinator \u003d coordinator or LOCK_COORDINATOR"},{"line_number":215,"context_line":"        self.blocking \u003d True"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_d36ce39e","line":212,"range":{"start_line":212,"start_character":35,"end_line":212,"end_character":39},"in_reply_to":"5a3905b3_fd9c4e6b","updated":"2017-01-19 16:47:45.000000000","message":"Done","commit_id":"5f67951e1d7a9924af37fc4606831447e2902b82"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"2505d1eed61128914e01fe7804779bdfa42952b2","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                # being blocked by long co-routines."},{"line_number":88,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":89,"context_line":"                    LOG.debug(\"This tooz lock management back end supports \""},{"line_number":90,"context_line":"                              \"heart beats. Spawning a new thread to \""},{"line_number":91,"context_line":"                              \"send regular heart beats.\")"},{"line_number":92,"context_line":"                    self._heartbeat_thread.start("},{"line_number":93,"context_line":"                        cfg.CONF.coordination.heartbeat)"},{"line_number":94,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"5a3905b3_bc9e3654","line":91,"range":{"start_line":90,"start_character":31,"end_line":91,"end_character":56},"updated":"2017-01-19 23:19:34.000000000","message":"Nit: \u0027heartbeat\u0027 is one word","commit_id":"02ab18c5dfa8d49631052d9951b27d57a5340968"}],"manila/coordinator.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d717a403d7215dfd17f007dae9a16c7771f4899d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"CONF.register_opts(coordination_opts, group\u003d\u0027coordination\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class ToozLockCoordinator(object):"},{"line_number":59,"context_line":"    \"\"\"Tooz coordination wrapper."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    Coordination member id is created from concatenated `prefix` and"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_2c2de1a7","line":58,"range":{"start_line":58,"start_character":6,"end_line":58,"end_character":25},"updated":"2016-05-28 16:42:23.000000000","message":"There\u0027s been discussion on leaving this as Coordinator (as with Cinder and Sahara\u0027s implementation).. I like the name LockCoordinator since it\u0027s more explicit.. can be convinced either way..","commit_id":"bfd062ac25f4ed767be4643ed50d4aab26364d9a"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"6a8753d8f35a349e04995865459ac6121909e163","unresolved":false,"context_lines":[{"line_number":55,"context_line":"CONF.register_opts(coordination_opts, group\u003d\u0027coordination\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class ToozLockCoordinator(object):"},{"line_number":59,"context_line":"    \"\"\"Tooz coordination wrapper."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    Coordination member id is created from concatenated `prefix` and"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_3013610f","line":58,"range":{"start_line":58,"start_character":6,"end_line":58,"end_character":25},"in_reply_to":"9abb7d3a_2c2de1a7","updated":"2016-05-30 06:43:29.000000000","message":"+1","commit_id":"bfd062ac25f4ed767be4643ed50d4aab26364d9a"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"6a8753d8f35a349e04995865459ac6121909e163","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                # NOTE(bluex): Start heartbeat in separate thread to avoid"},{"line_number":88,"context_line":"                # being blocked by long co-routines."},{"line_number":89,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":90,"context_line":"                    self._ev \u003d eventlet.spawn("},{"line_number":91,"context_line":"                        lambda: tpool.execute(self.heartbeat))"},{"line_number":92,"context_line":"            except coordination.ToozError:"},{"line_number":93,"context_line":"                LOG.exception(_LE(\u0027Error starting coordination backend.\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_3039a142","line":90,"range":{"start_line":90,"start_character":31,"end_line":90,"end_character":45},"updated":"2016-05-30 06:43:29.000000000","message":"We have to keep in mind that python threads are cpu bound. if our process is using the CPU excessive (maybe scheduler) this might cause problems.","commit_id":"bfd062ac25f4ed767be4643ed50d4aab26364d9a"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"6a8753d8f35a349e04995865459ac6121909e163","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        `coordination.max_reconnect_backoff`)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        while self.coordinator is not None and not self._dead.is_set():"},{"line_number":134,"context_line":"            try:"},{"line_number":135,"context_line":"                self._heartbeat()"},{"line_number":136,"context_line":"            except coordination.ToozConnectionError:"},{"line_number":137,"context_line":"                self._reconnect()"},{"line_number":138,"context_line":"            else:"},{"line_number":139,"context_line":"                self._dead.wait(cfg.CONF.coordination.heartbeat)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _start(self):"},{"line_number":142,"context_line":"        # NOTE(gouthamr): Tooz expects member_id as a byte string."}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_7050495f","line":139,"range":{"start_line":133,"start_character":0,"end_line":139,"end_character":64},"updated":"2016-05-30 06:43:29.000000000","message":"Can we add a unit test here?","commit_id":"bfd062ac25f4ed767be4643ed50d4aab26364d9a"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"6a8753d8f35a349e04995865459ac6121909e163","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        LOG.info(_LI(\u0027Reconnected to coordination backend.\u0027))"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"TOOZLOCKCOORDINATOR \u003d ToozLockCoordinator(prefix\u003d\u0027manila-\u0027)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"class Lock(locking.Lock):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abb7d3a_102d7d46","line":179,"updated":"2016-05-30 06:43:29.000000000","message":"I think LOCKCOORDINATOR would be sufficient","commit_id":"bfd062ac25f4ed767be4643ed50d4aab26364d9a"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"ea19b3c9f0e98ac0496e95c2052257c57813e200","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    meaningful prefix."},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __init__(self, agent_id\u003dNone, prefix\u003d\u0027\u0027):"},{"line_number":70,"context_line":"        self.coordinator \u003d None"},{"line_number":71,"context_line":"        self.agent_id \u003d agent_id or str(uuid.uuid4())"},{"line_number":72,"context_line":"        self.started \u003d False"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_1f6085a4","line":69,"updated":"2016-08-11 08:17:08.000000000","message":"Is the agent_id somewhere used while creating a ToozLockCoordinator instance?","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ed817f35af7d4ea5f275d28a3ea6178460bab3ef","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    meaningful prefix."},{"line_number":67,"context_line":"    \"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __init__(self, agent_id\u003dNone, prefix\u003d\u0027\u0027):"},{"line_number":70,"context_line":"        self.coordinator \u003d None"},{"line_number":71,"context_line":"        self.agent_id \u003d agent_id or str(uuid.uuid4())"},{"line_number":72,"context_line":"        self.started \u003d False"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_6b20d4f7","line":69,"in_reply_to":"9ad45d7e_1f6085a4","updated":"2016-08-12 03:27:08.000000000","message":"Yes, the one reported to Tooz as a particular instance\u0027s member_id... Line 143","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"ea19b3c9f0e98ac0496e95c2052257c57813e200","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                self.started \u003d True"},{"line_number":87,"context_line":"                # NOTE(bluex): Start heartbeat in separate thread to avoid"},{"line_number":88,"context_line":"                # being blocked by long co-routines."},{"line_number":89,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":90,"context_line":"                    self._ev \u003d eventlet.spawn("},{"line_number":91,"context_line":"                        lambda: tpool.execute(self.heartbeat))"},{"line_number":92,"context_line":"            except coordination.ToozError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_df01cdb0","line":89,"updated":"2016-08-11 08:17:08.000000000","message":"\"if self.is_active() and ...\"","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ed817f35af7d4ea5f275d28a3ea6178460bab3ef","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                self.started \u003d True"},{"line_number":87,"context_line":"                # NOTE(bluex): Start heartbeat in separate thread to avoid"},{"line_number":88,"context_line":"                # being blocked by long co-routines."},{"line_number":89,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":90,"context_line":"                    self._ev \u003d eventlet.spawn("},{"line_number":91,"context_line":"                        lambda: tpool.execute(self.heartbeat))"},{"line_number":92,"context_line":"            except coordination.ToozError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_0b53186c","line":89,"in_reply_to":"9ad45d7e_df01cdb0","updated":"2016-08-12 03:27:08.000000000","message":"Yeah! :P","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"ea19b3c9f0e98ac0496e95c2052257c57813e200","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        # NOTE(gouthamr): Tooz expects lock name as a byte string"},{"line_number":115,"context_line":"        lock_name \u003d (self.prefix + name).encode(\u0027ascii\u0027)"},{"line_number":116,"context_line":"        if self.coordinator is not None:"},{"line_number":117,"context_line":"            return self.coordinator.get_lock(lock_name)"},{"line_number":118,"context_line":"        else:"},{"line_number":119,"context_line":"            raise exception.LockCreationFailed(_(\u0027Coordinator uninitialized.\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_54b4a480","line":116,"updated":"2016-08-11 08:17:08.000000000","message":"use \"self.is_active()\"","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ed817f35af7d4ea5f275d28a3ea6178460bab3ef","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        # NOTE(gouthamr): Tooz expects lock name as a byte string"},{"line_number":115,"context_line":"        lock_name \u003d (self.prefix + name).encode(\u0027ascii\u0027)"},{"line_number":116,"context_line":"        if self.coordinator is not None:"},{"line_number":117,"context_line":"            return self.coordinator.get_lock(lock_name)"},{"line_number":118,"context_line":"        else:"},{"line_number":119,"context_line":"            raise exception.LockCreationFailed(_(\u0027Coordinator uninitialized.\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_abcacc18","line":116,"in_reply_to":"9ad45d7e_54b4a480","updated":"2016-08-12 03:27:08.000000000","message":"Done","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@chainguard.dev","username":"toabctl"},"change_message_id":"ea19b3c9f0e98ac0496e95c2052257c57813e200","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        `coordination.max_reconnect_backoff`)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        while self.coordinator is not None and not self._dead.is_set():"},{"line_number":134,"context_line":"            try:"},{"line_number":135,"context_line":"                self._heartbeat()"},{"line_number":136,"context_line":"            except coordination.ToozConnectionError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_745d6846","line":133,"updated":"2016-08-11 08:17:08.000000000","message":"\"while self.is_active() and ...\"","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ed817f35af7d4ea5f275d28a3ea6178460bab3ef","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        `coordination.max_reconnect_backoff`)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        \"\"\""},{"line_number":133,"context_line":"        while self.coordinator is not None and not self._dead.is_set():"},{"line_number":134,"context_line":"            try:"},{"line_number":135,"context_line":"                self._heartbeat()"},{"line_number":136,"context_line":"            except coordination.ToozConnectionError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_8bcd4833","line":133,"in_reply_to":"9ad45d7e_745d6846","updated":"2016-08-12 03:27:08.000000000","message":"Done","commit_id":"7c10915608c06efbf8f2aa4faf2b77721e90861d"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self._ev \u003d None"},{"line_number":75,"context_line":"        self._dead \u003d None"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def is_active(self):"},{"line_number":78,"context_line":"        return self.coordinator is not None"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def start(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_c7237ea6","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":17},"updated":"2016-08-12 08:52:54.000000000","message":"_is_active","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self._ev \u003d None"},{"line_number":75,"context_line":"        self._dead \u003d None"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def is_active(self):"},{"line_number":78,"context_line":"        return self.coordinator is not None"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def start(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_09566b05","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":17},"in_reply_to":"9ad45d7e_c7237ea6","updated":"2016-11-21 11:11:41.000000000","message":"Done","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self._dead \u003d None"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def is_active(self):"},{"line_number":78,"context_line":"        return self.coordinator is not None"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def start(self):"},{"line_number":81,"context_line":"        \"\"\"Connect to coordination backend and start heartbeat.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_e7e5e2dc","line":78,"updated":"2016-08-12 08:52:54.000000000","message":"why not use self.started \u003d\u003d True?","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self._dead \u003d None"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def is_active(self):"},{"line_number":78,"context_line":"        return self.coordinator is not None"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def start(self):"},{"line_number":81,"context_line":"        \"\"\"Connect to coordination backend and start heartbeat.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_744df6c2","line":78,"in_reply_to":"9ad45d7e_e7e5e2dc","updated":"2016-11-21 11:11:41.000000000","message":"same thing, but i\u0027ll switch it.","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                # NOTE(bluex): Start heartbeat in separate thread to avoid"},{"line_number":88,"context_line":"                # being blocked by long co-routines."},{"line_number":89,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":90,"context_line":"                    self._ev \u003d eventlet.spawn("},{"line_number":91,"context_line":"                        lambda: tpool.execute(self.heartbeat))"},{"line_number":92,"context_line":"            except coordination.ToozError:"},{"line_number":93,"context_line":"                LOG.exception(_LE(\u0027Error starting coordination backend.\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_9b68c0f6","line":90,"range":{"start_line":90,"start_character":25,"end_line":90,"end_character":28},"updated":"2016-08-12 08:52:54.000000000","message":"Maybe changing to a more explicit name would be better, such as _heartbeat_thread.","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                # NOTE(bluex): Start heartbeat in separate thread to avoid"},{"line_number":88,"context_line":"                # being blocked by long co-routines."},{"line_number":89,"context_line":"                if self.coordinator and self.coordinator.requires_beating:"},{"line_number":90,"context_line":"                    self._ev \u003d eventlet.spawn("},{"line_number":91,"context_line":"                        lambda: tpool.execute(self.heartbeat))"},{"line_number":92,"context_line":"            except coordination.ToozError:"},{"line_number":93,"context_line":"                LOG.exception(_LE(\u0027Error starting coordination backend.\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_14e922b7","line":90,"range":{"start_line":90,"start_character":25,"end_line":90,"end_character":28},"in_reply_to":"9ad45d7e_9b68c0f6","updated":"2016-11-21 11:11:41.000000000","message":"Sure","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            self.coordinator.stop()"},{"line_number":101,"context_line":"            self._dead.set()"},{"line_number":102,"context_line":"            if self._ev is not None:"},{"line_number":103,"context_line":"                self._ev.wait()"},{"line_number":104,"context_line":"            self._ev \u003d None"},{"line_number":105,"context_line":"            self.coordinator \u003d None"},{"line_number":106,"context_line":"            self.started \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_e7db224e","line":103,"updated":"2016-08-12 08:52:54.000000000","message":"I think it would be better that first wait heart beat thread stops, and then coordinator.stop()","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            self.coordinator.stop()"},{"line_number":101,"context_line":"            self._dead.set()"},{"line_number":102,"context_line":"            if self._ev is not None:"},{"line_number":103,"context_line":"                self._ev.wait()"},{"line_number":104,"context_line":"            self._ev \u003d None"},{"line_number":105,"context_line":"            self.coordinator \u003d None"},{"line_number":106,"context_line":"            self.started \u003d False"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_0f0e6b8b","line":103,"in_reply_to":"9ad45d7e_e7db224e","updated":"2016-11-21 11:11:41.000000000","message":"Good idea.","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            across all nodes."},{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        # NOTE(gouthamr): Tooz expects lock name as a byte string"},{"line_number":115,"context_line":"        lock_name \u003d (self.prefix + name).encode(\u0027ascii\u0027)"},{"line_number":116,"context_line":"        if self.is_active():"},{"line_number":117,"context_line":"            return self.coordinator.get_lock(lock_name)"},{"line_number":118,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_479b0e73","line":115,"range":{"start_line":115,"start_character":41,"end_line":115,"end_character":56},"updated":"2016-08-12 08:52:54.000000000","message":"suggest using six.b()","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            across all nodes."},{"line_number":113,"context_line":"        \"\"\""},{"line_number":114,"context_line":"        # NOTE(gouthamr): Tooz expects lock name as a byte string"},{"line_number":115,"context_line":"        lock_name \u003d (self.prefix + name).encode(\u0027ascii\u0027)"},{"line_number":116,"context_line":"        if self.is_active():"},{"line_number":117,"context_line":"            return self.coordinator.get_lock(lock_name)"},{"line_number":118,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_b4d5ce1c","line":115,"range":{"start_line":115,"start_character":41,"end_line":115,"end_character":56},"in_reply_to":"9ad45d7e_479b0e73","updated":"2016-11-21 11:11:41.000000000","message":"same as below.","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _start(self):"},{"line_number":142,"context_line":"        # NOTE(gouthamr): Tooz expects member_id as a byte string."},{"line_number":143,"context_line":"        member_id \u003d (self.prefix + self.agent_id).encode(\u0027ascii\u0027)"},{"line_number":144,"context_line":"        self.coordinator \u003d coordination.get_coordinator("},{"line_number":145,"context_line":"            cfg.CONF.coordination.backend_url, member_id)"},{"line_number":146,"context_line":"        self.coordinator.start()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_67da9219","line":143,"range":{"start_line":143,"start_character":50,"end_line":143,"end_character":65},"updated":"2016-08-12 08:52:54.000000000","message":"suggest using six.b()","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def _start(self):"},{"line_number":142,"context_line":"        # NOTE(gouthamr): Tooz expects member_id as a byte string."},{"line_number":143,"context_line":"        member_id \u003d (self.prefix + self.agent_id).encode(\u0027ascii\u0027)"},{"line_number":144,"context_line":"        self.coordinator \u003d coordination.get_coordinator("},{"line_number":145,"context_line":"            cfg.CONF.coordination.backend_url, member_id)"},{"line_number":146,"context_line":"        self.coordinator.start()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_946612b9","line":143,"range":{"start_line":143,"start_character":50,"end_line":143,"end_character":65},"in_reply_to":"9ad45d7e_67da9219","updated":"2016-11-21 11:11:41.000000000","message":"encode works the same in py2x and py34, why bother?","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"4528459529b8bf3f2cba0f25e68e3f896b0028b8","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _heartbeat(self):"},{"line_number":149,"context_line":"        try:"},{"line_number":150,"context_line":"            self.coordinator.heartbeat()"},{"line_number":151,"context_line":"            return True"},{"line_number":152,"context_line":"        except coordination.ToozConnectionError:"},{"line_number":153,"context_line":"            LOG.exception(_LE(\u0027Connection error while sending a heartbeat \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_c547cd49","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":40},"updated":"2016-08-12 20:37:40.000000000","message":"I got this patch working with both file locks and Zookeeper, but I don\u0027t see regular heartbeats.","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _heartbeat(self):"},{"line_number":149,"context_line":"        try:"},{"line_number":150,"context_line":"            self.coordinator.heartbeat()"},{"line_number":151,"context_line":"            return True"},{"line_number":152,"context_line":"        except coordination.ToozConnectionError:"},{"line_number":153,"context_line":"            LOG.exception(_LE(\u0027Connection error while sending a heartbeat \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_80f15798","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":40},"in_reply_to":"9ad45d7e_c547cd49","updated":"2016-11-21 11:11:41.000000000","message":"I fixed some issues around the green threads running out of memory. That\u0027s the prime issue with mixing raw thread pool threads and eventlet.. We fail to inherit all the scheduling sauce added in the layers on top. I switched this to using FixedIntervalLoopingCall. Would appreciate your tests on that change..\n\nI used something like this to test it:\n\nimport os\ndef touch(path):\n    with open(path, \u0027a\u0027):\n        os.utime(path, None)\n\n\nAbove this heartbeat call, I inserted some logs and:\n\n touch(\u0027/home/stack/scratch/\u0027+str(uuid.uuid4())\n\nSince we\u0027re heartbeating for every second by default, we quickly fill up logs and create too many files.","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    def _heartbeat(self):"},{"line_number":149,"context_line":"        try:"},{"line_number":150,"context_line":"            self.coordinator.heartbeat()"},{"line_number":151,"context_line":"            return True"},{"line_number":152,"context_line":"        except coordination.ToozConnectionError:"},{"line_number":153,"context_line":"            LOG.exception(_LE(\u0027Connection error while sending a heartbeat \u0027"},{"line_number":154,"context_line":"                              \u0027to coordination backend.\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_c70ffe86","line":151,"updated":"2016-08-12 08:52:54.000000000","message":"this return result is never referred, maybe could remove?","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    def _heartbeat(self):"},{"line_number":149,"context_line":"        try:"},{"line_number":150,"context_line":"            self.coordinator.heartbeat()"},{"line_number":151,"context_line":"            return True"},{"line_number":152,"context_line":"        except coordination.ToozConnectionError:"},{"line_number":153,"context_line":"            LOG.exception(_LE(\u0027Connection error while sending a heartbeat \u0027"},{"line_number":154,"context_line":"                              \u0027to coordination backend.\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_f40d86e8","line":151,"in_reply_to":"9ad45d7e_c70ffe86","updated":"2016-11-21 11:11:41.000000000","message":"Good catch, was used in a previous version where we were using eventlet","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    ensures that only one process at a time will execute code in context."},{"line_number":196,"context_line":"    Lock name can be formatted using Python format string syntax::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        Lock(\u0027foo-{share.id}, {\u0027share\u0027: ...,})"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    Available field names are keys of lock_data."},{"line_number":201,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_0a363be7","line":198,"range":{"start_line":198,"start_character":18,"end_line":198,"end_character":28},"updated":"2016-08-12 08:52:54.000000000","message":"{share}\u0027","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":195,"context_line":"    ensures that only one process at a time will execute code in context."},{"line_number":196,"context_line":"    Lock name can be formatted using Python format string syntax::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        Lock(\u0027foo-{share.id}, {\u0027share\u0027: ...,})"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    Available field names are keys of lock_data."},{"line_number":201,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_2f2967e6","line":198,"range":{"start_line":198,"start_character":18,"end_line":198,"end_character":28},"in_reply_to":"9ad45d7e_0a363be7","updated":"2016-11-21 11:11:41.000000000","message":"Done","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        The behavior of releasing a lock which was not acquired in the first"},{"line_number":230,"context_line":"        place is undefined."},{"line_number":231,"context_line":"        :return: returns true if released (false if not)"},{"line_number":232,"context_line":"        :rtype: bool"},{"line_number":233,"context_line":"        \"\"\""},{"line_number":234,"context_line":"        self.lock.release()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_4abaf30b","line":231,"updated":"2016-08-12 08:52:54.000000000","message":"this method has no return value.","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        The behavior of releasing a lock which was not acquired in the first"},{"line_number":230,"context_line":"        place is undefined."},{"line_number":231,"context_line":"        :return: returns true if released (false if not)"},{"line_number":232,"context_line":"        :rtype: bool"},{"line_number":233,"context_line":"        \"\"\""},{"line_number":234,"context_line":"        self.lock.release()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_740256b5","line":231,"in_reply_to":"9ad45d7e_4abaf30b","updated":"2016-11-21 11:11:41.000000000","message":"Done","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"448c3b3cf3b4b930de3a71f4c30089bc73bbc74d","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            If False, raises exception when not acquired. Otherwise,"},{"line_number":243,"context_line":"            the value is used as a timeout value and if lock is not acquired"},{"line_number":244,"context_line":"            after this number of seconds exception is raised."},{"line_number":245,"context_line":"    :param coordinator: Coordinator class to use when creating lock."},{"line_number":246,"context_line":"        Defaults to the global coordinator."},{"line_number":247,"context_line":"    :raises tooz.coordination.LockAcquireFailed: if lock is not acquired"},{"line_number":248,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad45d7e_db42380e","line":245,"range":{"start_line":245,"start_character":36,"end_line":245,"end_character":41},"updated":"2016-08-12 08:52:54.000000000","message":"object","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3440ea24e9ef2b893e16711e83d746361fc949da","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            If False, raises exception when not acquired. Otherwise,"},{"line_number":243,"context_line":"            the value is used as a timeout value and if lock is not acquired"},{"line_number":244,"context_line":"            after this number of seconds exception is raised."},{"line_number":245,"context_line":"    :param coordinator: Coordinator class to use when creating lock."},{"line_number":246,"context_line":"        Defaults to the global coordinator."},{"line_number":247,"context_line":"    :raises tooz.coordination.LockAcquireFailed: if lock is not acquired"},{"line_number":248,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a77a97e_b42eae40","line":245,"range":{"start_line":245,"start_character":36,"end_line":245,"end_character":41},"in_reply_to":"9ad45d7e_db42380e","updated":"2016-11-21 11:11:41.000000000","message":"Done","commit_id":"c59ab3a60b2eac7d338e197bbeb6059891a6229b"}],"manila/service.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"76123b482f08f2d897da19f9b85c7b94777ddc1f","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            except Exception:"},{"line_number":221,"context_line":"                LOG.exception(_LE(\"Unable to stop the Tooz Locking \""},{"line_number":222,"context_line":"                                  \"Coordinator.\"))"},{"line_number":223,"context_line":"                pass"},{"line_number":224,"context_line":"        self.timers \u003d []"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        super(Service, self).stop()"}],"source_content_type":"text/x-python","patch_set":11,"id":"da4df55a_3a608ece","line":223,"updated":"2016-12-22 21:36:01.000000000","message":"No need to say \"pass\".","commit_id":"8543df8b5c4f926e6b7e94978653727e42032eb8"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"07bc976daf2803befba788c18b349cf8e90d82bc","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self.periodic_fuzzy_delay \u003d periodic_fuzzy_delay"},{"line_number":94,"context_line":"        self.saved_args, self.saved_kwargs \u003d args, kwargs"},{"line_number":95,"context_line":"        self.timers \u003d []"},{"line_number":96,"context_line":"        self.coordinator \u003d coordination"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def start(self):"},{"line_number":99,"context_line":"        version_string \u003d version.version_string()"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba5201f7_7ecd2130","line":96,"range":{"start_line":96,"start_character":7,"end_line":96,"end_character":39},"updated":"2017-01-06 07:08:59.000000000","message":"this two name are different. why is that?","commit_id":"5f67951e1d7a9924af37fc4606831447e2902b82"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"fc42c1f7ea89d8c9d16f932529ebb006838332e7","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            except Exception:"},{"line_number":221,"context_line":"                LOG.exception(_LE(\"Unable to stop the Tooz Locking \""},{"line_number":222,"context_line":"                                  \"Coordinator.\"))"},{"line_number":223,"context_line":"                pass"},{"line_number":224,"context_line":"        self.timers \u003d []"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        super(Service, self).stop()"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_9db0aa8d","line":223,"updated":"2017-01-19 16:26:48.000000000","message":"Remove \"pass\".","commit_id":"5f67951e1d7a9924af37fc4606831447e2902b82"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b30449db1df9e029bf07c702f6de7165224ba95d","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            except Exception:"},{"line_number":221,"context_line":"                LOG.exception(_LE(\"Unable to stop the Tooz Locking \""},{"line_number":222,"context_line":"                                  \"Coordinator.\"))"},{"line_number":223,"context_line":"                pass"},{"line_number":224,"context_line":"        self.timers \u003d []"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        super(Service, self).stop()"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a3905b3_93209b4b","line":223,"in_reply_to":"5a3905b3_9db0aa8d","updated":"2017-01-19 16:47:45.000000000","message":"Done","commit_id":"5f67951e1d7a9924af37fc4606831447e2902b82"}],"manila/tests/test_coordination.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"741f6bf9d8fcdec79063e3d2222818423669fe9d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        agent \u003d coordination.Coordinator()"},{"line_number":69,"context_line":"        agent.start()"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.assertTrue(self.get_coordinator.called)"},{"line_number":72,"context_line":"        self.assertTrue(crd.start.called)"},{"line_number":73,"context_line":"        self.assertEqual(requires_beating, mock_start_heartbeat.start.called)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def test_coordinator_stop(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"da4df55a_1939f841","line":72,"range":{"start_line":71,"start_character":8,"end_line":72,"end_character":41},"updated":"2016-12-23 15:43:29.000000000","message":"Please, check amount of calls and used arguments for them. Too weak verification.","commit_id":"8543df8b5c4f926e6b7e94978653727e42032eb8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"741f6bf9d8fcdec79063e3d2222818423669fe9d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        self.assertEqual(1, self.get_coordinator.call_count)"},{"line_number":133,"context_line":"        agent._reconnect()"},{"line_number":134,"context_line":"        self.assertEqual(7, self.get_coordinator.call_count)"},{"line_number":135,"context_line":"        agent._heartbeat()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"@mock.patch.object(coordination.LOCK_COORDINATOR, \u0027get_lock\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da4df55a_9902480a","line":135,"range":{"start_line":135,"start_character":8,"end_line":135,"end_character":26},"updated":"2016-12-23 15:43:29.000000000","message":"It looks redundant or something is lost after it.","commit_id":"8543df8b5c4f926e6b7e94978653727e42032eb8"}]}
