)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"e3d0058dfe86a127bd4d75b76ef0a8553c7f1077","unresolved":false,"context_lines":[{"line_number":10,"context_line":"terminate if the owner of the volume issues command like attach"},{"line_number":11,"context_line":"or detach during the volume migration."},{"line_number":12,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":13,"context_line":"terminated by other commands."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1af86dd1_21ab8b8b","line":13,"updated":"2015-06-12 12:46:21.000000000","message":"See the comment in shell.py to determine if this message needs to be updated.","commit_id":"7145684c0d4bc727e61361877ecf3c8646e227c0"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"2ec1c4a0aab92aad529b46e0c223d7c7f792e735","unresolved":false,"context_lines":[{"line_number":10,"context_line":"terminate if the owner of the volume issues command like attach"},{"line_number":11,"context_line":"or detach during the volume migration."},{"line_number":12,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":13,"context_line":"terminated by other commands."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa32b979_676c5d08","line":13,"in_reply_to":"1af86dd1_21ab8b8b","updated":"2015-06-18 08:23:39.000000000","message":"The message here is OK\u003e\nThx.","commit_id":"7145684c0d4bc727e61361877ecf3c8646e227c0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b3d063f8fa65b6352828eb4626213bf38ddf4794","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change cinderclient according to volume migration improvement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is the related changes according to"},{"line_number":10,"context_line":"Change Ia86421f2d6fce61dcfeb073f8e7b9c9dde517373 and Change"},{"line_number":11,"context_line":"Ib156b6844cb82c0d8f70af8c6199c513644b82a0."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba3cc151_5a5b87f6","line":9,"updated":"2015-07-07 18:40:47.000000000","message":"Not too important now since the other ones have gone through, but if you do another update please move this to the bottom and just denote it using the cross-repo dependency mechanism:\n\nhttp://docs.openstack.org/infra/manual/developers.html#cross-repository-dependencies","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"203025b28b6950466903579c473dce6ae49fe76e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change cinderclient according to volume migration improvement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is the related changes according to"},{"line_number":10,"context_line":"Change Ia86421f2d6fce61dcfeb073f8e7b9c9dde517373 and Change"},{"line_number":11,"context_line":"Ib156b6844cb82c0d8f70af8c6199c513644b82a0."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba3cc151_1acdea84","line":9,"in_reply_to":"ba3cc151_5a5b87f6","updated":"2015-07-08 06:33:28.000000000","message":"Done","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4876978743145d1f011391b2392e53e467edec75","unresolved":false,"context_lines":[{"line_number":13,"context_line":"It proposes the following changes:"},{"line_number":14,"context_line":"* Add the --force flag to cinder migrate"},{"line_number":15,"context_line":"The default value is False, which means the migration is able to"},{"line_number":16,"context_line":"terminate if the owner of the volume issues command like attach"},{"line_number":17,"context_line":"or detach during the volume migration."},{"line_number":18,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":19,"context_line":"terminated by other commands."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba3cc151_664d9171","line":16,"updated":"2015-07-07 21:29:28.000000000","message":"typo command -\u003e commands","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"203025b28b6950466903579c473dce6ae49fe76e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"It proposes the following changes:"},{"line_number":14,"context_line":"* Add the --force flag to cinder migrate"},{"line_number":15,"context_line":"The default value is False, which means the migration is able to"},{"line_number":16,"context_line":"terminate if the owner of the volume issues command like attach"},{"line_number":17,"context_line":"or detach during the volume migration."},{"line_number":18,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":19,"context_line":"terminated by other commands."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba3cc151_bac5de5c","line":16,"in_reply_to":"ba3cc151_664d9171","updated":"2015-07-08 06:33:28.000000000","message":"Done","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4876978743145d1f011391b2392e53e467edec75","unresolved":false,"context_lines":[{"line_number":24,"context_line":"be listed."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Get the volume migration progress for one volume"},{"line_number":27,"context_line":"This is an admin only action, make the admin possible to check"},{"line_number":28,"context_line":"the migration progress."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba3cc151_0664c5e2","line":27,"updated":"2015-07-07 21:29:28.000000000","message":"reword: make the admin possible to check\" -\u003e \"make it possible for the admin to check\"","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"203025b28b6950466903579c473dce6ae49fe76e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"be listed."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Get the volume migration progress for one volume"},{"line_number":27,"context_line":"This is an admin only action, make the admin possible to check"},{"line_number":28,"context_line":"the migration progress."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba3cc151_dac22253","line":27,"in_reply_to":"ba3cc151_0664c5e2","updated":"2015-07-08 06:33:28.000000000","message":"Done","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"9be2b05b8fb0a6952de30433c102c569459a1b0c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch proposes the following changes:"},{"line_number":10,"context_line":"* Add the --force flag to cinder migrate"},{"line_number":11,"context_line":"The default value is False, which means the migration is able to"},{"line_number":12,"context_line":"terminate if the owner of the volume issues commands like attach"},{"line_number":13,"context_line":"or detach during the volume migration."},{"line_number":14,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":15,"context_line":"terminated by other commands."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3a50d1a3_6c766ea5","line":12,"updated":"2015-07-29 12:09:04.000000000","message":"... is aborted if ...","commit_id":"d43eaea652ce383aee9fc0d7eb183d993e07a111"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"9be2b05b8fb0a6952de30433c102c569459a1b0c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"terminate if the owner of the volume issues commands like attach"},{"line_number":13,"context_line":"or detach during the volume migration."},{"line_number":14,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":15,"context_line":"terminated by other commands."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* List migration status for all the volumes"},{"line_number":18,"context_line":"The attribute migration_status will be listed, if the request"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3a50d1a3_ec6a7eb2","line":15,"updated":"2015-07-29 12:09:04.000000000","message":"... will not be aborted ...","commit_id":"d43eaea652ce383aee9fc0d7eb183d993e07a111"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"6a4a092e86be2ef916461b4359a4ee3ed320ea5f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Vincent Hou \u003csbhou@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-28 12:31:04 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Volume status managment for voluem migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch proposes the following changes:"},{"line_number":10,"context_line":"* Add the --lock-volume flag to cinder migrate"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"da20952f_573cc8c7","line":7,"updated":"2015-08-28 08:24:13.000000000","message":"s/managment/management \u0026 s/voluem/volume","commit_id":"f3cab192ae64369878aa7bfc1421d6066c8c2a6b"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"f6342f1ab94b7bc5c1497dc3cb1815243c7ad3f8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Vincent Hou \u003csbhou@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-28 16:24:17 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Volume status managment for volume migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch proposes the following changes:"},{"line_number":10,"context_line":"* Add the --lock-volume flag to cinder migrate"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"da20952f_d761b83a","line":7,"updated":"2015-08-28 08:38:33.000000000","message":"s/managment/management You can check it http://www.oxforddictionaries.com/definition/english/management","commit_id":"d6d13ca54e6bd49f616beb14c4ab58edb2afd409"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"baa2e4fc89bf78819f29e27ac75dd93bad74c90b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":15,"context_line":"aborted by other commands."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* List migration status for all the volumes"},{"line_number":18,"context_line":"The attribute migration_status will be listed, if the request"},{"line_number":19,"context_line":"is issued by an admin. Otherwise, the migration_status will not"},{"line_number":20,"context_line":"be listed."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"da20952f_bf4fd132","line":17,"updated":"2015-08-31 17:19:05.000000000","message":"-1: You don\u0027t mention --migration_status option or the new allowed maintenance status","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"6d2c9b70cc17578bb58d0c061d99fe269053de5d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"If it is set to True, the migration of this volume will not be"},{"line_number":15,"context_line":"aborted by other commands."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* List migration status for all the volumes"},{"line_number":18,"context_line":"The attribute migration_status will be listed, if the request"},{"line_number":19,"context_line":"is issued by an admin. Otherwise, the migration_status will not"},{"line_number":20,"context_line":"be listed."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"da20952f_277082a3","line":17,"in_reply_to":"da20952f_bf4fd132","updated":"2015-09-01 03:45:03.000000000","message":"Done","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"58db2792f84befb3a9b85ebfe4b5fe4b913d9e20","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DocImpact"},{"line_number":23,"context_line":"APIImpact"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Partial-implements: blueprint migration-improvement"},{"line_number":26,"context_line":"Change-Id: I5a1a717d1d08f550b45836d958a51f1f3fba5ced"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"da20952f_a90b2023","line":24,"updated":"2015-08-31 15:54:36.000000000","message":"If you push another patch we should include a cross project dependency with your Cinder patch.","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"6d2c9b70cc17578bb58d0c061d99fe269053de5d","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DocImpact"},{"line_number":23,"context_line":"APIImpact"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Partial-implements: blueprint migration-improvement"},{"line_number":26,"context_line":"Change-Id: I5a1a717d1d08f550b45836d958a51f1f3fba5ced"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"da20952f_c76bc6b5","line":24,"in_reply_to":"da20952f_a90b2023","updated":"2015-09-01 03:45:03.000000000","message":"Done","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"}],"cinderclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"e3d0058dfe86a127bd4d75b76ef0a8553c7f1077","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        expected \u003d {\u0027os-migrate_volume\u0027: {\u0027force_host_copy\u0027: True,"},{"line_number":621,"context_line":"                                          \u0027force\u0027: True,"},{"line_number":622,"context_line":"                                          \u0027host\u0027: \u0027fakehost\u0027}}"},{"line_number":623,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027, body\u003dexpected)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"    def test_snapshot_metadata_set(self):"},{"line_number":626,"context_line":"        self.run_command(\u0027snapshot-metadata 1234 set key1\u003dval1 key2\u003dval2\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1af86dd1_61886323","line":623,"updated":"2015-06-12 12:46:21.000000000","message":"Is there a good way to test the premature termination of the migration here? Or the failure to terminate if the migration is forced?","commit_id":"7145684c0d4bc727e61361877ecf3c8646e227c0"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"9fea802feec19cdb1c0a2d975b78a1969aa2ed13","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        expected \u003d {\u0027os-migrate_volume\u0027: {\u0027force_host_copy\u0027: True,"},{"line_number":621,"context_line":"                                          \u0027force\u0027: True,"},{"line_number":622,"context_line":"                                          \u0027host\u0027: \u0027fakehost\u0027}}"},{"line_number":623,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027, body\u003dexpected)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"    def test_snapshot_metadata_set(self):"},{"line_number":626,"context_line":"        self.run_command(\u0027snapshot-metadata 1234 set key1\u003dval1 key2\u003dval2\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_eb230804","line":623,"in_reply_to":"1af86dd1_61886323","updated":"2015-06-15 02:13:39.000000000","message":"I plan to add this kind of tests into tempest. I think it is more meaningful there.","commit_id":"7145684c0d4bc727e61361877ecf3c8646e227c0"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4876978743145d1f011391b2392e53e467edec75","unresolved":false,"context_lines":[{"line_number":691,"context_line":"                                          \u0027host\u0027: \u0027fakehost\u0027}}"},{"line_number":692,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027, body\u003dexpected)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    def test_migrate_volume_bool_force(self):"},{"line_number":695,"context_line":"        self.run_command(\u0027migrate 1234 fakehost --force-host-copy --force\u0027)"},{"line_number":696,"context_line":"        expected \u003d {\u0027os-migrate_volume\u0027: {\u0027force_host_copy\u0027: True,"},{"line_number":697,"context_line":"                                          \u0027force\u0027: True,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_069fe550","line":694,"updated":"2015-07-07 21:29:28.000000000","message":"Can we get test cases here for when force is false?  Or do we not need that because of the test case in test_volumes.py ?","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"203025b28b6950466903579c473dce6ae49fe76e","unresolved":false,"context_lines":[{"line_number":691,"context_line":"                                          \u0027host\u0027: \u0027fakehost\u0027}}"},{"line_number":692,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027, body\u003dexpected)"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    def test_migrate_volume_bool_force(self):"},{"line_number":695,"context_line":"        self.run_command(\u0027migrate 1234 fakehost --force-host-copy --force\u0027)"},{"line_number":696,"context_line":"        expected \u003d {\u0027os-migrate_volume\u0027: {\u0027force_host_copy\u0027: True,"},{"line_number":697,"context_line":"                                          \u0027force\u0027: True,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_2d9c3a0d","line":694,"in_reply_to":"ba3cc151_069fe550","updated":"2015-07-08 06:33:28.000000000","message":"In fact, we are missing the test cases for --force false and --force-host-copy false. It is harmless to add them here, though there is a case in test_volumes.py.","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"4050688dc9f54093b9e2557bad1c4b2d44ec06aa","unresolved":false,"context_lines":[{"line_number":694,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027, body\u003dexpected)"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    def test_migrate_volume_bool_force_false(self):"},{"line_number":697,"context_line":"        # Set both --force-host-copy and --force to False."},{"line_number":698,"context_line":"        self.run_command(\u0027migrate 1234 fakehost --force-host-copy\u003dFalse \u0027"},{"line_number":699,"context_line":"                         \u0027--lock-volume\u003dFalse\u0027)"},{"line_number":700,"context_line":"        expected \u003d {\u0027os-migrate_volume\u0027: {\u0027force_host_copy\u0027: \u0027False\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_e080c84b","line":697,"updated":"2015-07-31 13:49:01.000000000","message":"--force should be --lock-volume","commit_id":"0c0f492f544e1e5bfb76697d0a2ea87d4dda6344"},{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"4050688dc9f54093b9e2557bad1c4b2d44ec06aa","unresolved":false,"context_lines":[{"line_number":702,"context_line":"                                          \u0027host\u0027: \u0027fakehost\u0027}}"},{"line_number":703,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027, body\u003dexpected)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"        # Do not set the values to --force-host-copy and --force."},{"line_number":706,"context_line":"        self.run_command(\u0027migrate 1234 fakehost\u0027)"},{"line_number":707,"context_line":"        expected \u003d {\u0027os-migrate_volume\u0027: {\u0027force_host_copy\u0027: False,"},{"line_number":708,"context_line":"                                          \u0027lock_volume\u0027: False,"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_a0f16003","line":705,"updated":"2015-07-31 13:49:01.000000000","message":"--force should be --lock-volume","commit_id":"0c0f492f544e1e5bfb76697d0a2ea87d4dda6344"}],"cinderclient/tests/unit/v2/test_volumes.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"baa2e4fc89bf78819f29e27ac75dd93bad74c90b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_migrate(self):"},{"line_number":168,"context_line":"        v \u003d cs.volumes.get(\u00271234\u0027)"},{"line_number":169,"context_line":"        cs.volumes.migrate_volume(v, \u0027dest\u0027, False, False)"},{"line_number":170,"context_line":"        cs.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def test_metadata_update_all(self):"},{"line_number":173,"context_line":"        cs.volumes.update_all_metadata(1234, {\u0027k1\u0027: \u0027v1\u0027})"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_7fbcd9ba","line":170,"updated":"2015-08-31 17:19:05.000000000","message":"nit: Isn\u0027t this check a big weak?  You are not checking that you are actually sending lock_volume","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"6d2c9b70cc17578bb58d0c061d99fe269053de5d","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_migrate(self):"},{"line_number":168,"context_line":"        v \u003d cs.volumes.get(\u00271234\u0027)"},{"line_number":169,"context_line":"        cs.volumes.migrate_volume(v, \u0027dest\u0027, False, False)"},{"line_number":170,"context_line":"        cs.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def test_metadata_update_all(self):"},{"line_number":173,"context_line":"        cs.volumes.update_all_metadata(1234, {\u0027k1\u0027: \u0027v1\u0027})"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_e7660aec","line":170,"in_reply_to":"da20952f_7fbcd9ba","updated":"2015-09-01 03:45:03.000000000","message":"Done","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e65f7e2a1ac32dbed1b5fa00061dacb7c78dfccb","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_migrate(self):"},{"line_number":168,"context_line":"        v \u003d cs.volumes.get(\u00271234\u0027)"},{"line_number":169,"context_line":"        cs.volumes.migrate_volume(v, \u0027dest\u0027, False, False)"},{"line_number":170,"context_line":"        cs.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def test_migrate_with_lock_volume(self):"},{"line_number":173,"context_line":"        v \u003d cs.volumes.get(\u00271234\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"da20952f_b90c9f3c","line":170,"updated":"2015-09-01 13:49:49.000000000","message":"nit: This is still weak, you are not checking if you are actually passing lock_volume","commit_id":"9898f2efcfe734bae9dbda4532ad68bf73ec2e81"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e65f7e2a1ac32dbed1b5fa00061dacb7c78dfccb","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    def test_migrate_with_lock_volume(self):"},{"line_number":173,"context_line":"        v \u003d cs.volumes.get(\u00271234\u0027)"},{"line_number":174,"context_line":"        cs.volumes.migrate_volume(v, \u0027dest\u0027, False, True)"},{"line_number":175,"context_line":"        cs.assert_called(\u0027POST\u0027, \u0027/volumes/1234/action\u0027)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def test_metadata_update_all(self):"},{"line_number":178,"context_line":"        cs.volumes.update_all_metadata(1234, {\u0027k1\u0027: \u0027v1\u0027})"}],"source_content_type":"text/x-python","patch_set":31,"id":"da20952f_793607e9","line":175,"updated":"2015-09-01 13:49:49.000000000","message":"-0.5: As it is this test is exactly the same as the one above, as we are not testing lock_volume has True value.","commit_id":"9898f2efcfe734bae9dbda4532ad68bf73ec2e81"}],"cinderclient/utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b3d063f8fa65b6352828eb4626213bf38ddf4794","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        print(strutils.safe_encode(pt.get_string(sortby\u003dorder)))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def print_list(objs, fields, removed\u003dFalse, formatters\u003dNone, sortby_index\u003d0):"},{"line_number":114,"context_line":"    \u0027\u0027\u0027Prints a list of objects."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @param objs: Objects to print"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_fa205b4b","line":113,"updated":"2015-07-07 18:40:47.000000000","message":"This name isn\u0027t intuitive to me. Just reading the name \"removed\", my assumption would be that if I said removed\u003dTrue I would get the output including removed fields.\n\nMaybe rename to something like exclude_removed?","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"203025b28b6950466903579c473dce6ae49fe76e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        print(strutils.safe_encode(pt.get_string(sortby\u003dorder)))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def print_list(objs, fields, removed\u003dFalse, formatters\u003dNone, sortby_index\u003d0):"},{"line_number":114,"context_line":"    \u0027\u0027\u0027Prints a list of objects."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @param objs: Objects to print"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_3aa8ee8b","line":113,"in_reply_to":"ba3cc151_26e789e5","updated":"2015-07-08 06:33:28.000000000","message":"Sorry for my language skills.\nIt is something like excluding the fields which are not available from the server side. Thank you for the suggestion. The param exclude_unavailable is closer.","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4876978743145d1f011391b2392e53e467edec75","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        print(strutils.safe_encode(pt.get_string(sortby\u003dorder)))"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def print_list(objs, fields, removed\u003dFalse, formatters\u003dNone, sortby_index\u003d0):"},{"line_number":114,"context_line":"    \u0027\u0027\u0027Prints a list of objects."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    @param objs: Objects to print"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_26e789e5","line":113,"in_reply_to":"ba3cc151_fa205b4b","updated":"2015-07-07 21:29:28.000000000","message":"+1 to Sean\u0027s comment.  Based on the description below, maybe exclude_unavailable ?","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"baa2e4fc89bf78819f29e27ac75dd93bad74c90b","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    \u0027\u0027\u0027"},{"line_number":126,"context_line":"    formatters \u003d formatters or {}"},{"line_number":127,"context_line":"    mixed_case_fields \u003d [\u0027serverId\u0027]"},{"line_number":128,"context_line":"    pt \u003d prettytable.PrettyTable([f for f in fields], caching\u003dFalse)"},{"line_number":129,"context_line":"    pt.aligns \u003d [\u0027l\u0027 for f in fields]"},{"line_number":130,"context_line":"    removed_fields \u003d []"},{"line_number":131,"context_line":"    rows \u003d []"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_7f6939f8","line":128,"updated":"2015-08-31 17:19:05.000000000","message":"-1: I disagree with approach, we should always build the PrettyTable after we have determined which fields will be displayed (like you are doing when exclude_unavailable), it will make this more readable.","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"baa2e4fc89bf78819f29e27ac75dd93bad74c90b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    for o in objs:"},{"line_number":134,"context_line":"        row \u003d []"},{"line_number":135,"context_line":"        for field in fields:"},{"line_number":136,"context_line":"            if exclude_unavailable and field in removed_fields:"},{"line_number":137,"context_line":"                continue"},{"line_number":138,"context_line":"            if field in formatters:"},{"line_number":139,"context_line":"                row.append(formatters[field](o))"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_7f1859d3","line":136,"range":{"start_line":136,"start_character":15,"end_line":136,"end_character":34},"updated":"2015-08-31 17:19:05.000000000","message":"nit: No need to check exclude_unavailable, since removed_fields will be empty otherwise.","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e65f7e2a1ac32dbed1b5fa00061dacb7c78dfccb","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                row.append(data)"},{"line_number":156,"context_line":"        rows.append(row)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    if exclude_unavailable:"},{"line_number":159,"context_line":"        for f in removed_fields:"},{"line_number":160,"context_line":"            fields.remove(f)"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"da20952f_29ecbeb9","line":158,"updated":"2015-09-01 13:49:49.000000000","message":"-0.5: No need for this if, you can do the for directly since removed_fields is initialized to []","commit_id":"9898f2efcfe734bae9dbda4532ad68bf73ec2e81"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"e65f7e2a1ac32dbed1b5fa00061dacb7c78dfccb","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        for f in removed_fields:"},{"line_number":160,"context_line":"            fields.remove(f)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    pt \u003d prettytable.PrettyTable([f for f in fields], caching\u003dFalse)"},{"line_number":163,"context_line":"    pt.aligns \u003d [\u0027l\u0027 for f in fields]"},{"line_number":164,"context_line":"    for row in rows:"},{"line_number":165,"context_line":"        pt.add_row(row)"}],"source_content_type":"text/x-python","patch_set":31,"id":"da20952f_b97fbf65","line":162,"updated":"2015-09-01 13:49:49.000000000","message":"nit: Cheaper to build a tuple than a list\n\n  pt \u003d prettytable.PrettyTable((f for f in fields), caching\u003dFalse)","commit_id":"9898f2efcfe734bae9dbda4532ad68bf73ec2e81"}],"cinderclient/v2/shell.py":[{"author":{"_account_id":7764,"name":"Peter Hamilton","email":"peter.hamilton@jhuapl.edu","username":"Peter"},"change_message_id":"e3d0058dfe86a127bd4d75b76ef0a8553c7f1077","unresolved":false,"context_lines":[{"line_number":1130,"context_line":"           help\u003d\u0027Enable or disables the migration termination \u0027"},{"line_number":1131,"context_line":"           \u0027caused by other commands. True means it allows the \u0027"},{"line_number":1132,"context_line":"           \u0027termination. False means it does not allow. \u0027"},{"line_number":1133,"context_line":"           \u0027Default\u003dFalse.\u0027)"},{"line_number":1134,"context_line":"@utils.service_type(\u0027volumev2\u0027)"},{"line_number":1135,"context_line":"def do_migrate(cs, args):"},{"line_number":1136,"context_line":"    \"\"\"Migrates volume to a new host.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1af86dd1_61a183a9","line":1133,"updated":"2015-06-12 12:46:21.000000000","message":"The help string here seems to describe the opposite effects for True and False as they are defined in the commit message. Looking at the code, it looks like True will force the migration while False allows termination. Please fix the help string to reflect this, or update the commit message accordingly. Thanks.","commit_id":"7145684c0d4bc727e61361877ecf3c8646e227c0"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"9fea802feec19cdb1c0a2d975b78a1969aa2ed13","unresolved":false,"context_lines":[{"line_number":1130,"context_line":"           help\u003d\u0027Enable or disables the migration termination \u0027"},{"line_number":1131,"context_line":"           \u0027caused by other commands. True means it allows the \u0027"},{"line_number":1132,"context_line":"           \u0027termination. False means it does not allow. \u0027"},{"line_number":1133,"context_line":"           \u0027Default\u003dFalse.\u0027)"},{"line_number":1134,"context_line":"@utils.service_type(\u0027volumev2\u0027)"},{"line_number":1135,"context_line":"def do_migrate(cs, args):"},{"line_number":1136,"context_line":"    \"\"\"Migrates volume to a new host.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_cb6de433","line":1133,"in_reply_to":"1af86dd1_61a183a9","updated":"2015-06-15 02:13:39.000000000","message":"Thank you. I need to make it more explicit. It is a bit confusing here.","commit_id":"7145684c0d4bc727e61361877ecf3c8646e227c0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"b3d063f8fa65b6352828eb4626213bf38ddf4794","unresolved":false,"context_lines":[{"line_number":164,"context_line":"@utils.arg(\u0027--migration_status\u0027,"},{"line_number":165,"context_line":"           metavar\u003d\u0027\u003cmigration_status\u003e\u0027,"},{"line_number":166,"context_line":"           default\u003dNone,"},{"line_number":167,"context_line":"           help\u003d\u0027Filters results by a migration status. Default\u003dNone.\u0027"},{"line_number":168,"context_line":"                \u0027Admin only.\u0027)"},{"line_number":169,"context_line":"@utils.arg(\u0027--metadata\u0027,"},{"line_number":170,"context_line":"           type\u003dstr,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_7a8f6b23","line":167,"updated":"2015-07-07 18:40:47.000000000","message":"Need trailing space in string so resulting string doesn\u0027t end up \"None.Admin\".","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"203025b28b6950466903579c473dce6ae49fe76e","unresolved":false,"context_lines":[{"line_number":164,"context_line":"@utils.arg(\u0027--migration_status\u0027,"},{"line_number":165,"context_line":"           metavar\u003d\u0027\u003cmigration_status\u003e\u0027,"},{"line_number":166,"context_line":"           default\u003dNone,"},{"line_number":167,"context_line":"           help\u003d\u0027Filters results by a migration status. Default\u003dNone.\u0027"},{"line_number":168,"context_line":"                \u0027Admin only.\u0027)"},{"line_number":169,"context_line":"@utils.arg(\u0027--metadata\u0027,"},{"line_number":170,"context_line":"           type\u003dstr,"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_ba74fefd","line":167,"in_reply_to":"ba3cc151_7a8f6b23","updated":"2015-07-08 06:33:28.000000000","message":"Done","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4876978743145d1f011391b2392e53e467edec75","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"           const\u003dTrue,"},{"line_number":1157,"context_line":"           nargs\u003d\u0027?\u0027,"},{"line_number":1158,"context_line":"           default\u003dFalse,"},{"line_number":1159,"context_line":"           help\u003d\u0027Enable or disables the migration termination \u0027"},{"line_number":1160,"context_line":"           \u0027caused by other commands. True means it does not allow the \u0027"},{"line_number":1161,"context_line":"           \u0027termination, because the migration is forced to finish. \u0027"},{"line_number":1162,"context_line":"           \u0027False means it allows termination, since the migration \u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba3cc151_c6e01d99","line":1159,"updated":"2015-07-07 21:29:28.000000000","message":"Enable -\u003e Enables","commit_id":"fbfc379d51fb0fcbb1695ba2a034178b92c1fa11"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"a66f33b80eccf3d06e830d4553728d846408ac68","unresolved":false,"context_lines":[{"line_number":1185,"context_line":"           help\u003d\u0027Enables or disables the migration termination \u0027"},{"line_number":1186,"context_line":"           \u0027caused by other commands. True means it locks the volume state \u0027"},{"line_number":1187,"context_line":"           \u0027and does not allow the abortion. False means it allows abortion \u0027"},{"line_number":1188,"context_line":"           \u0027for the volume migration. \u0027"},{"line_number":1189,"context_line":"           \u0027Default\u003dFalse.\u0027)"},{"line_number":1190,"context_line":"@utils.service_type(\u0027volumev2\u0027)"},{"line_number":1191,"context_line":"def do_migrate(cs, args):"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a50d1a3_8a77d09e","line":1188,"updated":"2015-07-30 16:34:51.000000000","message":"Vincent, hard to explain but this wording could be offensive to some people.\n\nSuggest: Enables or disables termination of volume migration caused by other commands.  True means it locks the volume state and does allow the migration to be aborted.  False means it allows the volume migration to be aborted.","commit_id":"1e9af4677738e4a763fc908a4feff7df87baf922"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"c15c018f8400cb0ed3c3bf75b3cba3311eeddf67","unresolved":false,"context_lines":[{"line_number":1185,"context_line":"           help\u003d\u0027Enables or disables the migration termination \u0027"},{"line_number":1186,"context_line":"           \u0027caused by other commands. True means it locks the volume state \u0027"},{"line_number":1187,"context_line":"           \u0027and does not allow the abortion. False means it allows abortion \u0027"},{"line_number":1188,"context_line":"           \u0027for the volume migration. \u0027"},{"line_number":1189,"context_line":"           \u0027Default\u003dFalse.\u0027)"},{"line_number":1190,"context_line":"@utils.service_type(\u0027volumev2\u0027)"},{"line_number":1191,"context_line":"def do_migrate(cs, args):"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a50d1a3_4f91c851","line":1188,"in_reply_to":"3a50d1a3_8a77d09e","updated":"2015-08-01 04:20:39.000000000","message":"Done","commit_id":"1e9af4677738e4a763fc908a4feff7df87baf922"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e2a5846d65d706030f85b5b4801d3e8af3a3a342","unresolved":false,"context_lines":[{"line_number":1185,"context_line":"           default\u003dFalse,"},{"line_number":1186,"context_line":"           help\u003d\u0027Enables or disables termination of volume migration \u0027"},{"line_number":1187,"context_line":"           \u0027caused by other commands. True means it locks the volume \u0027"},{"line_number":1188,"context_line":"           \u0027state and does allow the migration to be aborted. False \u0027"},{"line_number":1189,"context_line":"           \u0027means it allows the volume migration to be aborted. \u0027"},{"line_number":1190,"context_line":"           \u0027Default\u003dFalse.\u0027)"},{"line_number":1191,"context_line":"@utils.service_type(\u0027volumev2\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"3a50d1a3_da933bff","line":1188,"updated":"2015-07-31 13:30:12.000000000","message":"Did you mean to say \"does not allow\"?","commit_id":"0c0f492f544e1e5bfb76697d0a2ea87d4dda6344"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"baa2e4fc89bf78819f29e27ac75dd93bad74c90b","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"           const\u003dTrue,"},{"line_number":1168,"context_line":"           nargs\u003d\u0027?\u0027,"},{"line_number":1169,"context_line":"           default\u003dFalse,"},{"line_number":1170,"context_line":"           help\u003d\u0027Enables or disables the termination of volume migration \u0027"},{"line_number":1171,"context_line":"           \u0027caused by other commands. True means it locks the volume \u0027"},{"line_number":1172,"context_line":"           \u0027state and does not allow the migration to be aborted. False \u0027"},{"line_number":1173,"context_line":"           \u0027means it allows the volume migration to be aborted. \u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_ff1ea90a","line":1170,"updated":"2015-08-31 17:19:05.000000000","message":"nit: Maybe a mention to maintenance status","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"6d2c9b70cc17578bb58d0c061d99fe269053de5d","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"           const\u003dTrue,"},{"line_number":1168,"context_line":"           nargs\u003d\u0027?\u0027,"},{"line_number":1169,"context_line":"           default\u003dFalse,"},{"line_number":1170,"context_line":"           help\u003d\u0027Enables or disables the termination of volume migration \u0027"},{"line_number":1171,"context_line":"           \u0027caused by other commands. True means it locks the volume \u0027"},{"line_number":1172,"context_line":"           \u0027state and does not allow the migration to be aborted. False \u0027"},{"line_number":1173,"context_line":"           \u0027means it allows the volume migration to be aborted. \u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_277e426a","line":1170,"in_reply_to":"da20952f_ff1ea90a","updated":"2015-09-01 03:45:03.000000000","message":"Done","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"1f1d6fbdc721aca17ee4c0a2384640179b62dda4","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"                              args.lock_volume)"},{"line_number":1182,"context_line":"        print(\"Request to migrate volume %s has been accepted.\" % (volume))"},{"line_number":1183,"context_line":"    except Exception as e:"},{"line_number":1184,"context_line":"        print(\"Migration for volume %s failed: %s\" % (volume, e))"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":""},{"line_number":1187,"context_line":"@utils.arg(\u0027volume\u0027, metavar\u003d\u0027\u003cvolume\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_ab347dfb","line":1184,"updated":"2015-08-31 14:34:19.000000000","message":"\".\" at EOL","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"6d2c9b70cc17578bb58d0c061d99fe269053de5d","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"                              args.lock_volume)"},{"line_number":1182,"context_line":"        print(\"Request to migrate volume %s has been accepted.\" % (volume))"},{"line_number":1183,"context_line":"    except Exception as e:"},{"line_number":1184,"context_line":"        print(\"Migration for volume %s failed: %s\" % (volume, e))"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":""},{"line_number":1187,"context_line":"@utils.arg(\u0027volume\u0027, metavar\u003d\u0027\u003cvolume\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_077bfe7b","line":1184,"in_reply_to":"da20952f_3fad019b","updated":"2015-09-01 03:45:03.000000000","message":"Done","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"baa2e4fc89bf78819f29e27ac75dd93bad74c90b","unresolved":false,"context_lines":[{"line_number":1181,"context_line":"                              args.lock_volume)"},{"line_number":1182,"context_line":"        print(\"Request to migrate volume %s has been accepted.\" % (volume))"},{"line_number":1183,"context_line":"    except Exception as e:"},{"line_number":1184,"context_line":"        print(\"Migration for volume %s failed: %s\" % (volume, e))"},{"line_number":1185,"context_line":""},{"line_number":1186,"context_line":""},{"line_number":1187,"context_line":"@utils.arg(\u0027volume\u0027, metavar\u003d\u0027\u003cvolume\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":30,"id":"da20952f_3fad019b","line":1184,"in_reply_to":"da20952f_ab347dfb","updated":"2015-08-31 17:19:05.000000000","message":"nit: This can have issues if exception has unicode chars","commit_id":"92bf5d985c469b7676c7a4c9563bb5d9ef38b5cc"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"28d32a8aaee6d4a08b2e8dc20bce8b924c9441cc","unresolved":false,"context_lines":[{"line_number":1174,"context_line":"           \u0027volume status will be in maintenance during the \u0027"},{"line_number":1175,"context_line":"           \u0027migration. False means it allows the volume migration \u0027"},{"line_number":1176,"context_line":"           \u0027to be aborted. The volume status is still in the original \u0027"},{"line_number":1177,"context_line":"           \u0027stuatus. Default\u003dFalse.\u0027)"},{"line_number":1178,"context_line":"@utils.service_type(\u0027volumev2\u0027)"},{"line_number":1179,"context_line":"def do_migrate(cs, args):"},{"line_number":1180,"context_line":"    \"\"\"Migrates volume to a new host.\"\"\""}],"source_content_type":"text/x-python","patch_set":31,"id":"da20952f_986c3ad1","line":1177,"updated":"2015-09-01 12:50:18.000000000","message":"stuatus -\u003e status","commit_id":"9898f2efcfe734bae9dbda4532ad68bf73ec2e81"}]}
