)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"463e587aa4780115621ab22356a3431993b6d161","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a1ee385a_af548557","updated":"2023-09-29 09:19:00.000000000","message":"Looking good. Some small test-related comments inline.","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deadb201c85054801d97675fb3cd681318b430b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a90dde6a_17070123","updated":"2023-10-19 10:59:13.000000000","message":"CI will pass once we cut an SDK release with that v2 capabilities feature included","commit_id":"39a084f91cd580be6adf46e8e752233112f6ec74"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bf5fb6583c21f580e6d1215272bca80370389231","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0739b3d7_de88d16c","updated":"2023-10-11 19:46:27.000000000","message":"Tested this locally with the SDK patch and it passes all the tests\n\n$ python3 -m testtools.run openstackclient/tests/unit/volume/v2/test_volume_backend.py\nTests running...\n\nRan 3 tests in 0.058s\nOK","commit_id":"39a084f91cd580be6adf46e8e752233112f6ec74"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"98a2ee15514a03f8dd7ccdaf982f9502e225f37a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a2c98fbd_18ede62d","updated":"2023-10-27 14:18:17.000000000","message":"recheck openstacksdk 2.0.0 is out","commit_id":"39a084f91cd580be6adf46e8e752233112f6ec74"}],"openstackclient/tests/unit/volume/v2/test_volume_backend.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"463e587aa4780115621ab22356a3431993b6d161","unresolved":true,"context_lines":[{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"aff15137_e0910896","line":27,"updated":"2023-09-29 09:19:00.000000000","message":"Could you spec this mock with the proxy API, similar to what we now do for the [image and network clients](https://review.opendev.org/c/openstack/python-openstackclient/+/885527/3/openstackclient/tests/unit/network/v2/fakes.py#100) (and I\u0027d like to do it for volume and compute eventually).","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d2bad3b6544886258cbfeb408696e35365581871","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e384212d_8ec4d26e","line":27,"in_reply_to":"aff15137_e0910896","updated":"2023-10-19 10:58:48.000000000","message":"Done","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"463e587aa4780115621ab22356a3431993b6d161","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class TestShowVolumeCapability(TestVolumeBackendBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"75e14a35_cc5100e2","line":28,"updated":"2023-09-29 09:19:00.000000000","message":"Rather than defining these mocks here, could we define them on the base `TestVolume` class instead? If so, maybe call this `sdk_volume_client` instead of just `sdk_client` (to avoid clashes with fake SDK clients for e.g. the compute or network services).","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f1b538bdf66f0a5d26edc726d48da5d5d9ab34a1","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class TestShowVolumeCapability(TestVolumeBackendBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"66822a85_1c4f5b50","line":28,"in_reply_to":"26de169c_7ab60035","updated":"2023-10-03 12:09:22.000000000","message":"I tried rebasing but faced 2 issues\n\n1. The get_capabilities command doesn\u0027t exist in v2.proxy so using v2.fakes, it errors out\n*** AttributeError: Mock object has no attribute \u0027get_capabilities\u0027\n2. Using the v3.fakes it gives some circular import error\n\n  File \"/home/stack/python-openstackclient/openstackclient/tests/unit/volume/v2/test_volume_backend.py\", line 19, in \u003cmodule\u003e\n    from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes\n  File \"/home/stack/python-openstackclient/openstackclient/tests/unit/volume/v3/fakes.py\", line 23, in \u003cmodule\u003e\n    from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes\n  File \"/home/stack/python-openstackclient/openstackclient/tests/unit/compute/v2/fakes.py\", line 154, in \u003cmodule\u003e\n    volume_fakes.FakeClientMixin,\nAttributeError: partially initialized module \u0027openstackclient.tests.unit.volume.v3.fakes\u0027 has no attribute \u0027FakeClientMixin\u0027 (most likely due to a circular import)","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bf5fb6583c21f580e6d1215272bca80370389231","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class TestShowVolumeCapability(TestVolumeBackendBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"0b6881bf_04333e3d","line":28,"in_reply_to":"491bf6f4_f0094e22","updated":"2023-10-11 19:46:27.000000000","message":"Done","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"15d20ece78d9d66be158a4f0edbf572bde5980ea","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class TestShowVolumeCapability(TestVolumeBackendBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"491bf6f4_f0094e22","line":28,"in_reply_to":"58032825_acf497e2","updated":"2023-10-11 08:58:30.000000000","message":"Ack, I\u0027ve reviewed that patch and will update this patch as well to use the correct client.","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7cf3917033b98dd9357b1e5268da882159ffa7d9","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class TestShowVolumeCapability(TestVolumeBackendBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"58032825_acf497e2","line":28,"in_reply_to":"66822a85_1c4f5b50","updated":"2023-10-06 16:00:14.000000000","message":"\u003e I tried rebasing but faced 2 issues\n\u003e \n\u003e 1. The get_capabilities command doesn\u0027t exist in v2.proxy so using v2.fakes, it errors out\n\u003e ```\n\u003e *** AttributeError: Mock object has no attribute \u0027get_capabilities\u0027\n\u003e ```\n\nThis is a good thing 😊 You would have run into this issue if someone had tried to use OSC with a Cinder v2 API (which is still available on older deployments, of course).\n\nI went and added this to SDK. You can find the PR here:\n\nhttps://review.opendev.org/c/openstack/openstacksdk/+/897569\n\n\u003e 2. Using the v3.fakes it gives some circular import error\n\u003e \n\u003e   ```\n\u003e   File \"/home/stack/python-openstackclient/openstackclient/tests/unit/volume/v2/test_volume_backend.py\", line 19, in \u003cmodule\u003e\n\u003e     from openstackclient.tests.unit.volume.v3 import fakes as volume_fakes\n\u003e   File \"/home/stack/python-openstackclient/openstackclient/tests/unit/volume/v3/fakes.py\", line 23, in \u003cmodule\u003e\n\u003e     from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes\n\u003e   File \"/home/stack/python-openstackclient/openstackclient/tests/unit/compute/v2/fakes.py\", line 154, in \u003cmodule\u003e\n\u003e     volume_fakes.FakeClientMixin,\n\u003e AttributeError: partially initialized module \u0027openstackclient.tests.unit.volume.v3.fakes\u0027 has no attribute \u0027FakeClientMixin\u0027 (most likely due to a circular import)\n\u003e    ```\n\nWeird, I wasn\u0027t able to reproduce this. However, per above we shouldn\u0027t be using the v2 proxy so hopefully this is a non-issue.\n\nPersonally, I\u0027d like to wait for https://review.opendev.org/c/openstack/openstacksdk/+/897569 to land and release before we merge this. However, if you\u0027d like to get this done sooner could you rename `sdk_client` to `volume_sdk_client` so that at least our fixup is a bit easier later?","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7b035d62b8ddf0654bc07af167bffeead604421b","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        super().setUp()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.app.client_manager.sdk_connection.volume \u003d mock.Mock()"},{"line_number":28,"context_line":"        self.sdk_client \u003d self.app.client_manager.sdk_connection.volume"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class TestShowVolumeCapability(TestVolumeBackendBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"26de169c_7ab60035","line":28,"in_reply_to":"75e14a35_cc5100e2","updated":"2023-09-29 09:20:18.000000000","message":"You could also just rebase onto https://review.opendev.org/c/openstack/python-openstackclient/+/896915 and depend on that. I had that locally for a few weeks but had forgotten to push it.","commit_id":"5fba11efef0e4d83e8bcb68c7f0d1f15c64f5a1a"}]}
