)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"198e9b77784b8cd7d05d48eba5eefc619f79e737","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Set attach status of backup volume to avoid deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A volume which is connected for backup can be deleted during backup by"},{"line_number":10,"context_line":"misoperation. Deleting a volume in use may cause unexpected problems."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch sets `attach_status` to `attached` when a volume is actually"},{"line_number":13,"context_line":"attached for backup. This prevents the volume from being deleted by a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"584560ba_c700a23d","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":14},"updated":"2022-04-29 19:27:37.000000000","message":":-1: The scenario is to delete a volume when its status is \"backing up\" using cinder cli? we need a bug created in launchpad, to have the reference added to this commit message.\n\nI don\u0027t think we need a release note.","commit_id":"186e11421dac3b1bf3d0d4972cf73d10d8b28021"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"19c0805853399809eae2aaf88800d3b1914969d0","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Set attach status of backup volume to avoid deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A volume which is connected for backup can be deleted during backup by"},{"line_number":10,"context_line":"misoperation. Deleting a volume in use may cause unexpected problems."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch sets `attach_status` to `attached` when a volume is actually"},{"line_number":13,"context_line":"attached for backup. This prevents the volume from being deleted by a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"e1ea175c_371f91b3","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":14},"in_reply_to":"2da6bfb0_5f1ac6e2","updated":"2022-05-03 18:10:09.000000000","message":"\u003e I agree this warrants a launchpad bug, but that suggests to me that the fix *does* need a release note.\n\n+1","commit_id":"186e11421dac3b1bf3d0d4972cf73d10d8b28021"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"26f4ee62fbe971f6365e5d9a0fa4d0dabea1b838","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Set attach status of backup volume to avoid deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A volume which is connected for backup can be deleted during backup by"},{"line_number":10,"context_line":"misoperation. Deleting a volume in use may cause unexpected problems."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch sets `attach_status` to `attached` when a volume is actually"},{"line_number":13,"context_line":"attached for backup. This prevents the volume from being deleted by a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"2da6bfb0_5f1ac6e2","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":14},"in_reply_to":"584560ba_c700a23d","updated":"2022-05-03 15:34:47.000000000","message":"I agree this warrants a launchpad bug, but that suggests to me that the fix *does* need a release note.","commit_id":"186e11421dac3b1bf3d0d4972cf73d10d8b28021"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f6644b9f62546d1f5eb0efb1096ad461e02400f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Set attach status of backup volume to avoid deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A volume which is connected for backup can be deleted during backup by"},{"line_number":10,"context_line":"misoperation. Deleting a volume in use may cause unexpected problems."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch sets `attach_status` to `attached` when a volume is actually"},{"line_number":13,"context_line":"attached for backup. This prevents the volume from being deleted by a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"0461575c_38b7b607","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":14},"in_reply_to":"e1ea175c_371f91b3","updated":"2022-06-23 15:30:29.000000000","message":"Done","commit_id":"186e11421dac3b1bf3d0d4972cf73d10d8b28021"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"766910dcf6160450febacbb25f9effc6caec0636","unresolved":true,"context_lines":[{"line_number":12,"context_line":"be deleted even if force deletion is requested."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I477d9a005b70962f2ad35115ae4af423f65ecf84"},{"line_number":15,"context_line":"Closes-Bug: #1971483"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"c9f5276f_a6de80b8","line":15,"range":{"start_line":15,"start_character":13,"end_line":15,"end_character":20},"updated":"2022-07-21 12:51:35.000000000","message":"I\u0027m not sure I understand the bug report.  If an admin wants to delete a volume that\u0027s in use, that seems like a reasonable thing to do.  Why is this a bug?\n\nThis also doesn\u0027t consider the other ways that admins could stop this process: using reset-state then delete (which is likely what would be used after the limitation introduced by this patch is in place), using a force-detach, etc.\n\nDoes this patch really solve a problem?\n\nWhat is the root issue being solved by this?  Would having the force-delete operation do a force detach also solve it?","commit_id":"508fed594fcfec2751d65a44f0ec960d7d422594"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"d00000a7e5bda257793faf507bdcf0544e5c2f95","unresolved":true,"context_lines":[{"line_number":12,"context_line":"be deleted even if force deletion is requested."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I477d9a005b70962f2ad35115ae4af423f65ecf84"},{"line_number":15,"context_line":"Closes-Bug: #1971483"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"05317e38_715505cb","line":15,"range":{"start_line":15,"start_character":13,"end_line":15,"end_character":20},"in_reply_to":"12597084_2835b3e6","updated":"2022-07-25 13:57:12.000000000","message":"There\u0027s a Red Hat bug [1], but unfortunately it\u0027s not publicly accessible so I\u0027ll summarize it here.\n\nCinder needs to restrict the ability to force-delete a volume when cinder itself is connected to the storage backend. This means you should not be able to force delete a cinder volume when it\u0027s in the \u0027downloading\u0027 or \u0027backing-up\u0027 states. Deleting the volume causes cinder to disconnect from the storage backend, and if there\u0027s a cinder-volume or cinder-backup thread trying to do I/O the process will get stuck in the \"uninterruptible sleep\" D state that can only be fixed by rebooting the node.\n\nActive backups can be cancelled, and (presumably) it shouldn\u0027t take too long for cinder to finish downloading an image. Meanwhile, adding a restriction to prevent deleting a volume while \u0027downloading\u0027 or \u0027backing-up\u0027 will help avoid processes getting stuck in the \u0027D\u0027 state.\n\n[1] https://bugzilla.redhat.com/show_bug.cgi?id\u003d2079723","commit_id":"508fed594fcfec2751d65a44f0ec960d7d422594"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"79f95776106e4b1d450e9ab372ee339a278cce06","unresolved":true,"context_lines":[{"line_number":12,"context_line":"be deleted even if force deletion is requested."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I477d9a005b70962f2ad35115ae4af423f65ecf84"},{"line_number":15,"context_line":"Closes-Bug: #1971483"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"12597084_2835b3e6","line":15,"range":{"start_line":15,"start_character":13,"end_line":15,"end_character":20},"in_reply_to":"c9f5276f_a6de80b8","updated":"2022-07-22 19:34:08.000000000","message":"A volume attached to an instance is not allowed to be deleted even with the force flag by checking its attach status. However, a temporary volume for back-up or download, which is attached to a cinder service, can be deleted. This patch will introduce the similar restriction to deletion of a temporary volume.","commit_id":"508fed594fcfec2751d65a44f0ec960d7d422594"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"198e9b77784b8cd7d05d48eba5eefc619f79e737","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1d57b092_7495eccf","updated":"2022-04-29 19:27:37.000000000","message":"Thank you for fixing this bug. The code looks goo to me. \n","commit_id":"186e11421dac3b1bf3d0d4972cf73d10d8b28021"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"6ac0b716b6ae35d2ce3ea270f8121da5c91415e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"826867da_e48ae17f","updated":"2022-02-28 21:00:01.000000000","message":"recheck\n","commit_id":"186e11421dac3b1bf3d0d4972cf73d10d8b28021"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d91fb295214b923d00be742fba3100aa6b4c9eea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4085acec_a46fde0d","updated":"2022-05-09 19:12:26.000000000","message":"Ceph doesn\u0027t create a temporary volume[1] even if a volume is attached. In \u0027test_backup_create_attached_volume\u0027 test with ceph, a volume fails to be detached because attach_status is set to \u0027detached\u0027 by this change.\n\n[1] https://opendev.org/openstack/cinder/src/branch/master/cinder/volume/drivers/rbd.py#L2278\n","commit_id":"7e14c2258c760825b017b4ddda768dac5899fc77"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"a5fbfa062325c5a9b997a32d514e24b0d9176cc8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3c20ea6f_fd2e7109","updated":"2022-05-05 13:31:24.000000000","message":"Ceph job fails with a valid reason. Looks like this patch needs to update the next test before merged:\n\n```\n{3} tempest.api.volume.test_volumes_backup.VolumesBackupsTest.test_backup_create_attached_volume [221.307601s] ... FAILED\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/opt/stack/tempest/tempest/lib/services/compute/servers_client.py\", line 480, in detach_volume\n    resp, body \u003d self.delete(\u0027servers/%s/os-volume_attachments/%s\u0027 %\n\n      File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 330, in delete\n    return self.request(\u0027DELETE\u0027, url, extra_headers, headers, body)\n\n      File \"/opt/stack/tempest/tempest/lib/services/compute/base_compute_client.py\", line 47, in request\n    resp, resp_body \u003d super(BaseComputeClient, self).request(\n\n      File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 703, in request\n    self._error_checker(resp, resp_body)\n\n      File \"/opt/stack/tempest/tempest/lib/common/rest_client.py\", line 814, in _error_checker\n    raise exceptions.BadRequest(resp_body, resp\u003dresp)\n\n    tempest.lib.exceptions.BadRequest: Bad request\nDetails: {\u0027code\u0027: 400, \u0027message\u0027: \"Invalid volume: Invalid input received: Invalid volume: Unable to detach volume. Volume status must be \u0027in-use\u0027 and attach_status must be \u0027attached\u0027 to detach. (HTTP 400) (Request-ID: req-d4c58d1d-f88e-4eca-bb00-c875d6000afb)\"}\n\n\nCaptured traceback-1:\n~~~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/opt/stack/tempest/tempest/common/waiters.py\", line 317, in wait_for_volume_resource_status\n    raise lib_exc.TimeoutException(message)\n\n    tempest.lib.exceptions.TimeoutException: Request timed out\nDetails: volume 92978d85-b5f7-4be0-b046-d63c753796e1 failed to reach available status (current in-use) within the required time (196 s).\n```","commit_id":"7e14c2258c760825b017b4ddda768dac5899fc77"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"002fb1d5eba4464cb23767f550cc91d3dfc99316","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8770c3d6_feb8dad2","updated":"2022-05-04 18:04:25.000000000","message":"recheck openstack-tox-py39","commit_id":"7e14c2258c760825b017b4ddda768dac5899fc77"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"8e7ce55c6109d572e89a041f2ca35d432e4e4491","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e31dc705_98e021ba","updated":"2022-05-11 12:47:35.000000000","message":"Code changes and UT look good. Zuul also passed. So +1.","commit_id":"8d94f9512ccac7efd2a1b9238f77f53fccba468d"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d2dbf4c88037db7e3042ddcd694644d6a75cac37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e1ed179d_0658cc80","updated":"2022-05-11 21:46:34.000000000","message":"Hi Alan,\nThank you for the suggestion. Your suggestion is much better.\nI\u0027m updating this patch.\n","commit_id":"8d94f9512ccac7efd2a1b9238f77f53fccba468d"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"e18764a811859ed74c2cdf4878ddeaf73fa58fde","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d39ed55b_5f5b5fac","updated":"2022-05-11 18:06:35.000000000","message":"I really don\u0027t like this approach. Faking the attach_status feels like an expedient hack, and could trigger other problems if anyone tries fiddling with the attachments API.\n\nAn alternate approach would be to add the restriction near [1], maybe something like this:\n\n        if volume.status in [\u0027backing-up\u0027]:  # Any other invalid status? Perhaps \u0027downloading\u0027?\n            msg \u003d _(\"Volume status must not be %s\") % volume.status\n            LOG.info(msg)\n            raise exception.InvalidVolume(reason\u003dmsg)\n\n[1] https://opendev.org/openstack/cinder/src/branch/master/cinder/volume/api.py#L471","commit_id":"8d94f9512ccac7efd2a1b9238f77f53fccba468d"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"1789065473a5011f7643233779eb9eef64a80698","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3e203ee2_04c73c06","updated":"2022-05-10 12:57:33.000000000","message":"recheck\n","commit_id":"8d94f9512ccac7efd2a1b9238f77f53fccba468d"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"42d7a3dce9aa73f3a87454d0483a92ecc87c4240","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9afc0833_51790617","updated":"2022-05-12 19:32:04.000000000","message":"Hi Alan,\n\nThank you for the comments.\nPlease push another patchset.\n\nThanks.\n","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"1fc42e11d5375ab4cf237ce76c2ab320f2dc0d82","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2875c7e0_70c42ae3","updated":"2022-05-12 16:57:19.000000000","message":"The concept looks good to me, but I have a couple of suggestions for what I think would be cleaner code. As I mention in another note, it would be easier for me to push another patchset rather than trying to explain things.\n\nWould you mind if I push another patchset?","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"42d7a3dce9aa73f3a87454d0483a92ecc87c4240","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f2b260ef_61ec65f5","in_reply_to":"2875c7e0_70c42ae3","updated":"2022-05-12 19:32:04.000000000","message":"No, I don\u0027t mind. Please push your patchset.\n\nThanks.","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"9e37a6a4dc18b21caf9193af80c7929dbd212e1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"047102b5_b186d4f9","updated":"2022-05-13 01:22:15.000000000","message":"recheck","commit_id":"c32e2ddb5de4fef945b1c47ad607c701028d509a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"444ad54ffaf1b6ee659771e2aae38ea402012c1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e8708ef8_ef780fb7","updated":"2022-05-13 13:54:03.000000000","message":"recheck\n\ncinder-plugin-ceph-tempest OOM","commit_id":"c32e2ddb5de4fef945b1c47ad607c701028d509a"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"1b50d0ae60f2267ef045881df7edffc65499652f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5e3bddcd_f2565905","updated":"2022-05-18 07:31:37.000000000","message":"Code changes look good now ","commit_id":"42015b970d5a526178c059669b95a4a216f4d353"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"192d43eed0c956ca7abea30db10b6ba79b2b983c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b74b4f69_f5987d41","updated":"2022-05-16 18:04:16.000000000","message":"recheck cinder-plugin-ceph-tempest","commit_id":"42015b970d5a526178c059669b95a4a216f4d353"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"79f95776106e4b1d450e9ab372ee339a278cce06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ffba3cb3_31b9f6b1","updated":"2022-07-22 19:34:08.000000000","message":"Thank you for the comment.\n","commit_id":"508fed594fcfec2751d65a44f0ec960d7d422594"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f6644b9f62546d1f5eb0efb1096ad461e02400f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"423b4d87_4b395641","updated":"2022-06-23 15:30:29.000000000","message":"Thank you for updating and reviewing.\nI marked \u0027Resolved\u0027 to remaining comments.\n","commit_id":"508fed594fcfec2751d65a44f0ec960d7d422594"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"5d708ede77f95ed51d5359ae89ee10640bb91cf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5ca6e1ad_a7f38087","updated":"2022-07-11 10:38:01.000000000","message":"looks good","commit_id":"508fed594fcfec2751d65a44f0ec960d7d422594"}],"cinder/tests/unit/volume/test_volume.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"1fc42e11d5375ab4cf237ce76c2ab320f2dc0d82","unresolved":true,"context_lines":[{"line_number":2233,"context_line":""},{"line_number":2234,"context_line":"        db.volume_destroy(self.context, volume.id)"},{"line_number":2235,"context_line":""},{"line_number":2236,"context_line":"    def _test_cannot_force_delete_volume_in_invalid_status(self, status):"},{"line_number":2237,"context_line":"        volume \u003d tests_utils.create_volume(self.context, CONF.host,"},{"line_number":2238,"context_line":"                                           status\u003dstatus)"},{"line_number":2239,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ef1de6ad_9f8c7e75","line":2236,"updated":"2022-05-12 16:57:19.000000000","message":"Use DDT and you can eliminate the other two functions. Change this line to these two lines:\n\n    @ddt.data(fields.VolumeStatus.BACKING_UP, fields.VolumeStatus.DOWNLOADING)\n    def test_cannot_force_delete_volume_in_invalid_status(self, status):","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f6644b9f62546d1f5eb0efb1096ad461e02400f","unresolved":false,"context_lines":[{"line_number":2233,"context_line":""},{"line_number":2234,"context_line":"        db.volume_destroy(self.context, volume.id)"},{"line_number":2235,"context_line":""},{"line_number":2236,"context_line":"    def _test_cannot_force_delete_volume_in_invalid_status(self, status):"},{"line_number":2237,"context_line":"        volume \u003d tests_utils.create_volume(self.context, CONF.host,"},{"line_number":2238,"context_line":"                                           status\u003dstatus)"},{"line_number":2239,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a402695_a8906e8c","line":2236,"in_reply_to":"ef1de6ad_9f8c7e75","updated":"2022-06-23 15:30:29.000000000","message":"Done","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"}],"cinder/volume/api.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"1fc42e11d5375ab4cf237ce76c2ab320f2dc0d82","unresolved":true,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        force_unexpected_status \u003d (fields.VolumeStatus.BACKING_UP,"},{"line_number":480,"context_line":"                                   fields.VolumeStatus.DOWNLOADING)"},{"line_number":481,"context_line":"        if not force:"},{"line_number":482,"context_line":"            # If not force deleting we have status conditions"},{"line_number":483,"context_line":"            expected[\u0027status\u0027] \u003d (\u0027available\u0027, \u0027error\u0027, \u0027error_restoring\u0027,"},{"line_number":484,"context_line":"                                  \u0027error_extending\u0027, \u0027error_managing\u0027)"},{"line_number":485,"context_line":"        else:"},{"line_number":486,"context_line":"            # Even if force deleting, we should not delete a volume"},{"line_number":487,"context_line":"            # which can be connected by cinder services"},{"line_number":488,"context_line":"            expected[\u0027status\u0027] \u003d db.Not(force_unexpected_status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"60508b88_f9a991aa","line":485,"range":{"start_line":481,"start_character":0,"end_line":485,"end_character":13},"updated":"2022-05-12 16:57:19.000000000","message":"Reverse these, like this:\n\n      if force:\n          ...\n      else:\n          ...","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f6644b9f62546d1f5eb0efb1096ad461e02400f","unresolved":false,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"        force_unexpected_status \u003d (fields.VolumeStatus.BACKING_UP,"},{"line_number":480,"context_line":"                                   fields.VolumeStatus.DOWNLOADING)"},{"line_number":481,"context_line":"        if not force:"},{"line_number":482,"context_line":"            # If not force deleting we have status conditions"},{"line_number":483,"context_line":"            expected[\u0027status\u0027] \u003d (\u0027available\u0027, \u0027error\u0027, \u0027error_restoring\u0027,"},{"line_number":484,"context_line":"                                  \u0027error_extending\u0027, \u0027error_managing\u0027)"},{"line_number":485,"context_line":"        else:"},{"line_number":486,"context_line":"            # Even if force deleting, we should not delete a volume"},{"line_number":487,"context_line":"            # which can be connected by cinder services"},{"line_number":488,"context_line":"            expected[\u0027status\u0027] \u003d db.Not(force_unexpected_status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"6cb0e6ed_378deefa","line":485,"range":{"start_line":481,"start_character":0,"end_line":485,"end_character":13},"in_reply_to":"60508b88_f9a991aa","updated":"2022-06-23 15:30:29.000000000","message":"Done","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"1fc42e11d5375ab4cf237ce76c2ab320f2dc0d82","unresolved":true,"context_lines":[{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        if not result:"},{"line_number":514,"context_line":"            status \u003d \"\""},{"line_number":515,"context_line":"            if not force:"},{"line_number":516,"context_line":"                status \u003d utils.build_or_str(expected.get(\u0027status\u0027),"},{"line_number":517,"context_line":"                                            _(\u0027status must be %s and\u0027))"},{"line_number":518,"context_line":"            else:"},{"line_number":519,"context_line":"                status \u003d utils.build_or_str(force_unexpected_status,"},{"line_number":520,"context_line":"                                            _(\u0027status must not be %s and\u0027))"},{"line_number":521,"context_line":"            msg \u003d _(\u0027Volume %s must not be migrating, attached, belong to a \u0027"},{"line_number":522,"context_line":"                    \u0027group, have snapshots, awaiting a transfer, \u0027"},{"line_number":523,"context_line":"                    \u0027or be disassociated from \u0027"},{"line_number":524,"context_line":"                    \u0027snapshots after volume transfer.\u0027) % status"}],"source_content_type":"text/x-python","patch_set":5,"id":"4958d7a1_a339830b","line":521,"range":{"start_line":515,"start_character":0,"end_line":521,"end_character":0},"updated":"2022-05-12 16:57:19.000000000","message":"I think the existing code is already awkward, and this change doesn\u0027t help. I have a suggestion, but it would be easier if I push another patchset rather than trying to explain the suggestion.","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9f6644b9f62546d1f5eb0efb1096ad461e02400f","unresolved":false,"context_lines":[{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        if not result:"},{"line_number":514,"context_line":"            status \u003d \"\""},{"line_number":515,"context_line":"            if not force:"},{"line_number":516,"context_line":"                status \u003d utils.build_or_str(expected.get(\u0027status\u0027),"},{"line_number":517,"context_line":"                                            _(\u0027status must be %s and\u0027))"},{"line_number":518,"context_line":"            else:"},{"line_number":519,"context_line":"                status \u003d utils.build_or_str(force_unexpected_status,"},{"line_number":520,"context_line":"                                            _(\u0027status must not be %s and\u0027))"},{"line_number":521,"context_line":"            msg \u003d _(\u0027Volume %s must not be migrating, attached, belong to a \u0027"},{"line_number":522,"context_line":"                    \u0027group, have snapshots, awaiting a transfer, \u0027"},{"line_number":523,"context_line":"                    \u0027or be disassociated from \u0027"},{"line_number":524,"context_line":"                    \u0027snapshots after volume transfer.\u0027) % status"}],"source_content_type":"text/x-python","patch_set":5,"id":"d2841577_aa67233c","line":521,"range":{"start_line":515,"start_character":0,"end_line":521,"end_character":0},"in_reply_to":"4958d7a1_a339830b","updated":"2022-06-23 15:30:29.000000000","message":"Done","commit_id":"2f2966cf915fe84b232824392dc25537a4d20521"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"d0ff838ff8b5100307491359a9d597aaaebe9fe9","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                    \u0027attached, belong to a group, have snapshots, awaiting \u0027"},{"line_number":522,"context_line":"                    \u0027a transfer, or be disassociated from snapshots after \u0027"},{"line_number":523,"context_line":"                    \u0027volume transfer.\u0027) % ("},{"line_number":524,"context_line":"                        \u0027not be\u0027 if force else \u0027be\u0027, status)"},{"line_number":525,"context_line":"            LOG.info(msg)"},{"line_number":526,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"86aeee29_37744834","line":524,"updated":"2022-06-02 03:56:26.000000000","message":"I think this change breaks a bit from i18n translation point of view. I mean if this message is translated to another language such as Japanese, \u0027not be\u0027 or \u0027be\u0027 shows up in the tranlated Japanese log and error message. I feel it\u0027s a bit weird.\n\nIn other words, I think the words \u0027not be\u0027 and \u0027be\u0027 should be like the original one such as _(\u0027status must not be %s\u0027) and _(\u0027status must be %s\u0027).","commit_id":"42015b970d5a526178c059669b95a4a216f4d353"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"efccca5e9697f56684ce0ec543ef0652b99c6739","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                    \u0027attached, belong to a group, have snapshots, awaiting \u0027"},{"line_number":522,"context_line":"                    \u0027a transfer, or be disassociated from snapshots after \u0027"},{"line_number":523,"context_line":"                    \u0027volume transfer.\u0027) % ("},{"line_number":524,"context_line":"                        \u0027not be\u0027 if force else \u0027be\u0027, status)"},{"line_number":525,"context_line":"            LOG.info(msg)"},{"line_number":526,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"f1e2c5cf_05242625","line":524,"in_reply_to":"86aeee29_37744834","updated":"2022-06-02 18:15:34.000000000","message":"Thank you for the careful review! I hadn\u0027t considered how the message would get translated. I\u0027ll fix this.","commit_id":"42015b970d5a526178c059669b95a4a216f4d353"}]}
