)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ad4c3e09a1cbc02637565bebad65f85b031147c1","unresolved":true,"context_lines":[{"line_number":7,"context_line":"RBD: Call trash operation when plain deletion fails"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently RBD doesn\u0027t allow deleting volumes with snapshots or volume"},{"line_number":10,"context_line":"dependencies. This is valid for some cases but for example if you are"},{"line_number":11,"context_line":"using the rbd v2 clone api functionality, you should be allowed to do"},{"line_number":12,"context_line":"so. The current code doesn\u0027t cover this situation and raises an"},{"line_number":13,"context_line":"exception.VolumeIsBusy if the volume has a snapshot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1d709410_1909f344","line":10,"range":{"start_line":10,"start_character":14,"end_line":10,"end_character":42},"updated":"2021-08-27 13:19:30.000000000","message":"This...","commit_id":"1ec6c6fe0f444846f8d224bb3b23f6d443d5ba51"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ad4c3e09a1cbc02637565bebad65f85b031147c1","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently RBD doesn\u0027t allow deleting volumes with snapshots or volume"},{"line_number":10,"context_line":"dependencies. This is valid for some cases but for example if you are"},{"line_number":11,"context_line":"using the rbd v2 clone api functionality, you should be allowed to do"},{"line_number":12,"context_line":"so. The current code doesn\u0027t cover this situation and raises an"},{"line_number":13,"context_line":"exception.VolumeIsBusy if the volume has a snapshot."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This is a problem for us because in the case of using the v2 clone api"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dafd9345_973fde12","line":12,"range":{"start_line":11,"start_character":42,"end_line":12,"end_character":3},"updated":"2021-08-27 13:19:30.000000000","message":"...and this should really just focus on the fact that this is a violation of contract between Cinder and drivers and results in the Cinder API not behaving correctly.","commit_id":"1ec6c6fe0f444846f8d224bb3b23f6d443d5ba51"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"139c26b6f8ea1a5eb78367cd96ffeaa61fd283e9","unresolved":true,"context_lines":[{"line_number":16,"context_line":"In order to solve this, this patch removes the proactive VolumeIsBusy"},{"line_number":17,"context_line":"exception raise and calls the trash operation which should succeed when"},{"line_number":18,"context_line":"the volume has dependencies."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"In addition to this code it\u0027s important to enable the Ceph Trash auto"},{"line_number":21,"context_line":"purge. Otherwise Ceph may end up with a couple of images in trash"},{"line_number":22,"context_line":"namespace for a while. However, this approach is the lesser of 2 evils"},{"line_number":23,"context_line":"because the user will be able to delete volumes with dependencies"},{"line_number":24,"context_line":"while the operator could check the trash namespace and manually purge"},{"line_number":25,"context_line":"the images."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Closes-Bug: #1941815"},{"line_number":28,"context_line":"Co-Author: Eric Harney \u003ceharney@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"467cc931_2671a223","line":25,"range":{"start_line":19,"start_character":0,"end_line":25,"end_character":11},"updated":"2021-09-16 17:17:29.000000000","message":"Thanks for making the clarification.  It is definitely better to potentially trouble 1 person (operator) that didn\u0027t read the release notes once than troubling every single user.","commit_id":"9d50e5ee9b7cd43380eeb66cb6bb35ea6e3c1df3"}],"cinder/tests/unit/volume/drivers/test_rbd.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"99ac88e5ba71ab80ca25d1f397d8ab810af681d1","unresolved":true,"context_lines":[{"line_number":707,"context_line":"        parent \u003d True"},{"line_number":708,"context_line":"        parent_snap \u003d self.snapshot_b"},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"        with mock.patch.object(self.driver, \u0027_get_clone_info\u0027) as \\"},{"line_number":711,"context_line":"                mock_get_clone_info:"},{"line_number":712,"context_line":"            with mock.patch.object(self.driver,"},{"line_number":713,"context_line":"                                   \u0027_delete_clone_parent_refs\u0027) as \\"},{"line_number":714,"context_line":"                    mock_delete_clone_parent_refs:"},{"line_number":715,"context_line":"                with mock.patch.object(self.driver,"},{"line_number":716,"context_line":"                                       \u0027_delete_backup_snaps\u0027) as \\"},{"line_number":717,"context_line":"                        mock_delete_backup_snaps:"},{"line_number":718,"context_line":"                    mock_get_clone_info.return_value \u003d (pool,"},{"line_number":719,"context_line":"                                                        parent,"},{"line_number":720,"context_line":"                                                        parent_snap)"}],"source_content_type":"text/x-python","patch_set":9,"id":"55c2a70a_de2b6815","line":717,"range":{"start_line":710,"start_character":0,"end_line":717,"end_character":49},"updated":"2021-09-02 15:31:49.000000000","message":"Please don\u0027t use nested context managers, use a single one:\n\n  with mock.patch.object(...) as\\\n          mock_get_clone_info,\\\n          mock.patch.object(...) as \\\n          mock_delete_clone_parent_refs,\n          mock.patch.object(...) as\\\n          mock_delete_backup_snaps:\n\nOr even better, use self.mock_object:\n\n  mock_get_clone_info \u003d self.mock_object(self.driver, \u0027_get_clone_info\u0027,\n                                         return_value\u003d(pool,\n                                                       parent,\n                                                       parent_snap))","commit_id":"921739c07ba5b3dab3e9973ccc5ced87bee387e3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"99ac88e5ba71ab80ca25d1f397d8ab810af681d1","unresolved":true,"context_lines":[{"line_number":888,"context_line":""},{"line_number":889,"context_line":"        self.mock_rbd.RBD.return_value.remove.side_effect \u003d ("},{"line_number":890,"context_line":"            self.mock_rbd.ImageHasSnapshots)"},{"line_number":891,"context_line":"        with mock.patch.object(self.driver, \u0027_get_clone_info\u0027) as \\"},{"line_number":892,"context_line":"                mock_get_clone_info:"},{"line_number":893,"context_line":"            mock_get_clone_info.return_value \u003d (None, None, None)"},{"line_number":894,"context_line":"            with mock.patch.object(self.driver, \u0027_delete_backup_snaps\u0027) as \\"},{"line_number":895,"context_line":"                    mock_delete_backup_snaps:"},{"line_number":896,"context_line":"                with mock.patch.object(driver, \u0027RADOSClient\u0027) as \\"},{"line_number":897,"context_line":"                        mock_rados_client:"},{"line_number":898,"context_line":"                    self.driver.delete_volume(self.volume_a)"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"                    mock_get_clone_info.assert_called_once_with("},{"line_number":901,"context_line":"                        self.mock_rbd.Image.return_value,"}],"source_content_type":"text/x-python","patch_set":9,"id":"a1185553_1fbf3c45","line":898,"range":{"start_line":891,"start_character":1,"end_line":898,"end_character":1},"updated":"2021-09-02 15:31:49.000000000","message":"same as above","commit_id":"921739c07ba5b3dab3e9973ccc5ced87bee387e3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"99ac88e5ba71ab80ca25d1f397d8ab810af681d1","unresolved":true,"context_lines":[{"line_number":968,"context_line":"                \u0027backup.33333333-3333-3333-3333-333333333333.snap.123\u0027}]"},{"line_number":969,"context_line":""},{"line_number":970,"context_line":"        self.mock_rbd.Image.return_value.list_snaps.return_value \u003d snapshots"},{"line_number":971,"context_line":"        with mock.patch.object(self.driver, \u0027_get_clone_info\u0027) as \\"},{"line_number":972,"context_line":"                mock_get_clone_info:"},{"line_number":973,"context_line":"            with mock.patch.object(self.driver, \u0027_delete_backup_snaps\u0027) as \\"},{"line_number":974,"context_line":"                    mock_delete_backup_snaps:"},{"line_number":975,"context_line":"                mock_get_clone_info.return_value \u003d (None, None, None)"},{"line_number":976,"context_line":""},{"line_number":977,"context_line":"                self.driver.delete_volume(self.volume_a)"},{"line_number":978,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"616712ae_11546ff8","line":975,"range":{"start_line":971,"start_character":1,"end_line":975,"end_character":0},"updated":"2021-09-02 15:31:49.000000000","message":"same as above","commit_id":"921739c07ba5b3dab3e9973ccc5ced87bee387e3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6fb62236e80f13f9f4a44595e06aad32caa50124","unresolved":true,"context_lines":[{"line_number":732,"context_line":"            self.mock_rbd.Image.return_value)"},{"line_number":733,"context_line":"        self.assertFalse("},{"line_number":734,"context_line":"            self.driver.rbd.Image.return_value.unprotect_snap.called)"},{"line_number":735,"context_line":"        self.assertEqual("},{"line_number":736,"context_line":"            1, self.driver.rbd.RBD.return_value.remove.call_count)"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    @common_mocks"},{"line_number":739,"context_line":"    def test_deferred_deletion(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"181fdfd5_6608a0fc","line":736,"range":{"start_line":735,"start_character":0,"end_line":736,"end_character":66},"updated":"2021-09-15 12:09:33.000000000","message":"In the previous patch there were some issues and the tests didn\u0027t detect it, that means that we have to improve them:\n\n  self.driver.rbd.RBD.return_value.trash_move.assert_not_called()\n\nI\u0027d like to see this added, but won\u0027t hold the patch for it.","commit_id":"2546f22cb1ccfce0a3f46cee1cc2c37ed994e99f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"139c26b6f8ea1a5eb78367cd96ffeaa61fd283e9","unresolved":false,"context_lines":[{"line_number":732,"context_line":"            self.mock_rbd.Image.return_value)"},{"line_number":733,"context_line":"        self.assertFalse("},{"line_number":734,"context_line":"            self.driver.rbd.Image.return_value.unprotect_snap.called)"},{"line_number":735,"context_line":"        self.assertEqual("},{"line_number":736,"context_line":"            1, self.driver.rbd.RBD.return_value.remove.call_count)"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    @common_mocks"},{"line_number":739,"context_line":"    def test_deferred_deletion(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"d38e1a20_c92db78e","line":736,"range":{"start_line":735,"start_character":0,"end_line":736,"end_character":66},"in_reply_to":"022c2be5_2a375b08","updated":"2021-09-16 17:17:29.000000000","message":"Ack","commit_id":"2546f22cb1ccfce0a3f46cee1cc2c37ed994e99f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3a9c6e05c6e280828b5234010d480ae4dfabe1b9","unresolved":true,"context_lines":[{"line_number":732,"context_line":"            self.mock_rbd.Image.return_value)"},{"line_number":733,"context_line":"        self.assertFalse("},{"line_number":734,"context_line":"            self.driver.rbd.Image.return_value.unprotect_snap.called)"},{"line_number":735,"context_line":"        self.assertEqual("},{"line_number":736,"context_line":"            1, self.driver.rbd.RBD.return_value.remove.call_count)"},{"line_number":737,"context_line":""},{"line_number":738,"context_line":"    @common_mocks"},{"line_number":739,"context_line":"    def test_deferred_deletion(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"022c2be5_2a375b08","line":736,"range":{"start_line":735,"start_character":0,"end_line":736,"end_character":66},"in_reply_to":"181fdfd5_6608a0fc","updated":"2021-09-15 14:29:31.000000000","message":"Added here if we\u0027d like to keep this patch moving along:\n    https://review.opendev.org/c/openstack/cinder/+/809201","commit_id":"2546f22cb1ccfce0a3f46cee1cc2c37ed994e99f"}],"cinder/volume/drivers/rbd.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"abfa83ce46e310a840f7edbfc2d00f5358c479c9","unresolved":true,"context_lines":[{"line_number":1227,"context_line":"                except self.rbd.ImageHasSnapshots:"},{"line_number":1228,"context_line":"                    LOG.debug(\"moving volume %s to trash\", volume_name)"},{"line_number":1229,"context_line":"                    delay \u003d self.configuration.deferred_deletion_delay"},{"line_number":1230,"context_line":"                    self.RBDProxy().trash_move(client.ioctx,"},{"line_number":1231,"context_line":"                                               volume_name,"},{"line_number":1232,"context_line":"                                               delay)"},{"line_number":1233,"context_line":"            if clone_snap is None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"0adbf939_8de0919d","line":1230,"range":{"start_line":1230,"start_character":36,"end_line":1230,"end_character":46},"updated":"2021-08-25 13:56:01.000000000","message":"If the enable_deferred_deletion option is set, we must call trash_move() only instead of attempting remove() first.","commit_id":"dac456f33962f61b2e1718be0dd083fbda292691"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"99ac88e5ba71ab80ca25d1f397d8ab810af681d1","unresolved":true,"context_lines":[{"line_number":1232,"context_line":"                    try:"},{"line_number":1233,"context_line":"                        self.RBDProxy().remove(client.ioctx, volume_name)"},{"line_number":1234,"context_line":"                    except (self.rbd.ImageHasSnapshots, self.rbd.ImageBusy):"},{"line_number":1235,"context_line":"                        LOG.debug(\"moving volume %s to trash\", volume_name)"},{"line_number":1236,"context_line":"                        self.RBDProxy().trash_move(client.ioctx,"},{"line_number":1237,"context_line":"                                                   volume_name,"},{"line_number":1238,"context_line":"                                                   0)"}],"source_content_type":"text/x-python","patch_set":9,"id":"155832be_46911a92","line":1235,"updated":"2021-09-02 15:31:49.000000000","message":"nit: I would like to see a comment in the code on why we are doing this (as explained in the commit message)","commit_id":"921739c07ba5b3dab3e9973ccc5ced87bee387e3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"99ac88e5ba71ab80ca25d1f397d8ab810af681d1","unresolved":true,"context_lines":[{"line_number":1233,"context_line":"                        self.RBDProxy().remove(client.ioctx, volume_name)"},{"line_number":1234,"context_line":"                    except (self.rbd.ImageHasSnapshots, self.rbd.ImageBusy):"},{"line_number":1235,"context_line":"                        LOG.debug(\"moving volume %s to trash\", volume_name)"},{"line_number":1236,"context_line":"                        self.RBDProxy().trash_move(client.ioctx,"},{"line_number":1237,"context_line":"                                                   volume_name,"},{"line_number":1238,"context_line":"                                                   0)"},{"line_number":1239,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7f24376e_509cd770","line":1236,"updated":"2021-09-02 15:31:49.000000000","message":"?: Should we have a single call to trash_move?\n\n                if self.configuration.enable_deferred_deletion:\n                    delay \u003d self.configuration.deferred_deletion_delay\n                else:\n                    try:\n                        self.RBDProxy().remove(client.ioctx, volume_name)\n                        return\n                    except (self.rbd.ImageHasSnapshots, self.rbd.ImageBusy):\n                        delay \u003d 0\n\n                LOG.debug(\"moving volume %s to trash\", volume_name)\n                self.RBDProxy().trash_move(client.ioctx,\n                                           volume_name,\n                                           delay)","commit_id":"921739c07ba5b3dab3e9973ccc5ced87bee387e3"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"673d93202e8672f6e3bc6f92c4ec76f99360d42d","unresolved":true,"context_lines":[{"line_number":1234,"context_line":"                # When using the RBD v2 clone api, deleting a volume"},{"line_number":1235,"context_line":"                # that has a snapshot in the trash space raises a"},{"line_number":1236,"context_line":"                # busy exception."},{"line_number":1237,"context_line":"                # In order to solve this calls the trash operation"},{"line_number":1238,"context_line":"                # which should succeed when the volume has"},{"line_number":1239,"context_line":"                # dependencies."},{"line_number":1240,"context_line":"                self.RBDProxy().trash_move(client.ioctx,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7753382a_b6942086","line":1237,"updated":"2021-09-03 10:03:08.000000000","message":"nit: In order to solve this, call the trash operation","commit_id":"464d79787335273f6eb95545261b0a11f7c60bb7"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2f45e767c889b59ace5a51aca87df5545dee737a","unresolved":true,"context_lines":[{"line_number":1222,"context_line":"                         self.configuration.rados_connection_interval,"},{"line_number":1223,"context_line":"                         self.configuration.rados_connection_retries)"},{"line_number":1224,"context_line":"            def _try_remove_volume(client, volume_name):"},{"line_number":1225,"context_line":"                delay \u003d 0"},{"line_number":1226,"context_line":"                if self.configuration.enable_deferred_deletion:"},{"line_number":1227,"context_line":"                    delay \u003d self.configuration.deferred_deletion_delay"},{"line_number":1228,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"c86903e7_31179ff4","line":1225,"range":{"start_line":1225,"start_character":16,"end_line":1225,"end_character":25},"updated":"2021-09-14 15:15:04.000000000","message":"nit: This should be in the else clause, not here.  We don\u0027t need a default if we set the value in the both the \u0027if\u0027 and the \u0027else\u0027","commit_id":"e38215734704bcd6a42bfb073c20d22ff32bfc64"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2f45e767c889b59ace5a51aca87df5545dee737a","unresolved":true,"context_lines":[{"line_number":1227,"context_line":"                    delay \u003d self.configuration.deferred_deletion_delay"},{"line_number":1228,"context_line":"                else:"},{"line_number":1229,"context_line":"                    try:"},{"line_number":1230,"context_line":"                        self.RBDProxy().remove(client.ioctx, volume_name)"},{"line_number":1231,"context_line":"                    except (self.rbd.ImageHasSnapshots, self.rbd.ImageBusy):"},{"line_number":1232,"context_line":"                        pass"},{"line_number":1233,"context_line":"                LOG.debug(\"moving volume %s to trash\", volume_name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"31fd709b_12e0538a","line":1230,"updated":"2021-09-14 15:15:04.000000000","message":"-1: This code would try to move to the trash even when the remove succeeded.  \u0027there is a missing return call here.","commit_id":"e38215734704bcd6a42bfb073c20d22ff32bfc64"}],"releasenotes/notes/bug-1941815-RBD-call-trash-operation-when-plain-deletion-fails-50cef4a8a8010ba9.yaml":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"99ac88e5ba71ab80ca25d1f397d8ab810af681d1","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    `Bug #1941815 \u003chttps://bugs.launchpad.net/cinder/+bug/1941815\u003e`_: Fixed"},{"line_number":5,"context_line":"    deleting volumes with snapshots or volume dependencies."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"f8e905f8_4ef24094","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":8},"updated":"2021-09-02 15:31:49.000000000","message":"-1: RBD driver `bug","commit_id":"921739c07ba5b3dab3e9973ccc5ced87bee387e3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"99ac88e5ba71ab80ca25d1f397d8ab810af681d1","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    `Bug #1941815 \u003chttps://bugs.launchpad.net/cinder/+bug/1941815\u003e`_: Fixed"},{"line_number":5,"context_line":"    deleting volumes with snapshots or volume dependencies."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"4d59ce6a_5849f237","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":59},"updated":"2021-09-02 15:31:49.000000000","message":"-1: I think reading just this sentence doesn\u0027t clarify what this is actually fixing...  It is misleading, because this is not related to deleting volumes with cinder snapshots, those snapshots had already been deleted in Cinder, the snapshots only exist in the Ceph cluster.","commit_id":"921739c07ba5b3dab3e9973ccc5ced87bee387e3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"139c26b6f8ea1a5eb78367cd96ffeaa61fd283e9","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    **RBD driver: Enable Ceph V2 Clone API and Ceph Trash auto purge**"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    Fixed deleting volumes with snapshots/volumes in the ceph trash"},{"line_number":13,"context_line":"    space."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Using the v2 clone format for cloned volumes allows volumes with"},{"line_number":16,"context_line":"    dependent images to be moved to the trash - where they remain"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"fe106982_ff766124","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":10},"updated":"2021-09-16 17:17:29.000000000","message":"nit: I think we can remove this, since we explain what we are fixing in L15-16","commit_id":"9d50e5ee9b7cd43380eeb66cb6bb35ea6e3c1df3"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a642f27e5e5e4cace3a6ad6569b90f96e861db63","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    **RBD driver: Enable Ceph V2 Clone API and Ceph Trash auto purge**"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    Fixed deleting volumes with snapshots/volumes in the ceph trash"},{"line_number":13,"context_line":"    space."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Using the v2 clone format for cloned volumes allows volumes with"},{"line_number":16,"context_line":"    dependent images to be moved to the trash - where they remain"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"348c625f_073cee8b","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":10},"in_reply_to":"f0a1abd2_80058a8b","updated":"2021-09-21 14:16:11.000000000","message":"Nice sentence to connect it, thanks.","commit_id":"9d50e5ee9b7cd43380eeb66cb6bb35ea6e3c1df3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e4157b90fd5d4e5b1fcea5de1cde9d35f1c5276b","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    **RBD driver: Enable Ceph V2 Clone API and Ceph Trash auto purge**"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    Fixed deleting volumes with snapshots/volumes in the ceph trash"},{"line_number":13,"context_line":"    space."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    Using the v2 clone format for cloned volumes allows volumes with"},{"line_number":16,"context_line":"    dependent images to be moved to the trash - where they remain"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"f0a1abd2_80058a8b","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":10},"in_reply_to":"fe106982_ff766124","updated":"2021-09-16 21:30:45.000000000","message":"I think the idea was to connect this upgrade recommendation with the bugfix by using the same sentence used for the bugfix summary on lines 5-6.  I think that\u0027s a good idea because it changes the context from being just a good recommendation to something that an operator needs to do because the bugfix will fill up your trash if you don\u0027t pay attention.  But I think you\u0027re right that this sentence is kind of out of place.  Maybe something like:\n\n  In light of the fix for RBD driver `bug #1941815   \u003chttps://bugs.launchpad.net/cinder/+bug/1941815\u003e`_, we want to bring the following information to your attention.","commit_id":"9d50e5ee9b7cd43380eeb66cb6bb35ea6e3c1df3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3e425fb74081924b55d48a94ab4a823a15c995b3","unresolved":true,"context_lines":[{"line_number":17,"context_line":"    until purged - and allow the RBD driver to postpone the deletion"},{"line_number":18,"context_line":"    until the volume has no dependent images. Configuring the trash"},{"line_number":19,"context_line":"    purge is recommended to avoid wasting space with these trashed"},{"line_number":20,"context_line":"    volumes. `The trash can be configured to automatically purge on"},{"line_number":21,"context_line":"    a defined schedule"},{"line_number":22,"context_line":"    \u003chttps://ceph.io/en/news/blog/2020/v15-2-0-octopus-released/#rbd-block-storage\u003e`_."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"57315491_2c1d7455","line":22,"range":{"start_line":20,"start_character":13,"end_line":22,"end_character":86},"updated":"2021-09-16 21:18:11.000000000","message":"The page linked to just basically contains that sentence.  It might be more helpful to say something like:\n\nSince the Ceph Octopus release, the trash can be configured to automatically purge on a defined schedule.  See the ``rbd trash purge schedule`` commands in the `rbd manpage \u003chttps://docs.ceph.com/en/octopus/man/8/rbd/\u003e`_.","commit_id":"9d50e5ee9b7cd43380eeb66cb6bb35ea6e3c1df3"}]}
