)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ee6127c186065788cbd1bf9789129324a5a7b004","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9a5ece3c_26cfb61c","updated":"2026-09-30 16:06:18.000000000","message":"I\u0027m unsure how this addresses the issue described in the storyboard report. Could you be a little more explicit in the commit message?","commit_id":"5005b8f4fd81af4b2c1b22ea0902004c032e219c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5fc57ca3e3c955b95dfde2d0d620689e9b678ce5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b917a707_efd4bc38","in_reply_to":"9a5ece3c_26cfb61c","updated":"2026-09-30 16:11:50.000000000","message":"Ignore me. I\u0027ve just grokked the issue https://review.opendev.org/c/openstack/python-openstackclient/+/1008088/1/openstackclient/volume/v3/volume_attachment.py#518","commit_id":"5005b8f4fd81af4b2c1b22ea0902004c032e219c"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"e11a7fb5344c2fc40522bb9451dfbbff3ab01aa4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ff921cc4_95e98bfa","updated":"2026-10-01 08:03:24.000000000","message":"recheck","commit_id":"82ddf9924b924094cdc2a8c77180716d51a4a0bb"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"5f166f65da290caf955113b9e0349257b0e52ae9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8d496f5a_535b9b21","updated":"2026-10-01 08:30:23.000000000","message":"recheck","commit_id":"5cc3cd4a617567e6c21e00475d2023e251101ab1"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"30d9031bf7b45f2af63a551d33e980277789918a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c921d773_778a2111","updated":"2026-10-01 10:16:16.000000000","message":"recheck","commit_id":"b19b115dfb333038cc15b0e225230bf6ded02861"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"59ece75a523e3a50d27201988b64c73c66931a77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ddd07e7e_44169dff","updated":"2026-10-01 10:42:44.000000000","message":"Suggestion implemented in patchset 5","commit_id":"a4cad3d8595fb8f396f4943ba0607f8a280b9ffc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f59dd871a8236172685bbf059a243f1e19aeb7f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3aedf9a8_76c3feb8","updated":"2026-10-01 10:59:09.000000000","message":"assuming CI is happy","commit_id":"a4cad3d8595fb8f396f4943ba0607f8a280b9ffc"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"eaa7ec9594216fca386a73e7f36df705e68756f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b1ea1033_4f75bba0","updated":"2026-10-01 10:47:55.000000000","message":"recheck","commit_id":"a4cad3d8595fb8f396f4943ba0607f8a280b9ffc"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"3ec131d185194039372db87a9cc08e11734030e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"293fd939_33582d62","in_reply_to":"3aedf9a8_76c3feb8","updated":"2026-10-01 13:14:19.000000000","message":"Patchset 6 should correct the CI errors","commit_id":"a4cad3d8595fb8f396f4943ba0607f8a280b9ffc"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"3ec131d185194039372db87a9cc08e11734030e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bae67e72_3db457d9","updated":"2026-10-01 13:14:19.000000000","message":"recheck","commit_id":"1d344c4558786172d7365eb73a6684b4d9bc6e4e"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"c75b33aab1f05c8dcb8e864330543e14520da493","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6b4766c4_5c6eec63","updated":"2026-10-01 18:38:52.000000000","message":"@stephenfin@redhat.com Zuul CI is failing, but it is not related to this change","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"dd64fd02bf66ac9251f1f39e24a73de804771209","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8f9a281e_d579484e","updated":"2026-10-01 16:48:53.000000000","message":"Should correct PIP8 CI error","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"6e2dc79b7360ef895f3ed6f2ea344ef9e1308dc3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ead2f375_09f32b2c","updated":"2026-10-02 06:40:34.000000000","message":"The CI failed with an unrelated network `AddressScopeTests` functional test errors:\n\n```\n{7} openstackclient.tests.functional.network.v2.test_address_scope.AddressScopeTests.test_address_scope_list [4.957885s] ... FAILED\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/home/zuul/src/opendev.org/openstack/python-openstackclient/openstackclient/tests/functional/network/v2/test_address_scope.py\", line 71, in test_address_scope_list\n    self.assertTrue(cmd_output[\u0027shared\u0027])\n\n      File \"/usr/lib/python3.12/unittest/case.py\", line 727, in assertTrue\n    raise self.failureException(msg)\n\n    AssertionError: False is not true\n```\n\nHow can we go forward?","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"8e7aeb47e5609e27d9c3059996c712e369150df6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"85a14b75_99ef165a","updated":"2026-10-02 23:50:05.000000000","message":"recheck","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"3975dabcf06f8bb835411721611718d2970420e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a2909ac0_682c7dc9","updated":"2026-10-01 19:53:53.000000000","message":"recheck","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"4028476c6fc3b140d7dfd72ebec8faabb8129cd3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f8ea4569_c4b24741","updated":"2026-10-01 16:49:19.000000000","message":"recheck","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"bdf3233f4b6619da60f9239293cad8afdb7552c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"82ea3920_3fa2401d","updated":"2026-10-01 23:48:36.000000000","message":"recheck - failed test openstackclient.tests.functional.network.v2.test_address_scope","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"46161ebb693a097845ace4c4ea11bb820f6548cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d31fe8b1_1b633df7","in_reply_to":"ead2f375_09f32b2c","updated":"2026-10-02 16:44:21.000000000","message":"https://review.opendev.org/c/openstack/python-openstackclient/+/1008496 should fix this. It\u0027s due to a change in neutron. Please rebase on top of that or hold rechecks until that merges.","commit_id":"e856924bc98d47f32d35149c70a6ae230540b894"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"f738ddafe1d0b6c7fc47ab3a037da49c6fde273e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7f23b89f_8dd436c3","updated":"2026-10-03 09:11:47.000000000","message":"recheck","commit_id":"fdc1a1f148ecb2219e754311e63c3086a8d1c9ff"}],"openstackclient/volume/v3/volume_attachment.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ee6127c186065788cbd1bf9789129324a5a7b004","unresolved":true,"context_lines":[{"line_number":490,"context_line":"                parsed_args.project_domain,"},{"line_number":491,"context_line":"            )"},{"line_number":492,"context_line":"            query[\u0027project_id\u0027] \u003d project_id"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        # set value of \u0027all_tenants\u0027 when using project option or all_projects option"},{"line_number":495,"context_line":"        all_projects \u003d bool(parsed_args.project) or parsed_args.all_projects"},{"line_number":496,"context_line":"        query[\u0027all_tenants\u0027] \u003d all_projects"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"        if parsed_args.volume_id:"},{"line_number":499,"context_line":"            query[\u0027volume_id\u0027] \u003d parsed_args.volume_id"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        if parsed_args.status:"},{"line_number":502,"context_line":"            query[\u0027status\u0027] \u003d parsed_args.status"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if parsed_args.limit:"},{"line_number":505,"context_line":"            query[\u0027limit\u0027] \u003d parsed_args.limit"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        if parsed_args.marker:"},{"line_number":508,"context_line":"            query[\u0027marker\u0027] \u003d parsed_args.marker"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        if parsed_args.max_items:"},{"line_number":511,"context_line":"            query[\u0027max_items\u0027] \u003d parsed_args.max_items"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        # Update search option with `filters`"},{"line_number":514,"context_line":"        # if AppendFilters.filters:"},{"line_number":515,"context_line":"        #     search_opts.update(shell_utils.extract_filters(AppendFilters.filters))  # noqa: E501"}],"source_content_type":"text/x-python","patch_set":1,"id":"11245c2e_63df3c28","line":512,"range":{"start_line":493,"start_character":0,"end_line":512,"end_character":1},"updated":"2026-09-30 16:06:18.000000000","message":"Do we need to do this? It\u0027s my understanding that these options will either get set to either empty query strings (`?max_items\u003d\u0026marker\u003d`) or be ignored if their values are `None`","commit_id":"5005b8f4fd81af4b2c1b22ea0902004c032e219c"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"104b8a24e323fe5982e32f624645a938fd660726","unresolved":false,"context_lines":[{"line_number":490,"context_line":"                parsed_args.project_domain,"},{"line_number":491,"context_line":"            )"},{"line_number":492,"context_line":"            query[\u0027project_id\u0027] \u003d project_id"},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        # set value of \u0027all_tenants\u0027 when using project option or all_projects option"},{"line_number":495,"context_line":"        all_projects \u003d bool(parsed_args.project) or parsed_args.all_projects"},{"line_number":496,"context_line":"        query[\u0027all_tenants\u0027] \u003d all_projects"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"        if parsed_args.volume_id:"},{"line_number":499,"context_line":"            query[\u0027volume_id\u0027] \u003d parsed_args.volume_id"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        if parsed_args.status:"},{"line_number":502,"context_line":"            query[\u0027status\u0027] \u003d parsed_args.status"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if parsed_args.limit:"},{"line_number":505,"context_line":"            query[\u0027limit\u0027] \u003d parsed_args.limit"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        if parsed_args.marker:"},{"line_number":508,"context_line":"            query[\u0027marker\u0027] \u003d parsed_args.marker"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        if parsed_args.max_items:"},{"line_number":511,"context_line":"            query[\u0027max_items\u0027] \u003d parsed_args.max_items"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        # Update search option with `filters`"},{"line_number":514,"context_line":"        # if AppendFilters.filters:"},{"line_number":515,"context_line":"        #     search_opts.update(shell_utils.extract_filters(AppendFilters.filters))  # noqa: E501"}],"source_content_type":"text/x-python","patch_set":1,"id":"ce7de090_c4f9c75a","line":512,"range":{"start_line":493,"start_character":0,"end_line":512,"end_character":1},"in_reply_to":"11245c2e_63df3c28","updated":"2026-10-01 07:17:20.000000000","message":"My wrong, `max_items` is not allowed in the request query, see https://docs.openstack.org/api-ref/block-storage/v3/#id409 \n\nRemoved.","commit_id":"5005b8f4fd81af4b2c1b22ea0902004c032e219c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5fc57ca3e3c955b95dfde2d0d620689e9b678ce5","unresolved":true,"context_lines":[{"line_number":515,"context_line":"        #     search_opts.update(shell_utils.extract_filters(AppendFilters.filters))  # noqa: E501"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        # TODO(stephenfin): Implement sorting"},{"line_number":518,"context_line":"        attachments \u003d volume_client.attachments(**query)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        column_headers \u003d ("},{"line_number":521,"context_line":"            \u0027ID\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a6182560_32eb0c15","line":518,"updated":"2026-09-30 16:11:50.000000000","message":"Okay, this is the crux of the issue. We were previously passing all search opts via `search_opts` but that doesn\u0027t work with SDK.","commit_id":"5005b8f4fd81af4b2c1b22ea0902004c032e219c"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"104b8a24e323fe5982e32f624645a938fd660726","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        #     search_opts.update(shell_utils.extract_filters(AppendFilters.filters))  # noqa: E501"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        # TODO(stephenfin): Implement sorting"},{"line_number":518,"context_line":"        attachments \u003d volume_client.attachments(**query)"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        column_headers \u003d ("},{"line_number":521,"context_line":"            \u0027ID\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c19ca8b7_6ffe29b5","line":518,"in_reply_to":"a6182560_32eb0c15","updated":"2026-10-01 07:17:20.000000000","message":"Done","commit_id":"5005b8f4fd81af4b2c1b22ea0902004c032e219c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a16e3547d45cc59d5f720f487ce4c36df6e87cbe","unresolved":true,"context_lines":[{"line_number":487,"context_line":"            )"},{"line_number":488,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        query \u003d {}"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        if parsed_args.project:"},{"line_number":493,"context_line":"            project_id \u003d identity_common.find_project_id_sdk("},{"line_number":494,"context_line":"                identity_client,"},{"line_number":495,"context_line":"                parsed_args.project,"},{"line_number":496,"context_line":"                parsed_args.project_domain,"},{"line_number":497,"context_line":"            )"},{"line_number":498,"context_line":"            query[\u0027project_id\u0027] \u003d project_id"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        # set value of \u0027all_tenants\u0027 when using project option or all_projects option"},{"line_number":501,"context_line":"        all_projects \u003d bool(parsed_args.project) or parsed_args.all_projects"},{"line_number":502,"context_line":"        query[\u0027all_tenants\u0027] \u003d all_projects"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if parsed_args.volume_id:"},{"line_number":505,"context_line":"            query[\u0027volume_id\u0027] \u003d parsed_args.volume_id"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        if parsed_args.server_id:"},{"line_number":508,"context_line":"            query[\u0027instance_id\u0027] \u003d parsed_args.server_id"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        if parsed_args.status:"},{"line_number":511,"context_line":"            query[\u0027status\u0027] \u003d parsed_args.status"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        if parsed_args.limit:"},{"line_number":514,"context_line":"            query[\u0027limit\u0027] \u003d parsed_args.limit"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        if parsed_args.marker:"},{"line_number":517,"context_line":"            query[\u0027marker\u0027] \u003d parsed_args.marker"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        # Update search option with `filters`"},{"line_number":520,"context_line":"        # if AppendFilters.filters:"}],"source_content_type":"text/x-python","patch_set":3,"id":"32a77d93_f401dfd8","line":517,"range":{"start_line":490,"start_character":0,"end_line":517,"end_character":48},"updated":"2026-10-01 09:14:53.000000000","message":"My question on PS1 was whether we can do the following:\n\n```suggestion\n        project_id \u003d None\n        if parsed_args.project:\n            project_id \u003d identity_common.find_project_id_sdk(\n                identity_client,\n                parsed_args.project,\n                parsed_args.project_domain,\n            )\n\n        # set value of \u0027all_tenants\u0027 when using project option or all_projects option\n        all_projects \u003d bool(parsed_args.project) or parsed_args.all_projects\n        query \u003d {\n            \u0027all_tenants\u0027\u003dall_projects,\n            \u0027volume_id\u0027\u003dparsed_args.volume_id,\n            \u0027instance_id\u0027\u003dparsed_args.server_id,\n            \u0027status\u0027\u003dparsed_args.status,\n            \u0027limit\u0027\u003dparsed_args.limit,\n            \u0027marker\u0027\u003dparsed_args.marker,\n        }\n```\n\n?","commit_id":"5cc3cd4a617567e6c21e00475d2023e251101ab1"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"e81cf4dd8afe361122210e78b49b568c1eef02f2","unresolved":true,"context_lines":[{"line_number":487,"context_line":"            )"},{"line_number":488,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        query \u003d {}"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        if parsed_args.project:"},{"line_number":493,"context_line":"            project_id \u003d identity_common.find_project_id_sdk("},{"line_number":494,"context_line":"                identity_client,"},{"line_number":495,"context_line":"                parsed_args.project,"},{"line_number":496,"context_line":"                parsed_args.project_domain,"},{"line_number":497,"context_line":"            )"},{"line_number":498,"context_line":"            query[\u0027project_id\u0027] \u003d project_id"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        # set value of \u0027all_tenants\u0027 when using project option or all_projects option"},{"line_number":501,"context_line":"        all_projects \u003d bool(parsed_args.project) or parsed_args.all_projects"},{"line_number":502,"context_line":"        query[\u0027all_tenants\u0027] \u003d all_projects"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if parsed_args.volume_id:"},{"line_number":505,"context_line":"            query[\u0027volume_id\u0027] \u003d parsed_args.volume_id"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        if parsed_args.server_id:"},{"line_number":508,"context_line":"            query[\u0027instance_id\u0027] \u003d parsed_args.server_id"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        if parsed_args.status:"},{"line_number":511,"context_line":"            query[\u0027status\u0027] \u003d parsed_args.status"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        if parsed_args.limit:"},{"line_number":514,"context_line":"            query[\u0027limit\u0027] \u003d parsed_args.limit"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        if parsed_args.marker:"},{"line_number":517,"context_line":"            query[\u0027marker\u0027] \u003d parsed_args.marker"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        # Update search option with `filters`"},{"line_number":520,"context_line":"        # if AppendFilters.filters:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ede0873e_5a07a522","line":517,"range":{"start_line":490,"start_character":0,"end_line":517,"end_character":48},"in_reply_to":"32a77d93_f401dfd8","updated":"2026-10-01 09:52:04.000000000","message":"Yes we could do it like this...\n\nBut it is not streamlined with how it is done in volume `class ListVolume()` https://opendev.org/openstack/python-openstackclient/src/branch/master/openstackclient/volume/v3/volume.py#L672-L709\n\nAnd it will send unnecessary `None` query parameters to Cinder API, i.e. `GET /attachments?limit\u003dNone\u0026marker\u003dNone\u0026status\u003dNone\u0026project_id\u003dNone\u0026volume_id\u003dNone\u0026instance_id\u003dNone\u0026all_tenants\u003dTrue`.\n\nIsn\u0027t wiser to keep it streamlined, and send only the required query parameters?","commit_id":"5cc3cd4a617567e6c21e00475d2023e251101ab1"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"59ece75a523e3a50d27201988b64c73c66931a77","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            )"},{"line_number":488,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":489,"context_line":""},{"line_number":490,"context_line":"        query \u003d {}"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        if parsed_args.project:"},{"line_number":493,"context_line":"            project_id \u003d identity_common.find_project_id_sdk("},{"line_number":494,"context_line":"                identity_client,"},{"line_number":495,"context_line":"                parsed_args.project,"},{"line_number":496,"context_line":"                parsed_args.project_domain,"},{"line_number":497,"context_line":"            )"},{"line_number":498,"context_line":"            query[\u0027project_id\u0027] \u003d project_id"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        # set value of \u0027all_tenants\u0027 when using project option or all_projects option"},{"line_number":501,"context_line":"        all_projects \u003d bool(parsed_args.project) or parsed_args.all_projects"},{"line_number":502,"context_line":"        query[\u0027all_tenants\u0027] \u003d all_projects"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        if parsed_args.volume_id:"},{"line_number":505,"context_line":"            query[\u0027volume_id\u0027] \u003d parsed_args.volume_id"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        if parsed_args.server_id:"},{"line_number":508,"context_line":"            query[\u0027instance_id\u0027] \u003d parsed_args.server_id"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        if parsed_args.status:"},{"line_number":511,"context_line":"            query[\u0027status\u0027] \u003d parsed_args.status"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"        if parsed_args.limit:"},{"line_number":514,"context_line":"            query[\u0027limit\u0027] \u003d parsed_args.limit"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        if parsed_args.marker:"},{"line_number":517,"context_line":"            query[\u0027marker\u0027] \u003d parsed_args.marker"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        # Update search option with `filters`"},{"line_number":520,"context_line":"        # if AppendFilters.filters:"}],"source_content_type":"text/x-python","patch_set":3,"id":"89afe426_675aec40","line":517,"range":{"start_line":490,"start_character":0,"end_line":517,"end_character":48},"in_reply_to":"ede0873e_5a07a522","updated":"2026-10-01 10:42:44.000000000","message":"Implemented like @stephenfin@redhat.com suggested.","commit_id":"5cc3cd4a617567e6c21e00475d2023e251101ab1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a16e3547d45cc59d5f720f487ce4c36df6e87cbe","unresolved":true,"context_lines":[{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        # Update search option with `filters`"},{"line_number":520,"context_line":"        # if AppendFilters.filters:"},{"line_number":521,"context_line":"        #     search_opts.update(shell_utils.extract_filters(AppendFilters.filters))  # noqa: E501"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        # TODO(stephenfin): Implement sorting"},{"line_number":524,"context_line":"        attachments \u003d volume_client.attachments(**query)"}],"source_content_type":"text/x-python","patch_set":3,"id":"a001abc6_5f90359d","line":521,"updated":"2026-10-01 09:14:53.000000000","message":"Can you just remove this. It will no longer be valid code after this change","commit_id":"5cc3cd4a617567e6c21e00475d2023e251101ab1"},{"author":{"_account_id":7654,"name":"Valery Tschopp","email":"valery.tschopp@switch.ch","username":"valery.tschopp","status":"SWITCH"},"change_message_id":"e81cf4dd8afe361122210e78b49b568c1eef02f2","unresolved":false,"context_lines":[{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        # Update search option with `filters`"},{"line_number":520,"context_line":"        # if AppendFilters.filters:"},{"line_number":521,"context_line":"        #     search_opts.update(shell_utils.extract_filters(AppendFilters.filters))  # noqa: E501"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"        # TODO(stephenfin): Implement sorting"},{"line_number":524,"context_line":"        attachments \u003d volume_client.attachments(**query)"}],"source_content_type":"text/x-python","patch_set":3,"id":"2970ec9b_217622f7","line":521,"in_reply_to":"a001abc6_5f90359d","updated":"2026-10-01 09:52:04.000000000","message":"Removed","commit_id":"5cc3cd4a617567e6c21e00475d2023e251101ab1"}]}
