)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2f9f53993b997c40c1b078c2c920b62b9adabe52","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Currently we could only solve these problems by restarting cinder-backup"},{"line_number":15,"context_line":"service."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This BP is to provide another mean for administrators to solve these"},{"line_number":18,"context_line":"problems by calling backup reset state API, instead of directly"},{"line_number":19,"context_line":"restarting cinder-backup service."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da9df570_15a162f8","line":17,"updated":"2014-09-23 04:45:33.000000000","message":"mean-\u003emeans","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"},{"author":{"_account_id":8874,"name":"ling-yun","email":"YunlingZeng@hotmail.com","username":"ling-yun"},"change_message_id":"eb7780eca5c17eb927dec1e54b4f947cb211c7eb","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Currently we could only solve these problems by restarting cinder-backup"},{"line_number":15,"context_line":"service."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This BP is to provide another mean for administrators to solve these"},{"line_number":18,"context_line":"problems by calling backup reset state API, instead of directly"},{"line_number":19,"context_line":"restarting cinder-backup service."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da9df570_447339e9","line":17,"in_reply_to":"da9df570_15a162f8","updated":"2014-09-23 07:01:50.000000000","message":"Done.","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"}],"cinderclient/v1/shell.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"830932405182513e855b157ceaec121f62fe6cb9","unresolved":false,"context_lines":[{"line_number":952,"context_line":"    for backup in args.backup:"},{"line_number":953,"context_line":"        try:"},{"line_number":954,"context_line":"            _find_backup(cs, backup).reset_state(args.state)"},{"line_number":955,"context_line":"        except Exception as e:"},{"line_number":956,"context_line":"            failure_count +\u003d 1"},{"line_number":957,"context_line":"            msg \u003d \"Reset state for backup %s failed: %s\" % (backup, e)"},{"line_number":958,"context_line":"            if not single:"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_e0d32a37","line":955,"updated":"2015-03-30 19:21:38.000000000","message":"Could we catch less general exception here?","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bb47c30daaba89e201a411d0a8a843cd2bf1bca8","unresolved":false,"context_lines":[{"line_number":952,"context_line":"    for backup in args.backup:"},{"line_number":953,"context_line":"        try:"},{"line_number":954,"context_line":"            _find_backup(cs, backup).reset_state(args.state)"},{"line_number":955,"context_line":"        except Exception as e:"},{"line_number":956,"context_line":"            failure_count +\u003d 1"},{"line_number":957,"context_line":"            msg \u003d \"Reset state for backup %s failed: %s\" % (backup, e)"},{"line_number":958,"context_line":"            if not single:"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_229a2764","line":955,"in_reply_to":"da9b358b_e0d32a37","updated":"2015-03-31 06:54:17.000000000","message":"This is how it\u0027s done in reset-state for volumes, but while changing that I\u0027ve found an issue with unit tests. So - good catch! :)","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"}],"cinderclient/v1/volume_backups.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"830932405182513e855b157ceaec121f62fe6cb9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    def reset_state(self, backup, state):"},{"line_number":83,"context_line":"        \"\"\"Update the specified backup with the provided state."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        :param backup: The :class:`VolumeBackup` to reset state."},{"line_number":86,"context_line":"        \"\"\""},{"line_number":87,"context_line":"        return self._action(\u0027os-reset_status\u0027, backup, {\u0027status\u0027: state})"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_c0302659","line":85,"updated":"2015-03-30 19:21:38.000000000","message":"Please, add \u0027state\u0027 param to the docstring","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bb47c30daaba89e201a411d0a8a843cd2bf1bca8","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    def reset_state(self, backup, state):"},{"line_number":83,"context_line":"        \"\"\"Update the specified backup with the provided state."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        :param backup: The :class:`VolumeBackup` to reset state."},{"line_number":86,"context_line":"        \"\"\""},{"line_number":87,"context_line":"        return self._action(\u0027os-reset_status\u0027, backup, {\u0027status\u0027: state})"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_e2a43fa7","line":85,"in_reply_to":"da9b358b_c0302659","updated":"2015-03-31 06:54:17.000000000","message":"Done","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"}],"cinderclient/v2/shell.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2f9f53993b997c40c1b078c2c920b62b9adabe52","unresolved":false,"context_lines":[{"line_number":680,"context_line":"@utils.arg(\u0027--state\u0027, metavar\u003d\u0027\u003cstate\u003e\u0027,"},{"line_number":681,"context_line":"           default\u003d\u0027available\u0027,"},{"line_number":682,"context_line":"           help\u003d(\u0027The state to assign to the backup. Valid values are \u0027"},{"line_number":683,"context_line":"                 \u0027\"available,\" or \"error,\"\u0027"},{"line_number":684,"context_line":"                 \u0027Default is \"available.\"\u0027))"},{"line_number":685,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":686,"context_line":"def do_backup_reset_state(cs, args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9df570_55d04a50","line":683,"updated":"2014-09-23 04:45:33.000000000","message":"Please remove comma after available and error. Add a period and space at the end.","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"},{"author":{"_account_id":8874,"name":"ling-yun","email":"YunlingZeng@hotmail.com","username":"ling-yun"},"change_message_id":"eb7780eca5c17eb927dec1e54b4f947cb211c7eb","unresolved":false,"context_lines":[{"line_number":680,"context_line":"@utils.arg(\u0027--state\u0027, metavar\u003d\u0027\u003cstate\u003e\u0027,"},{"line_number":681,"context_line":"           default\u003d\u0027available\u0027,"},{"line_number":682,"context_line":"           help\u003d(\u0027The state to assign to the backup. Valid values are \u0027"},{"line_number":683,"context_line":"                 \u0027\"available,\" or \"error,\"\u0027"},{"line_number":684,"context_line":"                 \u0027Default is \"available.\"\u0027))"},{"line_number":685,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":686,"context_line":"def do_backup_reset_state(cs, args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9df570_c4f9e94e","line":683,"in_reply_to":"da9df570_55d04a50","updated":"2014-09-23 07:01:50.000000000","message":"Done.","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2f9f53993b997c40c1b078c2c920b62b9adabe52","unresolved":false,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"    if failure_count \u003d\u003d len(args.backup):"},{"line_number":702,"context_line":"        if not single:"},{"line_number":703,"context_line":"            msg \u003d (\"Unable to reset the state for any of the the specified \""},{"line_number":704,"context_line":"                   \"backups.\")"},{"line_number":705,"context_line":"        raise exceptions.CommandError(msg)"},{"line_number":706,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da9df570_d5e43a3d","line":703,"updated":"2014-09-23 04:45:33.000000000","message":"Remove duplicate \"the\".","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"},{"author":{"_account_id":8874,"name":"ling-yun","email":"YunlingZeng@hotmail.com","username":"ling-yun"},"change_message_id":"eb7780eca5c17eb927dec1e54b4f947cb211c7eb","unresolved":false,"context_lines":[{"line_number":700,"context_line":""},{"line_number":701,"context_line":"    if failure_count \u003d\u003d len(args.backup):"},{"line_number":702,"context_line":"        if not single:"},{"line_number":703,"context_line":"            msg \u003d (\"Unable to reset the state for any of the the specified \""},{"line_number":704,"context_line":"                   \"backups.\")"},{"line_number":705,"context_line":"        raise exceptions.CommandError(msg)"},{"line_number":706,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da9df570_e4950de5","line":703,"in_reply_to":"da9df570_d5e43a3d","updated":"2014-09-23 07:01:50.000000000","message":"Done.","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"830932405182513e855b157ceaec121f62fe6cb9","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"    for backup in args.backup:"},{"line_number":1236,"context_line":"        try:"},{"line_number":1237,"context_line":"            _find_backup(cs, backup).reset_state(args.state)"},{"line_number":1238,"context_line":"        except Exception as e:"},{"line_number":1239,"context_line":"            failure_count +\u003d 1"},{"line_number":1240,"context_line":"            msg \u003d \"Reset state for backup %s failed: %s\" % (backup, e)"},{"line_number":1241,"context_line":"            if not single:"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_204a32c6","line":1238,"updated":"2015-03-30 19:21:38.000000000","message":"Same as for v1","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bb47c30daaba89e201a411d0a8a843cd2bf1bca8","unresolved":false,"context_lines":[{"line_number":1235,"context_line":"    for backup in args.backup:"},{"line_number":1236,"context_line":"        try:"},{"line_number":1237,"context_line":"            _find_backup(cs, backup).reset_state(args.state)"},{"line_number":1238,"context_line":"        except Exception as e:"},{"line_number":1239,"context_line":"            failure_count +\u003d 1"},{"line_number":1240,"context_line":"            msg \u003d \"Reset state for backup %s failed: %s\" % (backup, e)"},{"line_number":1241,"context_line":"            if not single:"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_a2ae3783","line":1238,"in_reply_to":"da9b358b_204a32c6","updated":"2015-03-31 06:54:17.000000000","message":"Done","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c34bc695ded7e4d2581a1e864d400c55fbcb001b","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"@utils.arg(\u0027backup\u0027, metavar\u003d\u0027\u003cbackup\u003e\u0027, nargs\u003d\u0027+\u0027,"},{"line_number":1220,"context_line":"           help\u003d\u0027Name or ID of backup to modify.\u0027)"},{"line_number":1221,"context_line":"@utils.arg(\u0027--state\u0027, metavar\u003d\u0027\u003cstate\u003e\u0027,"},{"line_number":1222,"context_line":"           default\u003d\u0027available\u0027,"},{"line_number":1223,"context_line":"           help\u003d(\u0027The state to assign to the backup. Valid values are \u0027"},{"line_number":1224,"context_line":"                 \u0027\"available\" and \"error\". NOTE: This command simply changes \u0027"},{"line_number":1225,"context_line":"                 \u0027the state of the Backup in the DataBase with no regard \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9aa53dc9_07a8681e","line":1222,"updated":"2015-04-07 15:01:36.000000000","message":"IMO defaulting to \"available\" is too risky, since it will let people unknowingly mark failed backups as \"good\" backups.\n\nAs this is a new command, we should really default to \"error\" to be safe, or force an explicit choice.","commit_id":"1f230aedb6ed06d5284a38c41ec83d62a85a6230"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c75f27ee080ed873c07080eae2a113c573608f4a","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"@utils.arg(\u0027backup\u0027, metavar\u003d\u0027\u003cbackup\u003e\u0027, nargs\u003d\u0027+\u0027,"},{"line_number":1220,"context_line":"           help\u003d\u0027Name or ID of backup to modify.\u0027)"},{"line_number":1221,"context_line":"@utils.arg(\u0027--state\u0027, metavar\u003d\u0027\u003cstate\u003e\u0027,"},{"line_number":1222,"context_line":"           default\u003d\u0027available\u0027,"},{"line_number":1223,"context_line":"           help\u003d(\u0027The state to assign to the backup. Valid values are \u0027"},{"line_number":1224,"context_line":"                 \u0027\"available\" and \"error\". NOTE: This command simply changes \u0027"},{"line_number":1225,"context_line":"                 \u0027the state of the Backup in the DataBase with no regard \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9aa53dc9_c294ae38","line":1222,"in_reply_to":"9aa53dc9_07a8681e","updated":"2015-04-07 15:07:22.000000000","message":"good point","commit_id":"1f230aedb6ed06d5284a38c41ec83d62a85a6230"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"490a0cc482a10bf455dc67b851e6ac36f2bc6e84","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"@utils.arg(\u0027backup\u0027, metavar\u003d\u0027\u003cbackup\u003e\u0027, nargs\u003d\u0027+\u0027,"},{"line_number":1220,"context_line":"           help\u003d\u0027Name or ID of backup to modify.\u0027)"},{"line_number":1221,"context_line":"@utils.arg(\u0027--state\u0027, metavar\u003d\u0027\u003cstate\u003e\u0027,"},{"line_number":1222,"context_line":"           default\u003d\u0027available\u0027,"},{"line_number":1223,"context_line":"           help\u003d(\u0027The state to assign to the backup. Valid values are \u0027"},{"line_number":1224,"context_line":"                 \u0027\"available\" and \"error\". NOTE: This command simply changes \u0027"},{"line_number":1225,"context_line":"                 \u0027the state of the Backup in the DataBase with no regard \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9aa53dc9_74ed6024","line":1222,"in_reply_to":"9aa53dc9_c294ae38","updated":"2015-04-08 18:36:43.000000000","message":"The backup service won\u0027t let you force to available unless the backup passes verify AFACT: see  https://review.openstack.org/#/c/116849/ - that was certainly the intent at the time","commit_id":"1f230aedb6ed06d5284a38c41ec83d62a85a6230"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c34bc695ded7e4d2581a1e864d400c55fbcb001b","unresolved":false,"context_lines":[{"line_number":1222,"context_line":"           default\u003d\u0027available\u0027,"},{"line_number":1223,"context_line":"           help\u003d(\u0027The state to assign to the backup. Valid values are \u0027"},{"line_number":1224,"context_line":"                 \u0027\"available\" and \"error\". NOTE: This command simply changes \u0027"},{"line_number":1225,"context_line":"                 \u0027the state of the Backup in the DataBase with no regard \u0027"},{"line_number":1226,"context_line":"                 \u0027to actual status, exercise caution when using. \u0027"},{"line_number":1227,"context_line":"                 \u0027Default\u003davailable.\u0027))"},{"line_number":1228,"context_line":"@utils.service_type(\u0027volumev2\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"9aa53dc9_e718e486","line":1225,"updated":"2015-04-07 15:01:36.000000000","message":"\"database\"","commit_id":"1f230aedb6ed06d5284a38c41ec83d62a85a6230"}],"cinderclient/v2/volume_backups.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2f9f53993b997c40c1b078c2c920b62b9adabe52","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        return self.manager.delete(self)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def reset_state(self, state):"},{"line_number":33,"context_line":"        \"\"\"Update the backup with the privided state.\"\"\""},{"line_number":34,"context_line":"        self.manager.reset_state(self, state)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da9df570_f55e9ee8","line":33,"updated":"2014-09-23 04:45:33.000000000","message":"provided","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"},{"author":{"_account_id":8874,"name":"ling-yun","email":"YunlingZeng@hotmail.com","username":"ling-yun"},"change_message_id":"eb7780eca5c17eb927dec1e54b4f947cb211c7eb","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        return self.manager.delete(self)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def reset_state(self, state):"},{"line_number":33,"context_line":"        \"\"\"Update the backup with the privided state.\"\"\""},{"line_number":34,"context_line":"        self.manager.reset_state(self, state)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da9df570_c4a7294e","line":33,"in_reply_to":"da9df570_f55e9ee8","updated":"2014-09-23 07:01:50.000000000","message":"Done.","commit_id":"2b96ec80ca3e77dec3751ea568ea1770fac52307"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"830932405182513e855b157ceaec121f62fe6cb9","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        \"\"\"Update the specified backup with the provided state."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        :param backup: The :class:`VolumeBackup` to reset state."},{"line_number":109,"context_line":"        \"\"\""},{"line_number":110,"context_line":"        return self._action(\u0027os-reset_status\u0027, backup, {\u0027status\u0027: state})"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _action(self, action, backup, info\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_a00c0295","line":109,"updated":"2015-03-30 19:21:38.000000000","message":"Same as for v1","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"bb47c30daaba89e201a411d0a8a843cd2bf1bca8","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        \"\"\"Update the specified backup with the provided state."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        :param backup: The :class:`VolumeBackup` to reset state."},{"line_number":109,"context_line":"        \"\"\""},{"line_number":110,"context_line":"        return self._action(\u0027os-reset_status\u0027, backup, {\u0027status\u0027: state})"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def _action(self, action, backup, info\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da9b358b_82a9f37d","line":109,"in_reply_to":"da9b358b_a00c0295","updated":"2015-03-31 06:54:17.000000000","message":"Done","commit_id":"556b19754c12f5ec9b984079a53e63dd3741c05b"}]}
