)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1079291e61653ad37ca08a83fcb9815742ff287a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"91433eb2_eb7057cc","updated":"2024-08-30 11:07:16.000000000","message":"The client does not seems to work for me:\n\n```\nstack@gibi-devstack-aio-jammy:~$ curl -g -i -X GET http://10.0.76.222/compute/v2.1/servers/$VM/shares -H \"Accept: application/json\" -H \"Content-Type: application/json\" -H \"X-Auth-Token: $TOKEN\" -H \"X-OpenStack-Nova-API-Version: 2.97\"\nHTTP/1.1 200 OK\nDate: Fri, 30 Aug 2024 11:00:50 GMT\nServer: Apache/2.4.52 (Ubuntu)\nContent-Length: 133\nContent-Type: application/json\nOpenStack-API-Version: compute 2.97\nX-OpenStack-Nova-API-Version: 2.97\nVary: OpenStack-API-Version,X-OpenStack-Nova-API-Version\nx-openstack-request-id: req-c43cf912-fa7b-4678-bab8-d0f767396cef\nx-compute-request-id: req-c43cf912-fa7b-4678-bab8-d0f767396cef\nConnection: close\n\n{\"shares\": [{\"share_id\": \"20182343-f288-4247-b011-02642d884170\", \"status\": \"active\", \"tag\": \"20182343-f288-4247-b011-02642d884170\"}]}stack@gibi-devstack-aio-jammy:~$ \n```\n\n```\nstack@gibi-devstack-aio-jammy:~$ openstack server share list $VM\nNotFoundException: 404: Client Error for url: http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478/shares, The resource could not be found.\nstack@gibi-devstack-aio-jammy:~$ openstack --debug  server share list $VM\nSTART with options: --debug server share list 5a33b995-17a3-406a-b06d-ff11ff358478\nREQ: curl -g -i -X GET http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478 -H \"OpenStack-API-Version: compute 2.96\" -H \"User-Agent: openstacksdk/3.3.1 keystoneauth1/5.6.0 python-requests/2.31.0 CPython/3.10.12\" -H \"X-Auth-Token: {SHA256}6b849bc0349958389401dc6b0b473588e335ddb80498b8a66e3f8462f5624fe4\" -H \"X-OpenStack-Nova-API-Version: 2.96\"\nResetting dropped connection: 10.0.76.222\nhttp://10.0.76.222:80 \"GET /compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478 HTTP/1.1\" 200 1788\nRESP: [200] Connection: close Content-Length: 1788 Content-Type: application/json Date: Fri, 30 Aug 2024 11:02:15 GMT OpenStack-API-Version: compute 2.96 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.96 x-compute-request-id: req-3e36ead5-2420-42e4-8cb2-6eb337464dff x-openstack-request-id: req-3e36ead5-2420-42e4-8cb2-6eb337464dff\nRESP BODY: {\"server\": {\"id\": \"5a33b995-17a3-406a-b06d-ff11ff358478\", \"name\": \"vm3\", \"status\": \"ACTIVE\", \"tenant_id\": \"e20ffcd42d424a739fa224589aa0fa06\", \"user_id\": \"f1bff943dae94122a196e67a5fc0b276\", \"metadata\": {}, \"hostId\": \"f38a09659791d2b959d751f70929a34854d81e99e37624f7b13fc44f\", \"image\": {\"id\": \"b3dd644a-1e6d-4876-b9f3-733849c8c2f6\", \"links\": [{\"rel\": \"bookmark\", \"href\": \"http://10.0.76.222/compute/images/b3dd644a-1e6d-4876-b9f3-733849c8c2f6\"}]}, \"flavor\": {\"vcpus\": 1, \"ram\": 1024, \"disk\": 10, \"ephemeral\": 0, \"swap\": 0, \"original_name\": \"ds1G\", \"extra_specs\": {\"hw_rng:allowed\": \"True\"}}, \"created\": \"2024-08-28T11:59:26Z\", \"updated\": \"2024-08-29T15:30:45Z\", \"addresses\": {\"private\": [{\"version\": 4, \"addr\": \"10.0.0.23\", \"OS-EXT-IPS:type\": \"fixed\", \"OS-EXT-IPS-MAC:mac_addr\": \"fa:16:3e:48:d5:44\"}, {\"version\": 6, \"addr\": \"fd0f:3f0e:dd79:0:f816:3eff:fe48:d544\", \"OS-EXT-IPS:type\": \"fixed\", \"OS-EXT-IPS-MAC:mac_addr\": \"fa:16:3e:48:d5:44\"}]}, \"accessIPv4\": \"\", \"accessIPv6\": \"\", \"links\": [{\"rel\": \"self\", \"href\": \"http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478\"}, {\"rel\": \"bookmark\", \"href\": \"http://10.0.76.222/compute/servers/5a33b995-17a3-406a-b06d-ff11ff358478\"}], \"OS-DCF:diskConfig\": \"MANUAL\", \"progress\": 0, \"OS-EXT-AZ:availability_zone\": \"nova\", \"pinned_availability_zone\": null, \"config_drive\": \"\", \"key_name\": null, \"OS-SRV-USG:launched_at\": \"2024-08-29T13:37:19.000000\", \"OS-SRV-USG:terminated_at\": null, \"security_groups\": [{\"name\": \"default\"}], \"OS-EXT-STS:task_state\": null, \"OS-EXT-STS:vm_state\": \"active\", \"OS-EXT-STS:power_state\": 1, \"os-extended-volumes:volumes_attached\": [], \"locked\": false, \"locked_reason\": null, \"description\": null, \"tags\": [], \"trusted_image_certificates\": null, \"OS-EXT-SRV-ATTR:hostname\": \"vm3\", \"server_groups\": []}}\nGET call to compute for http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478 used request id req-3e36ead5-2420-42e4-8cb2-6eb337464dff\nREQ: curl -g -i -X GET http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478/shares -H \"Accept: application/json\" -H \"OpenStack-API-Version: compute 2.96\" -H \"User-Agent: openstacksdk/3.3.1 keystoneauth1/5.6.0 python-requests/2.31.0 CPython/3.10.12\" -H \"X-Auth-Token: {SHA256}6b849bc0349958389401dc6b0b473588e335ddb80498b8a66e3f8462f5624fe4\" -H \"X-OpenStack-Nova-API-Version: 2.96\"\nResetting dropped connection: 10.0.76.222\nhttp://10.0.76.222:80 \"GET /compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478/shares HTTP/1.1\" 404 78\nRESP: [404] Connection: close Content-Length: 78 Content-Type: application/json; charset\u003dUTF-8 Date: Fri, 30 Aug 2024 11:02:15 GMT OpenStack-API-Version: compute 2.96 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.96 x-compute-request-id: req-1182863f-acff-4001-a637-8895d0575536 x-openstack-request-id: req-1182863f-acff-4001-a637-8895d0575536\nRESP BODY: {\"itemNotFound\": {\"code\": 404, \"message\": \"The resource could not be found.\"}}\nGET call to compute for http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478/shares used request id req-1182863f-acff-4001-a637-8895d0575536\nNotFoundException: 404: Client Error for url: http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478/shares, The resource could not be found.\nTraceback (most recent call last):\n  File \"/opt/stack/data/venv/lib/python3.10/site-packages/cliff/app.py\", line 431, in run_subcommand\n    result \u003d cmd.run(parsed_args)\n  File \"/opt/stack/data/venv/lib/python3.10/site-packages/osc_lib/command/command.py\", line 38, in run\n    return super(Command, self).run(parsed_args)\n  File \"/opt/stack/data/venv/lib/python3.10/site-packages/cliff/display.py\", line 125, in run\n    self.produce_output(parsed_args, column_names, data)\n  File \"/opt/stack/data/venv/lib/python3.10/site-packages/cliff/lister.py\", line 125, in produce_output\n    self.formatter.emit_list(\n  File \"/opt/stack/data/venv/lib/python3.10/site-packages/cliff/formatters/table.py\", line 108, in emit_list\n    self.add_rows(x, column_names, data)\n  File \"/opt/stack/data/venv/lib/python3.10/site-packages/cliff/formatters/table.py\", line 87, in add_rows\n    first_row \u003d next(data_iter)\n  File \"/opt/stack/python-openstackclient/openstackclient/compute/v2/server_share.py\", line 83, in \u003cgenexpr\u003e\n    (utils.get_item_properties(s, columns) for s in shares),\n  File \"/opt/stack/openstacksdk/openstack/resource.py\", line 2100, in list\n    exceptions.raise_from_response(response)\n  File \"/opt/stack/openstacksdk/openstack/exceptions.py\", line 244, in raise_from_response\n    raise cls(\nopenstack.exceptions.NotFoundException: NotFoundException: 404: Client Error for url: http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478/shares, The resource could not be found.\nclean_up ListServerShare: NotFoundException: 404: Client Error for url: http://10.0.76.222/compute/v2.1/servers/5a33b995-17a3-406a-b06d-ff11ff358478/shares, The resource could not be found.\nEND return value: 1\nstack@gibi-devstack-aio-jammy:~$ \n\n```\nprobably due to the too old microversion used in the request.","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ff51d83e05a1a9bd75179027e8dd4fdf0705d2c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"b2c40ee7_29b6d578","updated":"2026-04-15 08:15:14.000000000","message":"recheck","commit_id":"ce4fcd3523d58515e0e391fff071889a0529a7f8"}],"openstackclient/compute/v2/server_share.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d1fa09e3ff562882834450f80f955f8de3e95d4f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1d23e2c7_432e2573","updated":"2024-08-30 11:02:51.000000000","message":"Do we need to mention in the help text that these APIs are only available since nova microversion 2.97?","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"489b76c1_4d8dc165","in_reply_to":"1d23e2c7_432e2573","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":20,"context_line":"from openstackclient.i18n import _"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def _get_server_share_columns(item, client):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # Non admin cannot see uuid and export location, so hide them"},{"line_number":26,"context_line":"    if item.uuid is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"a745c0cf_2d0d45ec","line":23,"updated":"2024-08-26 11:59:20.000000000","message":"```suggestion\ndef _get_server_share_columns(client, item):\n```","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from openstackclient.i18n import _"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def _get_server_share_columns(item, client):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # Non admin cannot see uuid and export location, so hide them"},{"line_number":26,"context_line":"    if item.uuid is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"a3ea2453_67f76388","line":23,"in_reply_to":"a745c0cf_2d0d45ec","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":64,"context_line":"        )"},{"line_number":65,"context_line":"        shares \u003d compute_client.server_shares(server)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        columns \u003d ()"},{"line_number":68,"context_line":"        column_headers \u003d ()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        columns +\u003d ("},{"line_number":71,"context_line":"            \u0027share_id\u0027,"},{"line_number":72,"context_line":"            \u0027status\u0027,"},{"line_number":73,"context_line":"            \u0027tag\u0027,"},{"line_number":74,"context_line":"        )"},{"line_number":75,"context_line":"        column_headers +\u003d ("},{"line_number":76,"context_line":"            \u0027Share ID\u0027,"},{"line_number":77,"context_line":"            \u0027Status\u0027,"},{"line_number":78,"context_line":"            \u0027Tag\u0027,"},{"line_number":79,"context_line":"        )"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return ("},{"line_number":82,"context_line":"            column_headers,"},{"line_number":83,"context_line":"            (utils.get_item_properties(s, columns) for s in shares),"}],"source_content_type":"text/x-python","patch_set":5,"id":"568ef67a_20c04810","line":80,"range":{"start_line":67,"start_character":0,"end_line":80,"end_character":1},"updated":"2024-08-26 11:59:20.000000000","message":"This can be simplified, no?\n\n```suggestion\n        columns \u003d (\n            \u0027share_id\u0027,\n            \u0027status\u0027,\n            \u0027tag\u0027,\n        )\n        column_headers \u003d (\n            \u0027Share ID\u0027,\n            \u0027Status\u0027,\n            \u0027Tag\u0027,\n        )\n\n```","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        )"},{"line_number":65,"context_line":"        shares \u003d compute_client.server_shares(server)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        columns \u003d ()"},{"line_number":68,"context_line":"        column_headers \u003d ()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        columns +\u003d ("},{"line_number":71,"context_line":"            \u0027share_id\u0027,"},{"line_number":72,"context_line":"            \u0027status\u0027,"},{"line_number":73,"context_line":"            \u0027tag\u0027,"},{"line_number":74,"context_line":"        )"},{"line_number":75,"context_line":"        column_headers +\u003d ("},{"line_number":76,"context_line":"            \u0027Share ID\u0027,"},{"line_number":77,"context_line":"            \u0027Status\u0027,"},{"line_number":78,"context_line":"            \u0027Tag\u0027,"},{"line_number":79,"context_line":"        )"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return ("},{"line_number":82,"context_line":"            column_headers,"},{"line_number":83,"context_line":"            (utils.get_item_properties(s, columns) for s in shares),"}],"source_content_type":"text/x-python","patch_set":5,"id":"f726ee00_478732af","line":80,"range":{"start_line":67,"start_character":0,"end_line":80,"end_character":1},"in_reply_to":"568ef67a_20c04810","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        parser.add_argument("},{"line_number":97,"context_line":"            \u0027share_id\u0027,"},{"line_number":98,"context_line":"            help\u003d_(\u0027Share id to show details\u0027),"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":"        return parser"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"cf1eb8dd_d20dec1f","line":98,"updated":"2024-08-26 11:59:20.000000000","message":"Any reason to only allow IDs? Do shares not have a name? Also:\n\n```suggestion\n            help\u003d_(\u0027Share to show details for (ID)\u0027),\n```","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        parser.add_argument("},{"line_number":97,"context_line":"            \u0027share_id\u0027,"},{"line_number":98,"context_line":"            help\u003d_(\u0027Share id to show details\u0027),"},{"line_number":99,"context_line":"        )"},{"line_number":100,"context_line":"        return parser"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"03c7d392_20c20b22","line":98,"in_reply_to":"cf1eb8dd_d20dec1f","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class CreateServerShare(command.ShowOne):"},{"line_number":120,"context_line":"    \"\"\"Create a share attachment to a server.\"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_parser(self, prog_name):"},{"line_number":123,"context_line":"        parser \u003d super().get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"67cdf700_2511a9b4","line":120,"updated":"2024-08-26 11:59:20.000000000","message":"Is this actually creating a new share or associating it? If the latter, this should be `AddServerShare`","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class CreateServerShare(command.ShowOne):"},{"line_number":120,"context_line":"    \"\"\"Create a share attachment to a server.\"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def get_parser(self, prog_name):"},{"line_number":123,"context_line":"        parser \u003d super().get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"6ef18711_cfc997e8","line":120,"in_reply_to":"67cdf700_2511a9b4","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":127,"context_line":"        )"},{"line_number":128,"context_line":"        parser.add_argument("},{"line_number":129,"context_line":"            \u0027share_id\u0027,"},{"line_number":130,"context_line":"            help\u003d_(\u0027Share id to associate\u0027),"},{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--tag\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"b948dd68_9df48cd4","line":130,"updated":"2024-08-26 11:59:20.000000000","message":"```suggestion\n            help\u003d_(\u0027Share to associate (ID)\u0027),\n```","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        )"},{"line_number":128,"context_line":"        parser.add_argument("},{"line_number":129,"context_line":"            \u0027share_id\u0027,"},{"line_number":130,"context_line":"            help\u003d_(\u0027Share id to associate\u0027),"},{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--tag\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"91d957a8_2e54249b","line":130,"in_reply_to":"b948dd68_9df48cd4","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":130,"context_line":"            help\u003d_(\u0027Share id to associate\u0027),"},{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--tag\u0027,"},{"line_number":134,"context_line":"            help\u003d_(\u0027Optional tag used to mount the share\u0027),"},{"line_number":135,"context_line":"        )"},{"line_number":136,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":5,"id":"0e2a3696_072260ef","line":133,"updated":"2024-08-26 11:59:20.000000000","message":"You need to define a `metavar` for the `--help` output.","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            help\u003d_(\u0027Share id to associate\u0027),"},{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--tag\u0027,"},{"line_number":134,"context_line":"            help\u003d_(\u0027Optional tag used to mount the share\u0027),"},{"line_number":135,"context_line":"        )"},{"line_number":136,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":5,"id":"73f5d231_7892ec75","line":133,"in_reply_to":"0e2a3696_072260ef","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d1fa09e3ff562882834450f80f955f8de3e95d4f","unresolved":true,"context_lines":[{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--tag\u0027,"},{"line_number":134,"context_line":"            help\u003d_(\u0027Optional tag used to mount the share\u0027),"},{"line_number":135,"context_line":"        )"},{"line_number":136,"context_line":"        return parser"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ce6d851a_5409f5a8","line":134,"updated":"2024-08-30 11:02:51.000000000","message":"I would add that: \"if not provided the share uuid is used as tag by default\"","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        )"},{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--tag\u0027,"},{"line_number":134,"context_line":"            help\u003d_(\u0027Optional tag used to mount the share\u0027),"},{"line_number":135,"context_line":"        )"},{"line_number":136,"context_line":"        return parser"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7e5a0d49_a2aa8bfb","line":134,"in_reply_to":"ce6d851a_5409f5a8","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":158,"context_line":"        return display_columns, data"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"class DeleteServerShare(command.Command):"},{"line_number":162,"context_line":"    \"\"\"Delete a share attachment to a server.\"\"\""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba642912_4318271f","line":161,"range":{"start_line":161,"start_character":6,"end_line":161,"end_character":23},"updated":"2024-08-26 11:59:20.000000000","message":"As above, are we deleting a share or merely disassocatiating it? If the latter, this should be `RemoveServerShare`.","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        return display_columns, data"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"class DeleteServerShare(command.Command):"},{"line_number":162,"context_line":"    \"\"\"Delete a share attachment to a server.\"\"\""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":5,"id":"93599efc_bd2f0dca","line":161,"range":{"start_line":161,"start_character":6,"end_line":161,"end_character":23},"in_reply_to":"ba642912_4318271f","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":169,"context_line":"        )"},{"line_number":170,"context_line":"        parser.add_argument("},{"line_number":171,"context_line":"            \u0027share_id\u0027,"},{"line_number":172,"context_line":"            help\u003d_(\u0027Share id to delete\u0027),"},{"line_number":173,"context_line":"        )"},{"line_number":174,"context_line":"        return parser"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"106ddee9_cfadcb11","line":172,"updated":"2024-08-26 11:59:20.000000000","message":"Does this actually delete the share, or does it disassociate it? In any case\n\n```suggestion\n            help\u003d_(\u0027Share to delete (ID)\u0027),\n```\n\n(or `Share to remove from server (ID)`)","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        )"},{"line_number":170,"context_line":"        parser.add_argument("},{"line_number":171,"context_line":"            \u0027share_id\u0027,"},{"line_number":172,"context_line":"            help\u003d_(\u0027Share id to delete\u0027),"},{"line_number":173,"context_line":"        )"},{"line_number":174,"context_line":"        return parser"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"16206225_9ce0b1c2","line":172,"in_reply_to":"106ddee9_cfadcb11","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9988aca4_81719048","in_reply_to":"1d23e2c7_432e2573","updated":"2026-03-29 06:54:50.000000000","message":"Done. All command docstrings now mention --os-compute-api-version 2.97, and a runtime check raises CommandError if unsupported.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"53c4a314_4af292cb","in_reply_to":"42828a11_2e4270aa","updated":"2026-03-29 06:54:50.000000000","message":"Done, using shared_file_system_client.find_share() now.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c8ead2e0_5f3261a8","in_reply_to":"46e5b4e0_60f4a8b1","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bb2a5426_3f9aba58","in_reply_to":"5b9c7ccc_494bc062","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6af6f4e7_ebb115ab","in_reply_to":"787fd212_b032211e","updated":"2026-03-29 06:54:50.000000000","message":"Done, all three commands now use find_share().","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7f0bd1cb_f333d9c0","in_reply_to":"8c4aa621_1ff89c4e","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"536a833b_15c76ad5","in_reply_to":"8daff1a2_d4769594","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"acacdc6c_d8d8fa96","in_reply_to":"937d97b2_168d8cc4","updated":"2026-03-29 06:54:50.000000000","message":"Done. Updated all four command docstrings to use \"Requires ``--os-compute-api-version 2.97`` or later.\"\nAlso added a runtime microversion check that raises CommandError if 2.97 is not supported.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"988b1fa5_e378e57c","in_reply_to":"a35b2991_c18ff8a7","updated":"2026-03-29 06:54:50.000000000","message":"Good catch. Added shared_file_system_client.find_share() to resolve shares by name or ID,\nmatching the pattern used by AddServerVolume with volume_client.find_volume().\nUpdated the arg from share_id to share and help text to \"(name or ID)\" for\nShowServerShare, AddServerShare, and RemoveServerShare.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"710329cc_dec5e501","in_reply_to":"ce6d851a_5409f5a8","updated":"2026-03-29 06:54:50.000000000","message":"Done. Added \"if not provided the share uuid is used as tag by default\" to the --tag help text.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bb5d9011_6c6e5050","in_reply_to":"d09761bd_6e18ade5","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"dda03cb9_e97eb6af","in_reply_to":"e48fc023_5abd1291","updated":"2026-03-29 06:54:50.000000000","message":"Removed the client-side default. The server already defaults to the share UUID\nwhen no tag is provided, so we just pass the tag through (or omit it if not specified).","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":47,"context_line":"class ListServerShare(command.Lister):"},{"line_number":48,"context_line":"    \"\"\"List all the shares attached to a server."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"937d97b2_168d8cc4","line":50,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n    Requires --os-compute-api-version 2.97 or later.\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"class ListServerShare(command.Lister):"},{"line_number":48,"context_line":"    \"\"\"List all the shares attached to a server."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":51,"context_line":"    \"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"8925ad91_11179a0a","line":50,"in_reply_to":"937d97b2_168d8cc4","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":88,"context_line":"class ShowServerShare(command.ShowOne):"},{"line_number":89,"context_line":"    \"\"\"Show detail of a share attachment to a server."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"8c4aa621_1ff89c4e","line":91,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n    Requires --os-compute-api-version 2.97 or later.\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"class ShowServerShare(command.ShowOne):"},{"line_number":89,"context_line":"    \"\"\"Show detail of a share attachment to a server."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":92,"context_line":"    \"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"e425febe_2fd5096e","line":91,"in_reply_to":"8c4aa621_1ff89c4e","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":101,"context_line":"        parser.add_argument("},{"line_number":102,"context_line":"            \u0027share_id\u0027,"},{"line_number":103,"context_line":"            metavar\u003d\u0027\u003cshare-id\u003e\u0027,"},{"line_number":104,"context_line":"            help\u003d_(\u0027Share to show details for (ID)\u0027),"},{"line_number":105,"context_line":"        )"},{"line_number":106,"context_line":"        return parser"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"a35b2991_c18ff8a7","line":104,"updated":"2025-02-14 17:00:10.000000000","message":"Any reason not to allow looking up via name or ID? I see a `find_share` proxy method in SDK.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        parser.add_argument("},{"line_number":102,"context_line":"            \u0027share_id\u0027,"},{"line_number":103,"context_line":"            metavar\u003d\u0027\u003cshare-id\u003e\u0027,"},{"line_number":104,"context_line":"            help\u003d_(\u0027Share to show details for (ID)\u0027),"},{"line_number":105,"context_line":"        )"},{"line_number":106,"context_line":"        return parser"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"6920a559_4ac7243b","line":104,"in_reply_to":"a35b2991_c18ff8a7","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":111,"context_line":"        server \u003d compute_client.find_server("},{"line_number":112,"context_line":"            parsed_args.server,"},{"line_number":113,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":114,"context_line":"        )"},{"line_number":115,"context_line":"        share \u003d compute_client.get_share_attachment("},{"line_number":116,"context_line":"            server, parsed_args.share_id"},{"line_number":117,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"42828a11_2e4270aa","line":114,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n        )\n        share \u003d shared_file_system_client.find_share(\n            parsed_args.share,\n            ignore_missing\u003dFalse,\n        )\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        server \u003d compute_client.find_server("},{"line_number":112,"context_line":"            parsed_args.server,"},{"line_number":113,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":114,"context_line":"        )"},{"line_number":115,"context_line":"        share \u003d compute_client.get_share_attachment("},{"line_number":116,"context_line":"            server, parsed_args.share_id"},{"line_number":117,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a2b39c6_9be4bf8f","line":114,"in_reply_to":"42828a11_2e4270aa","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":112,"context_line":"            parsed_args.server,"},{"line_number":113,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":114,"context_line":"        )"},{"line_number":115,"context_line":"        share \u003d compute_client.get_share_attachment("},{"line_number":116,"context_line":"            server, parsed_args.share_id"},{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"8daff1a2_d4769594","line":115,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n        share_attachment \u003d compute_client.get_share_attachment(\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            parsed_args.server,"},{"line_number":113,"context_line":"            ignore_missing\u003dFalse,"},{"line_number":114,"context_line":"        )"},{"line_number":115,"context_line":"        share \u003d compute_client.get_share_attachment("},{"line_number":116,"context_line":"            server, parsed_args.share_id"},{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"4fb89a40_9cd974f9","line":115,"in_reply_to":"8daff1a2_d4769594","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":127,"context_line":"class AddServerShare(command.ShowOne):"},{"line_number":128,"context_line":"    \"\"\"Create a share attachment to a server."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":131,"context_line":"    \"\"\""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"d09761bd_6e18ade5","line":130,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n    Requires --os-compute-api-version 2.97 or later.\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":127,"context_line":"class AddServerShare(command.ShowOne):"},{"line_number":128,"context_line":"    \"\"\"Create a share attachment to a server."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":131,"context_line":"    \"\"\""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1d6a9365_e035ea9d","line":130,"in_reply_to":"d09761bd_6e18ade5","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":140,"context_line":"        parser.add_argument("},{"line_number":141,"context_line":"            \u0027share_id\u0027,"},{"line_number":142,"context_line":"            metavar\u003d\u0027\u003cshare-id\u003e\u0027,"},{"line_number":143,"context_line":"            help\u003d_(\u0027Share to associate (ID)\u0027),"},{"line_number":144,"context_line":"        )"},{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--tag\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"787fd212_b032211e","line":143,"updated":"2025-02-14 17:00:10.000000000","message":"same comment as above RE: names","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        parser.add_argument("},{"line_number":141,"context_line":"            \u0027share_id\u0027,"},{"line_number":142,"context_line":"            metavar\u003d\u0027\u003cshare-id\u003e\u0027,"},{"line_number":143,"context_line":"            help\u003d_(\u0027Share to associate (ID)\u0027),"},{"line_number":144,"context_line":"        )"},{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--tag\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"59200c3e_4d6b04e0","line":143,"in_reply_to":"787fd212_b032211e","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":147,"context_line":"            metavar\u003d\u0027\u003ctag\u003e\u0027,"},{"line_number":148,"context_line":"            help\u003d_("},{"line_number":149,"context_line":"                \u0027Optional tag used to mount the share, \u0027"},{"line_number":150,"context_line":"                \u0027if not provided the share uuid is used as tag by default\u0027"},{"line_number":151,"context_line":"            ),"},{"line_number":152,"context_line":"        )"},{"line_number":153,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":8,"id":"e48fc023_5abd1291","line":150,"updated":"2025-02-14 17:00:10.000000000","message":"Why? Could do with a comment inline at a minimum","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            metavar\u003d\u0027\u003ctag\u003e\u0027,"},{"line_number":148,"context_line":"            help\u003d_("},{"line_number":149,"context_line":"                \u0027Optional tag used to mount the share, \u0027"},{"line_number":150,"context_line":"                \u0027if not provided the share uuid is used as tag by default\u0027"},{"line_number":151,"context_line":"            ),"},{"line_number":152,"context_line":"        )"},{"line_number":153,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":8,"id":"e9b124da_45095e33","line":150,"in_reply_to":"e48fc023_5abd1291","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":178,"context_line":"class RemoveServerShare(command.Command):"},{"line_number":179,"context_line":"    \"\"\"Delete a share attachment to a server."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":182,"context_line":"    \"\"\""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"46e5b4e0_60f4a8b1","line":181,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n    Requires --os-compute-api-version 2.97 or later.\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":178,"context_line":"class RemoveServerShare(command.Command):"},{"line_number":179,"context_line":"    \"\"\"Delete a share attachment to a server."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    Note: This api is available since nova microversion 2.97."},{"line_number":182,"context_line":"    \"\"\""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def get_parser(self, prog_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3d2d8ce6_fb0a3a66","line":181,"in_reply_to":"46e5b4e0_60f4a8b1","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        parser.add_argument("},{"line_number":192,"context_line":"            \u0027share_id\u0027,"},{"line_number":193,"context_line":"            metavar\u003d\u0027\u003cshare-id\u003e\u0027,"},{"line_number":194,"context_line":"            help\u003d_(\u0027Share to delete (ID)\u0027),"},{"line_number":195,"context_line":"        )"},{"line_number":196,"context_line":"        return parser"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5b9c7ccc_494bc062","line":194,"updated":"2025-02-14 17:00:10.000000000","message":"same comment about names","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        parser.add_argument("},{"line_number":192,"context_line":"            \u0027share_id\u0027,"},{"line_number":193,"context_line":"            metavar\u003d\u0027\u003cshare-id\u003e\u0027,"},{"line_number":194,"context_line":"            help\u003d_(\u0027Share to delete (ID)\u0027),"},{"line_number":195,"context_line":"        )"},{"line_number":196,"context_line":"        return parser"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3026ba70_250dd028","line":194,"in_reply_to":"5b9c7ccc_494bc062","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"}],"openstackclient/tests/unit/compute/v2/fakes.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":1238,"context_line":"    return volume_attachments"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":""},{"line_number":1241,"context_line":"def create_one_share(attrs\u003dNone):"},{"line_number":1242,"context_line":"    \"\"\"Create a fake share."},{"line_number":1243,"context_line":""},{"line_number":1244,"context_line":"    :param dict attrs: A dictionary with all attributes"},{"line_number":1245,"context_line":"    :return: A fake openstack.compute.v2.share.ShareMapping"},{"line_number":1246,"context_line":"        object"},{"line_number":1247,"context_line":"    \"\"\""},{"line_number":1248,"context_line":"    attrs \u003d attrs or {}"},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"    # Set default attributes."},{"line_number":1251,"context_line":"    share_mapping \u003d {"},{"line_number":1252,"context_line":"        \"uuid\": uuid.uuid4().hex,"},{"line_number":1253,"context_line":"        \"share_id\": uuid.uuid4().hex,"},{"line_number":1254,"context_line":"        \"status\": \"inactive\","},{"line_number":1255,"context_line":"        \"tag\": \"foo\","},{"line_number":1256,"context_line":"        \"export_location\": \"my-location\","},{"line_number":1257,"context_line":"    }"},{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":"    # Overwrite default attributes."},{"line_number":1260,"context_line":"    share_mapping.update(attrs)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"    return server_share.ShareMapping(**share_mapping)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"def create_share(attrs\u003dNone, count\u003d2):"},{"line_number":1266,"context_line":"    \"\"\"Create multiple fake share attachments."},{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"    :param dict attrs: A dictionary with all attributes"},{"line_number":1269,"context_line":"    :param int count: The number of share attachments to fake"},{"line_number":1270,"context_line":"    :return: A list of fake"},{"line_number":1271,"context_line":"        openstack.compute.v2.share_attachment.shareAttachment objects"},{"line_number":1272,"context_line":"    \"\"\""},{"line_number":1273,"context_line":"    share \u003d []"},{"line_number":1274,"context_line":"    for i in range(0, count):"},{"line_number":1275,"context_line":"        share.append(create_one_share(attrs))"},{"line_number":1276,"context_line":""},{"line_number":1277,"context_line":"    return share"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":""},{"line_number":1280,"context_line":"def create_one_hypervisor(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"cddc08a4_8dde6708","line":1277,"range":{"start_line":1241,"start_character":0,"end_line":1277,"end_character":16},"updated":"2024-08-26 11:59:20.000000000","message":"You shouldn\u0027t need to do this nowadays. Use the `generate_fake_resource` method from the `openstack.test.fakes` module instead. There should be a few examples of that here.","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":true,"context_lines":[{"line_number":1238,"context_line":"    return volume_attachments"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":""},{"line_number":1241,"context_line":"def create_one_share(attrs\u003dNone):"},{"line_number":1242,"context_line":"    \"\"\"Create a fake share."},{"line_number":1243,"context_line":""},{"line_number":1244,"context_line":"    :param dict attrs: A dictionary with all attributes"},{"line_number":1245,"context_line":"    :return: A fake openstack.compute.v2.share.ShareMapping"},{"line_number":1246,"context_line":"        object"},{"line_number":1247,"context_line":"    \"\"\""},{"line_number":1248,"context_line":"    attrs \u003d attrs or {}"},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"    # Set default attributes."},{"line_number":1251,"context_line":"    share_mapping \u003d {"},{"line_number":1252,"context_line":"        \"uuid\": uuid.uuid4().hex,"},{"line_number":1253,"context_line":"        \"share_id\": uuid.uuid4().hex,"},{"line_number":1254,"context_line":"        \"status\": \"inactive\","},{"line_number":1255,"context_line":"        \"tag\": \"foo\","},{"line_number":1256,"context_line":"        \"export_location\": \"my-location\","},{"line_number":1257,"context_line":"    }"},{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":"    # Overwrite default attributes."},{"line_number":1260,"context_line":"    share_mapping.update(attrs)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"    return server_share.ShareMapping(**share_mapping)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"def create_share(attrs\u003dNone, count\u003d2):"},{"line_number":1266,"context_line":"    \"\"\"Create multiple fake share attachments."},{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"    :param dict attrs: A dictionary with all attributes"},{"line_number":1269,"context_line":"    :param int count: The number of share attachments to fake"},{"line_number":1270,"context_line":"    :return: A list of fake"},{"line_number":1271,"context_line":"        openstack.compute.v2.share_attachment.shareAttachment objects"},{"line_number":1272,"context_line":"    \"\"\""},{"line_number":1273,"context_line":"    share \u003d []"},{"line_number":1274,"context_line":"    for i in range(0, count):"},{"line_number":1275,"context_line":"        share.append(create_one_share(attrs))"},{"line_number":1276,"context_line":""},{"line_number":1277,"context_line":"    return share"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":""},{"line_number":1280,"context_line":"def create_one_hypervisor(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"f95f7627_30081d54","line":1277,"range":{"start_line":1241,"start_character":0,"end_line":1277,"end_character":16},"in_reply_to":"cddc08a4_8dde6708","updated":"2024-10-09 08:40:44.000000000","message":"I tried using generate_fake_resource, but I\u0027m not convinced it makes the code simpler in this case. So, if you don\u0027t mind, I will keep this part unchanged.","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8cc77361f1d84c0289fee6228683c4f3f9f06472","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"    return volume_attachments"},{"line_number":1239,"context_line":""},{"line_number":1240,"context_line":""},{"line_number":1241,"context_line":"def create_one_share(attrs\u003dNone):"},{"line_number":1242,"context_line":"    \"\"\"Create a fake share."},{"line_number":1243,"context_line":""},{"line_number":1244,"context_line":"    :param dict attrs: A dictionary with all attributes"},{"line_number":1245,"context_line":"    :return: A fake openstack.compute.v2.share.ShareMapping"},{"line_number":1246,"context_line":"        object"},{"line_number":1247,"context_line":"    \"\"\""},{"line_number":1248,"context_line":"    attrs \u003d attrs or {}"},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"    # Set default attributes."},{"line_number":1251,"context_line":"    share_mapping \u003d {"},{"line_number":1252,"context_line":"        \"uuid\": uuid.uuid4().hex,"},{"line_number":1253,"context_line":"        \"share_id\": uuid.uuid4().hex,"},{"line_number":1254,"context_line":"        \"status\": \"inactive\","},{"line_number":1255,"context_line":"        \"tag\": \"foo\","},{"line_number":1256,"context_line":"        \"export_location\": \"my-location\","},{"line_number":1257,"context_line":"    }"},{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":"    # Overwrite default attributes."},{"line_number":1260,"context_line":"    share_mapping.update(attrs)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"    return server_share.ShareMapping(**share_mapping)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":""},{"line_number":1265,"context_line":"def create_share(attrs\u003dNone, count\u003d2):"},{"line_number":1266,"context_line":"    \"\"\"Create multiple fake share attachments."},{"line_number":1267,"context_line":""},{"line_number":1268,"context_line":"    :param dict attrs: A dictionary with all attributes"},{"line_number":1269,"context_line":"    :param int count: The number of share attachments to fake"},{"line_number":1270,"context_line":"    :return: A list of fake"},{"line_number":1271,"context_line":"        openstack.compute.v2.share_attachment.shareAttachment objects"},{"line_number":1272,"context_line":"    \"\"\""},{"line_number":1273,"context_line":"    share \u003d []"},{"line_number":1274,"context_line":"    for i in range(0, count):"},{"line_number":1275,"context_line":"        share.append(create_one_share(attrs))"},{"line_number":1276,"context_line":""},{"line_number":1277,"context_line":"    return share"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":""},{"line_number":1280,"context_line":"def create_one_hypervisor(attrs\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fb2172e_c9004bfc","line":1277,"range":{"start_line":1241,"start_character":0,"end_line":1277,"end_character":16},"in_reply_to":"f95f7627_30081d54","updated":"2026-04-15 11:51:03.000000000","message":"Acknowledged","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"66f735bb_f711882b","in_reply_to":"4cc8eb05_382fd6fa","updated":"2026-03-29 06:54:50.000000000","message":"Done. Switched to sdk_fakes.generate_fake_resource(_server_share.ShareMapping). Also renamed create_share to create_shares (plural).","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":1043,"context_line":"    return server_share.ShareMapping(**share_mapping)"},{"line_number":1044,"context_line":""},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"def create_share(attrs\u003dNone, count\u003d2):"},{"line_number":1047,"context_line":"    \"\"\"Create multiple fake share attachments."},{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"    :param dict attrs: A dictionary with all attributes"}],"source_content_type":"text/x-python","patch_set":8,"id":"4cc8eb05_382fd6fa","line":1046,"range":{"start_line":1046,"start_character":4,"end_line":1046,"end_character":16},"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\ndef create_shares(attrs\u003dNone, count\u003d2):\n```\n\nplural","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"    return server_share.ShareMapping(**share_mapping)"},{"line_number":1044,"context_line":""},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"def create_share(attrs\u003dNone, count\u003d2):"},{"line_number":1047,"context_line":"    \"\"\"Create multiple fake share attachments."},{"line_number":1048,"context_line":""},{"line_number":1049,"context_line":"    :param dict attrs: A dictionary with all attributes"}],"source_content_type":"text/x-python","patch_set":8,"id":"a72c10a8_68d8ae07","line":1046,"range":{"start_line":1046,"start_character":4,"end_line":1046,"end_character":16},"in_reply_to":"4cc8eb05_382fd6fa","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"}],"openstackclient/tests/unit/compute/v2/test_server_share.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c9436162e10a4c56cad8cf0b2fbfa701aaa0dc13","unresolved":true,"context_lines":[{"line_number":17,"context_line":"from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestServerShare(compute_fakes.TestComputev2):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super().setUp()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection.compute \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.compute_client \u003d self.app.client_manager.sdk_connection.compute"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestServerShareList(TestServerShare):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5e998176_8b590e2f","line":27,"range":{"start_line":20,"start_character":0,"end_line":27,"end_character":76},"updated":"2024-08-26 11:59:20.000000000","message":"These are already defined on the base `TestComputev2` class (as `compute_sdk_client`. Please use them instead and get rid of this base class. Everything can derive from `TestComputev2` directly.","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"973643abd93940e697b432c0dcf3fdaff8773f24","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestServerShare(compute_fakes.TestComputev2):"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super().setUp()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"        self.app.client_manager.sdk_connection \u003d mock.Mock()"},{"line_number":26,"context_line":"        self.app.client_manager.sdk_connection.compute \u003d mock.Mock()"},{"line_number":27,"context_line":"        self.compute_client \u003d self.app.client_manager.sdk_connection.compute"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestServerShareList(TestServerShare):"}],"source_content_type":"text/x-python","patch_set":5,"id":"947f2892_d698e769","line":27,"range":{"start_line":20,"start_character":0,"end_line":27,"end_character":76},"in_reply_to":"5e998176_8b590e2f","updated":"2024-10-09 08:40:44.000000000","message":"Done","commit_id":"3550e53d794abb7e9cebbe233e52fc8d52b5cd43"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e849f9a9_588de96e","in_reply_to":"2e4779bd_502649f3","updated":"2026-03-29 06:54:50.000000000","message":"Done. Show, create, and delete tests now use create_one_share() directly.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"db6dea61_c7f38862","in_reply_to":"5df7ad15_1263f9f2","updated":"2026-03-29 06:54:50.000000000","message":"Done. Using self.shares \u003d compute_fakes.create_shares() for list test.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1da5d406_d97b4f13","in_reply_to":"be6f920f_e13633b0","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f33f17db_1857309b","in_reply_to":"d87d6bb8_6770429f","updated":"2026-03-29 06:54:50.000000000","message":"Done. Renamed to create_shares (plural).","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e7258e91_a9875651","in_reply_to":"dec8a096_7850118e","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4eee1577_cfab39a0","in_reply_to":"eae7b02d_fff17a40","updated":"2026-03-29 06:54:50.000000000","message":"Done.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":21,"context_line":"        super().setUp()"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        self.server \u003d compute_fakes.create_one_sdk_server()"},{"line_number":24,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":27,"context_line":"        self.compute_sdk_client.share_attachments.return_value \u003d self.share"}],"source_content_type":"text/x-python","patch_set":8,"id":"5df7ad15_1263f9f2","line":24,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n        self.shares \u003d compute_fakes.create_shares()\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        super().setUp()"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        self.server \u003d compute_fakes.create_one_sdk_server()"},{"line_number":24,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":27,"context_line":"        self.compute_sdk_client.share_attachments.return_value \u003d self.share"}],"source_content_type":"text/x-python","patch_set":8,"id":"23c1d763_64827be1","line":24,"in_reply_to":"5df7ad15_1263f9f2","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":24,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":27,"context_line":"        self.compute_sdk_client.share_attachments.return_value \u003d self.share"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        # Get the command object to test"},{"line_number":30,"context_line":"        self.cmd \u003d server_share.ListServerShare(self.app, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"be6f920f_e13633b0","line":27,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n        self.compute_sdk_client.share_attachments.return_value \u003d self.shares\n```\n\nand so forth.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":27,"context_line":"        self.compute_sdk_client.share_attachments.return_value \u003d self.share"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        # Get the command object to test"},{"line_number":30,"context_line":"        self.cmd \u003d server_share.ListServerShare(self.app, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ec63a9a9_bed1d696","line":27,"in_reply_to":"be6f920f_e13633b0","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        super().setUp()"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self.server \u003d compute_fakes.create_one_sdk_server()"},{"line_number":68,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":71,"context_line":"        self.compute_sdk_client.get_share_attachment.return_value \u003d self.share["}],"source_content_type":"text/x-python","patch_set":8,"id":"2e4779bd_502649f3","line":68,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n        self.share \u003d compute_fakes.create_one_share()\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        super().setUp()"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        self.server \u003d compute_fakes.create_one_sdk_server()"},{"line_number":68,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":71,"context_line":"        self.compute_sdk_client.get_share_attachment.return_value \u003d self.share["}],"source_content_type":"text/x-python","patch_set":8,"id":"ee95b0ef_f16e7e27","line":68,"in_reply_to":"2e4779bd_502649f3","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":68,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":71,"context_line":"        self.compute_sdk_client.get_share_attachment.return_value \u003d self.share["},{"line_number":72,"context_line":"            0"},{"line_number":73,"context_line":"        ]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # Get the command object to test"},{"line_number":76,"context_line":"        self.cmd \u003d server_share.ShowServerShare(self.app, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"dec8a096_7850118e","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":9},"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n        self.compute_sdk_client.get_share_attachment.return_value \u003d self.share\n```","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":71,"context_line":"        self.compute_sdk_client.get_share_attachment.return_value \u003d self.share["},{"line_number":72,"context_line":"            0"},{"line_number":73,"context_line":"        ]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # Get the command object to test"},{"line_number":76,"context_line":"        self.cmd \u003d server_share.ShowServerShare(self.app, None)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fe20dee4_18f7956d","line":73,"range":{"start_line":71,"start_character":0,"end_line":73,"end_character":9},"in_reply_to":"dec8a096_7850118e","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":78,"context_line":"    def test_server_get_share_attachment(self):"},{"line_number":79,"context_line":"        arglist \u003d ["},{"line_number":80,"context_line":"            self.server.id,"},{"line_number":81,"context_line":"            self.share[0].id,"},{"line_number":82,"context_line":"        ]"},{"line_number":83,"context_line":"        verifylist \u003d ["},{"line_number":84,"context_line":"            (\u0027server\u0027, self.server.id),"}],"source_content_type":"text/x-python","patch_set":8,"id":"eae7b02d_fff17a40","line":81,"updated":"2025-02-14 17:00:10.000000000","message":"```suggestion\n            self.share.id,\n```\n\nand so forth.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def test_server_get_share_attachment(self):"},{"line_number":79,"context_line":"        arglist \u003d ["},{"line_number":80,"context_line":"            self.server.id,"},{"line_number":81,"context_line":"            self.share[0].id,"},{"line_number":82,"context_line":"        ]"},{"line_number":83,"context_line":"        verifylist \u003d ["},{"line_number":84,"context_line":"            (\u0027server\u0027, self.server.id),"}],"source_content_type":"text/x-python","patch_set":8,"id":"8f5ba1b1_7ecede75","line":81,"in_reply_to":"eae7b02d_fff17a40","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":110,"context_line":"        super().setUp()"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        self.server \u003d compute_fakes.create_one_sdk_server()"},{"line_number":113,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":116,"context_line":"        self.compute_sdk_client.create_share_attachment.return_value \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"d87d6bb8_6770429f","line":113,"updated":"2025-02-14 17:00:10.000000000","message":"As above, you only need one. The naming of this method is very confusing and definitely needs to be plural.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        super().setUp()"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        self.server \u003d compute_fakes.create_one_sdk_server()"},{"line_number":113,"context_line":"        self.share \u003d compute_fakes.create_share()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        self.compute_sdk_client.find_server.return_value \u003d self.server"},{"line_number":116,"context_line":"        self.compute_sdk_client.create_share_attachment.return_value \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"6777ef24_9a8db492","line":113,"in_reply_to":"d87d6bb8_6770429f","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8cc77361f1d84c0289fee6228683c4f3f9f06472","unresolved":true,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        self.compute_client.find_server.return_value \u003d self.server"},{"line_number":88,"context_line":"        self.compute_client.get_share_attachment.return_value \u003d self.share"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.shared_file_system_client \u003d ("},{"line_number":91,"context_line":"            self.app.client_manager.sdk_connection.shared_file_system"},{"line_number":92,"context_line":"        )"},{"line_number":93,"context_line":"        self._manila_share_id \u003d uuid.uuid4().hex"},{"line_number":94,"context_line":"        self.shared_file_system_client.find_share.return_value \u003d type("},{"line_number":95,"context_line":"            \u0027FakeShare\u0027, (), {\u0027id\u0027: self._manila_share_id}"},{"line_number":96,"context_line":"        )()"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.cmd \u003d server_share.ShowServerShare(self.app, None)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def test_server_share_show(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"4ed6cac3_f2d67562","line":97,"range":{"start_line":89,"start_character":1,"end_line":97,"end_character":1},"updated":"2026-04-15 11:51:03.000000000","message":"nit: we probably want to drag this out into a new share-specific `FakeClientMixin`, but we\u0027ll get that for free when we migrate manilaclient in-tree so I\u0027m okay waiting","commit_id":"ce4fcd3523d58515e0e391fff071889a0529a7f8"}],"setup.cfg":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"319bc928625e632a66c30d6a814a90beba32b740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2f800aee_bcc66efc","in_reply_to":"4f9fdf2e_d620c116","updated":"2026-03-29 06:54:50.000000000","message":"Entry points moved to pyproject.toml during rebase (master dropped setup.cfg contents).\nserver_add_share/server_remove_share are placed alphabetically with other server_add_*/server_remove_* entries.\nserver_share_list/server_share_show are grouped together, ordered alphabetically before server_volume_*.","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a94c58f6947fc80148bc2a497da6ad5f84808bf9","unresolved":true,"context_lines":[{"line_number":102,"context_line":"    server_add_port \u003d openstackclient.compute.v2.server:AddPort"},{"line_number":103,"context_line":"    server_add_network \u003d openstackclient.compute.v2.server:AddNetwork"},{"line_number":104,"context_line":"    server_add_security_group \u003d openstackclient.compute.v2.server:AddServerSecurityGroup"},{"line_number":105,"context_line":"    server_add_share \u003d openstackclient.compute.v2.server_share:AddServerShare"},{"line_number":106,"context_line":"    server_add_volume \u003d openstackclient.compute.v2.server:AddServerVolume"},{"line_number":107,"context_line":"    server_create \u003d openstackclient.compute.v2.server:CreateServer"},{"line_number":108,"context_line":"    server_delete \u003d openstackclient.compute.v2.server:DeleteServer"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"4f9fdf2e_d620c116","line":105,"updated":"2025-02-14 17:00:10.000000000","message":"Can you group these separately like we do for e.g. `server_backup`, `server_migration`, ...","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1de0b9e8152d04d460b56dde0642936c78d2c9b","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    server_add_port \u003d openstackclient.compute.v2.server:AddPort"},{"line_number":103,"context_line":"    server_add_network \u003d openstackclient.compute.v2.server:AddNetwork"},{"line_number":104,"context_line":"    server_add_security_group \u003d openstackclient.compute.v2.server:AddServerSecurityGroup"},{"line_number":105,"context_line":"    server_add_share \u003d openstackclient.compute.v2.server_share:AddServerShare"},{"line_number":106,"context_line":"    server_add_volume \u003d openstackclient.compute.v2.server:AddServerVolume"},{"line_number":107,"context_line":"    server_create \u003d openstackclient.compute.v2.server:CreateServer"},{"line_number":108,"context_line":"    server_delete \u003d openstackclient.compute.v2.server:DeleteServer"}],"source_content_type":"text/x-ttcn-cfg","patch_set":8,"id":"5cb5c2fc_ccdfcb9f","line":105,"in_reply_to":"4f9fdf2e_d620c116","updated":"2026-04-15 11:51:39.000000000","message":"Done","commit_id":"7573d2389e0152daecd1c7ae7216bac6015dcf97"}]}
