)]}'
{"smaug/services/protection/flows/delete_checkpoint.py":[{"author":{"_account_id":20883,"name":"Yuval Brik","email":"yuval@brik.org.il","username":"yuvalbr"},"change_message_id":"628769f0f331873b88c0001401efd74b8db33d44","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                 self._checkpoint.id)"},{"line_number":41,"context_line":"        sync_status \u003d loopingcall.FixedIntervalLoopingCall("},{"line_number":42,"context_line":"            self._sync_status, self._checkpoint, self._status_getters)"},{"line_number":43,"context_line":"        sync_status.start(interval\u003dCONF.sync_status_interval)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _sync_status(self, checkpoint, status_getters):"},{"line_number":46,"context_line":"        status \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_a57b5a27","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":61},"updated":"2016-05-31 10:10:38.000000000","message":"missing wait for the looping call:\nsync_status.wait()","commit_id":"f44d7d5920b1f058cd60733a5ae17e7b5afbd086"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"f2d0e2cee7e6c002cfab7f869badc91e50002070","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                 self._checkpoint.id)"},{"line_number":41,"context_line":"        sync_status \u003d loopingcall.FixedIntervalLoopingCall("},{"line_number":42,"context_line":"            self._sync_status, self._checkpoint, self._status_getters)"},{"line_number":43,"context_line":"        sync_status.start(interval\u003dCONF.sync_status_interval)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _sync_status(self, checkpoint, status_getters):"},{"line_number":46,"context_line":"        status \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_b7b7e638","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":61},"in_reply_to":"9abb7d3a_a57b5a27","updated":"2016-06-08 06:42:16.000000000","message":"hi, yuval. I do a delete checkpoint action test about adding sync_status.wait().  If the task can\u0027t be completed immediately, the rpcclient of api service will failed because of time out.\nMessagingTimeout: Timed out waiting for a reply to message\nYou know the sync_status may take several minutes if we have some backups which need be deleted.\nSo I think the update of status should run in background. the task don\u0027t need wait for it.","commit_id":"f44d7d5920b1f058cd60733a5ae17e7b5afbd086"}],"smaug/services/protection/manager.py":[{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"6429c0407fec1f70b943399e24f70c0c70741e25","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            constants.CHECKPOINT_STATUS_ERROR,"},{"line_number":166,"context_line":"            constants.CHECKPOINT_STATUS_PROTECTING"},{"line_number":167,"context_line":"        ]:"},{"line_number":168,"context_line":"            raise exception.CheckpointNotAvailable("},{"line_number":169,"context_line":"                checkpoint_id\u003dcheckpoint_id)"},{"line_number":170,"context_line":"        checkpoint.status \u003d constants.CHECKPOINT_STATUS_DELETING"},{"line_number":171,"context_line":"        checkpoint.commit()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_f63208f1","line":168,"updated":"2016-06-01 01:26:33.000000000","message":"why error status checkpoint is not delete-able?","commit_id":"f44d7d5920b1f058cd60733a5ae17e7b5afbd086"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"ebf0cae9db27b4a7e0dcd46f12713443c9eaeb5d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            constants.CHECKPOINT_STATUS_ERROR,"},{"line_number":166,"context_line":"            constants.CHECKPOINT_STATUS_PROTECTING"},{"line_number":167,"context_line":"        ]:"},{"line_number":168,"context_line":"            raise exception.CheckpointNotAvailable("},{"line_number":169,"context_line":"                checkpoint_id\u003dcheckpoint_id)"},{"line_number":170,"context_line":"        checkpoint.status \u003d constants.CHECKPOINT_STATUS_DELETING"},{"line_number":171,"context_line":"        checkpoint.commit()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_648c5080","line":168,"in_reply_to":"9abb7d3a_f63208f1","updated":"2016-06-02 09:52:27.000000000","message":"Thanks. I will add a new exception type.","commit_id":"f44d7d5920b1f058cd60733a5ae17e7b5afbd086"}],"smaug/services/protection/protection_plugins/volume/cinder_protection_plugin.py":[{"author":{"_account_id":19346,"name":"yinwei","email":"yinweiishere@icloud.com","username":"yinwei"},"change_message_id":"6429c0407fec1f70b943399e24f70c0c70741e25","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                    self.protection_resource_map.pop(resource_id)"},{"line_number":158,"context_line":"                else:"},{"line_number":159,"context_line":"                    continue"},{"line_number":160,"context_line":"            except Exception:"},{"line_number":161,"context_line":"                if operation \u003d\u003d \"delete\":"},{"line_number":162,"context_line":"                    bank_section.update_object("},{"line_number":163,"context_line":"                        \"status\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_16898c75","line":160,"updated":"2016-06-01 01:26:33.000000000","message":"maybe not related to this patch, it seems we need check the concrete exception type.  Not all exceptions hit when operation \u003d\u003d delete means delete finishes. Say, connect to bank failure should be handled as deletion failure.","commit_id":"f44d7d5920b1f058cd60733a5ae17e7b5afbd086"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"ebf0cae9db27b4a7e0dcd46f12713443c9eaeb5d","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                    self.protection_resource_map.pop(resource_id)"},{"line_number":158,"context_line":"                else:"},{"line_number":159,"context_line":"                    continue"},{"line_number":160,"context_line":"            except Exception:"},{"line_number":161,"context_line":"                if operation \u003d\u003d \"delete\":"},{"line_number":162,"context_line":"                    bank_section.update_object("},{"line_number":163,"context_line":"                        \"status\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_8475f433","line":160,"in_reply_to":"9abb7d3a_16898c75","updated":"2016-06-02 09:52:27.000000000","message":"Thanks. I will think about this exception processing.","commit_id":"f44d7d5920b1f058cd60733a5ae17e7b5afbd086"}]}
