)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f4cd6e4a8a2bed304b3b1b2870a336e696692d69","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Make cinderclient support snapshot-force-delete"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Cinderclient doesn\u0027t support snapshot-force-delete, which"},{"line_number":10,"context_line":"has supported by cinder-api, so add it to cinderclient."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ia0280c24f4b9978da3af88ceb3fe556a82792c10"},{"line_number":13,"context_line":"Closes-Bug: #1418353"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a80dd14_7640825f","line":10,"updated":"2015-03-19 13:37:22.000000000","message":"s/has/is","commit_id":"d423b3cc78f5d1c8173394310c6423e7911b69bb"}],"cinderclient/tests/v1/test_shell.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"4da33444c75c04f59f66fca5693f96db54e7692a","unresolved":false,"context_lines":[{"line_number":393,"context_line":"        self.run_command(\u0027snapshot-delete 1234\u0027)"},{"line_number":394,"context_line":"        self.assert_called(\u0027DELETE\u0027, \u0027/snapshots/1234\u0027)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    def test_snapshot_force_delete(self):"},{"line_number":397,"context_line":"        self.run_command(\u0027snapshot-force-delete 1234\u0027)"},{"line_number":398,"context_line":"        body \u003d {\u0027os-force_delete\u0027: None}"},{"line_number":399,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/snapshots/1234/action\u0027, body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_f607ee7f","line":396,"updated":"2015-02-05 12:27:03.000000000","message":"A test with multiple snapshots would be nice.","commit_id":"d129e743a76d22215c0f1aab51906ba7cca20f8b"}],"cinderclient/tests/v2/test_shell.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"4da33444c75c04f59f66fca5693f96db54e7692a","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        self.run_command(\u0027snapshot-delete 1234\u0027)"},{"line_number":520,"context_line":"        self.assert_called(\u0027DELETE\u0027, \u0027/snapshots/1234\u0027)"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    def test_snapshot_force_delete(self):"},{"line_number":523,"context_line":"        self.run_command(\u0027snapshot-force-delete 1234\u0027)"},{"line_number":524,"context_line":"        body \u003d {\u0027os-force_delete\u0027: None}"},{"line_number":525,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/snapshots/1234/action\u0027, body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_160ba28e","line":522,"updated":"2015-02-05 12:27:03.000000000","message":"Same as V1, test with multiple snapshots would be also needed.","commit_id":"d129e743a76d22215c0f1aab51906ba7cca20f8b"}],"cinderclient/v1/shell.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"4da33444c75c04f59f66fca5693f96db54e7692a","unresolved":false,"context_lines":[{"line_number":529,"context_line":"            _find_volume_snapshot(cs, snapshot).force_delete()"},{"line_number":530,"context_line":"        except Exception as e:"},{"line_number":531,"context_line":"            failure_count +\u003d 1"},{"line_number":532,"context_line":"            print(\"Delete for snapshot %s failed: %s\" % (snapshot, e))"},{"line_number":533,"context_line":"    if failure_count \u003d\u003d len(args.snapshot):"},{"line_number":534,"context_line":"        raise exceptions.CommandError(\"Unable to force delete any of the \""},{"line_number":535,"context_line":"                                      \"specified smapshot.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_36dd0643","line":532,"updated":"2015-02-05 12:27:03.000000000","message":"I think you should change \"Delete\" to \"Force delete\".","commit_id":"d129e743a76d22215c0f1aab51906ba7cca20f8b"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"449343cc80e799eb855c7cd5ab551dd8efec7399","unresolved":false,"context_lines":[{"line_number":531,"context_line":"            failure_count +\u003d 1"},{"line_number":532,"context_line":"            print(\"Force delete for snapshot %s failed: %s\" % (snapshot, e))"},{"line_number":533,"context_line":"    if failure_count \u003d\u003d len(args.snapshot):"},{"line_number":534,"context_line":"        raise exceptions.CommandError(\"Unable to force delete any of the \""},{"line_number":535,"context_line":"                                      \"specified smapshot.\")"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_fd6df4cc","line":534,"updated":"2015-02-05 21:32:38.000000000","message":"Can you add UT to verify that this exception is raised correctly?","commit_id":"07b6c81fe80f5c9029ae52d6d1e2304eef581165"},{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"4497b18a24b69a0092c3137f952ffaf129b23d7d","unresolved":false,"context_lines":[{"line_number":532,"context_line":"            print(\"Force delete for snapshot %s failed: %s\" % (snapshot, e))"},{"line_number":533,"context_line":"    if failure_count \u003d\u003d len(args.snapshot):"},{"line_number":534,"context_line":"        raise exceptions.CommandError(\"Unable to force delete any of the \""},{"line_number":535,"context_line":"                                      \"specified smapshot.\")"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"@utils.arg(\u0027snapshot\u0027, metavar\u003d\u0027\u003csnapshot\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_fbb9db79","line":535,"updated":"2015-02-24 12:51:32.000000000","message":"Typo: \"specified snapshots.\"","commit_id":"258d34389ae2d9e931bf6dc0af648ab6e0f99807"}],"cinderclient/v1/volume_snapshots.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1c86a9c3f6542687f6a5bb4047a2bf37b43c78ba","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def force_delete(self, snapshot):"},{"line_number":153,"context_line":"        \"\"\""},{"line_number":154,"context_line":"        Update the display_name or display_description for a snapshot."},{"line_number":155,"context_line":"        :param snapshot: The :class:`Snapshot` to update."},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        return self._action(\u0027os-force_delete\u0027, base.getid(snapshot))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_d023dba4","line":154,"updated":"2015-02-25 13:21:05.000000000","message":"Copy-paste from the \u0027update\u0027 method","commit_id":"258d34389ae2d9e931bf6dc0af648ab6e0f99807"}],"cinderclient/v2/shell.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"4da33444c75c04f59f66fca5693f96db54e7692a","unresolved":false,"context_lines":[{"line_number":649,"context_line":"           \u0027Separate multiple snapshots with a space.\u0027)"},{"line_number":650,"context_line":"@utils.service_type(\u0027volumev2\u0027)"},{"line_number":651,"context_line":"def do_snapshot_force_delete(cs, args):"},{"line_number":652,"context_line":"    \"\"\"Attempts force-delete of volume, regardless of state.\"\"\""},{"line_number":653,"context_line":"    failure_count \u003d 0"},{"line_number":654,"context_line":"    for snapshot in args.snapshot:"},{"line_number":655,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_967a3222","line":652,"updated":"2015-02-05 12:27:03.000000000","message":"s/volume/snapshot","commit_id":"d129e743a76d22215c0f1aab51906ba7cca20f8b"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"4da33444c75c04f59f66fca5693f96db54e7692a","unresolved":false,"context_lines":[{"line_number":656,"context_line":"            _find_volume_snapshot(cs, snapshot).force_delete()"},{"line_number":657,"context_line":"        except Exception as e:"},{"line_number":658,"context_line":"            failure_count +\u003d 1"},{"line_number":659,"context_line":"            print(\"Delete for snapshot %s failed: %s\" % (snapshot, e))"},{"line_number":660,"context_line":"    if failure_count \u003d\u003d len(args.snapshot):"},{"line_number":661,"context_line":"        raise exceptions.CommandError(\"Unable to force delete any of the \""},{"line_number":662,"context_line":"                                      \"specified smapshot.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_9693125a","line":659,"updated":"2015-02-05 12:27:03.000000000","message":"Same as in v1 - Delete to \"Force delete\".","commit_id":"d129e743a76d22215c0f1aab51906ba7cca20f8b"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"449343cc80e799eb855c7cd5ab551dd8efec7399","unresolved":false,"context_lines":[{"line_number":658,"context_line":"            failure_count +\u003d 1"},{"line_number":659,"context_line":"            print(\"Force delete for snapshot %s failed: %s\" % (snapshot, e))"},{"line_number":660,"context_line":"    if failure_count \u003d\u003d len(args.snapshot):"},{"line_number":661,"context_line":"        raise exceptions.CommandError(\"Unable to force delete any of the \""},{"line_number":662,"context_line":"                                      \"specified smapshot.\")"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_7d6104d2","line":661,"updated":"2015-02-05 21:32:38.000000000","message":"Can you add UT to verify that this exception is raised correctly?","commit_id":"07b6c81fe80f5c9029ae52d6d1e2304eef581165"},{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"4497b18a24b69a0092c3137f952ffaf129b23d7d","unresolved":false,"context_lines":[{"line_number":659,"context_line":"            print(\"Force delete for snapshot %s failed: %s\" % (snapshot, e))"},{"line_number":660,"context_line":"    if failure_count \u003d\u003d len(args.snapshot):"},{"line_number":661,"context_line":"        raise exceptions.CommandError(\"Unable to force delete any of the \""},{"line_number":662,"context_line":"                                      \"specified smapshot.\")"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"@utils.arg(\u0027snapshot\u0027, metavar\u003d\u0027\u003csnapshot\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_9b653f20","line":662,"updated":"2015-02-24 12:51:32.000000000","message":"Typo: \"specified snapshots.\"","commit_id":"258d34389ae2d9e931bf6dc0af648ab6e0f99807"}],"cinderclient/v2/volume_snapshots.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1c86a9c3f6542687f6a5bb4047a2bf37b43c78ba","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def force_delete(self, snapshot):"},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":"        Update the display_name or display_description for a snapshot."},{"line_number":149,"context_line":"        :param snapshot: The :class:`Snapshot` to update."},{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        self._action(\u0027os-force_delete\u0027, base.getid(snapshot))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_1039f3d6","line":148,"updated":"2015-02-25 13:21:05.000000000","message":"Same here","commit_id":"258d34389ae2d9e931bf6dc0af648ab6e0f99807"}]}
