)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2ecc01913a6da2c795cd2b9b7884720a18ddc305","unresolved":true,"context_lines":[{"line_number":43,"context_line":"Change-Id: Ib52879a270a4ae4cdd3cb5fc18f2b7bdbccd8ab5"},{"line_number":44,"context_line":"(cherry picked from commit efd83675780a76422436d47c4622e22a0645cc30)"},{"line_number":45,"context_line":"(cherry picked from commit d5fade7d8c6ade6166946280c7717cff10762d1f)"},{"line_number":46,"context_line":"(cherry picked from commit 71987b305077654fcd3433d6bd7a65cd176279c1)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f36dcfa_ad7e240d","line":46,"updated":"2021-02-16 13:31:06.000000000","message":"I think you should add a Conflicts line here and mention that there\u0027s a change in test_rbd.py","commit_id":"1dc95f129331e731c0b0e306cd4ffbce72ed93ac"}],"cinder/tests/unit/volume/drivers/test_rbd.py":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"524b1f35c4e0d8092bc25836f7bcca7548847151","unresolved":true,"context_lines":[{"line_number":894,"context_line":"        self.mock_proxy().__enter__().volume.op_features.return_value \u003d 1"},{"line_number":895,"context_line":"        self.mock_rbd.RBD_OPERATION_FEATURE_CLONE_PARENT \u003d 1"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"        snapshot \u003d mock.Mock()"},{"line_number":898,"context_line":"        self.cfg.rbd_flatten_volume_from_snapshot \u003d False"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        with mock.patch.object(driver, \u0027LOG\u0027) as \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"fd952f56_fccf823b","line":897,"updated":"2021-02-12 17:12:58.000000000","message":"I think _clone in rbd.py is getting snapshot.name so Mock() doesn\u0027t work; if you use snapshot \u003d self.snapshot here it will work","commit_id":"6d60ec19013185206188def1bbfe38650447a93c"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"524b1f35c4e0d8092bc25836f7bcca7548847151","unresolved":true,"context_lines":[{"line_number":915,"context_line":"        self.mock_proxy().__enter__().volume.op_features.return_value \u003d 0"},{"line_number":916,"context_line":"        self.mock_rbd.RBD_OPERATION_FEATURE_CLONE_PARENT \u003d 1"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"        snapshot \u003d mock.Mock()"},{"line_number":919,"context_line":"        self.cfg.rbd_flatten_volume_from_snapshot \u003d False"},{"line_number":920,"context_line":""},{"line_number":921,"context_line":"        with mock.patch.object(driver, \u0027LOG\u0027) as \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"e0f764f3_3cdfc600","line":918,"updated":"2021-02-12 17:12:58.000000000","message":"like 897","commit_id":"6d60ec19013185206188def1bbfe38650447a93c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"2ecc01913a6da2c795cd2b9b7884720a18ddc305","unresolved":true,"context_lines":[{"line_number":894,"context_line":"        self.mock_proxy().__enter__().volume.op_features.return_value \u003d 1"},{"line_number":895,"context_line":"        self.mock_rbd.RBD_OPERATION_FEATURE_CLONE_PARENT \u003d 1"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"        snapshot \u003d self.snapshot"},{"line_number":898,"context_line":"        self.cfg.rbd_flatten_volume_from_snapshot \u003d False"},{"line_number":899,"context_line":""},{"line_number":900,"context_line":"        with mock.patch.object(driver, \u0027LOG\u0027) as \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"25e3e79d_89437f38","line":897,"range":{"start_line":897,"start_character":8,"end_line":897,"end_character":32},"updated":"2021-02-16 13:31:06.000000000","message":"this is different from the ussuri backport and should be noted in the commit message","commit_id":"1dc95f129331e731c0b0e306cd4ffbce72ed93ac"}],"cinder/volume/drivers/rbd.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a971810aa6562572dd55ee5ff97eb1de148fd1db","unresolved":true,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def _show_msg_check_clone_v2_api(self, volume_name):"},{"line_number":278,"context_line":"        if not self._clone_v2_api_checked:"},{"line_number":279,"context_line":"            self._clone_v2_api_checked \u003d True"},{"line_number":280,"context_line":"            with RBDVolumeProxy(self, volume_name) as volume:"},{"line_number":281,"context_line":"                try:"},{"line_number":282,"context_line":"                    if (volume.volume.op_features() \u0026"}],"source_content_type":"text/x-python","patch_set":3,"id":"e6281adc_5fba8966","line":279,"range":{"start_line":279,"start_character":0,"end_line":279,"end_character":45},"updated":"2021-02-16 14:19:15.000000000","message":"I didn\u0027t review the original patch, but there is a bug in this code, because setting the value here means that there\u0027s a case where we won\u0027t log the message: when there\u0027s an exception raised by `op_features` other than AttributeError.\n\nOne possibility to fix this could look like:\n\n        if not self._clone_v2_api_checked:\n            enabled \u003d False\n            with RBDVolumeProxy(self, volume_name) as volume:\n                try:\n                    enabled \u003d (volume.volume.op_features() \u0026\n                               self.rbd.RBD_OPERATION_FEATURE_CLONE_PARENT)\n                except AttributeError:\n                    pass\n            if enabled:                   \n                LOG.info(\u0027Using v2 Clone API\u0027)\n            else:\n                LOG.warning(\u0027Not using v2 clone API, please upgrade to\u0027\n                            \u0027 mimic+ and set the OSD minimum client\u0027\n                            \u0027 compat version to mimic for better\u0027\n                            \u0027 performance, fewer deletion issues\u0027)\n            self._clone_v2_api_checked \u003d True","commit_id":"c3759271c94f8b3c56aca13a895d427addebddd0"}]}
