)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f3d964399dc202584ca4a34b3d96e49fd5eb1e9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"5003029d_314033d5","updated":"2023-04-14 10:04:37.000000000","message":"I know this is very much WIP but I have some initial comments","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"9e25f22db1d3476812fd9dbda9f2945aa7662d80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"862a0c39_ec827d06","in_reply_to":"5003029d_314033d5","updated":"2023-04-18 17:10:12.000000000","message":"No worries, and I appreciate your feedback. While I haven\u0027t addressed all of the comments yet, I\u0027ve completed the first round.","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2249255b7b7440065f09d10506ebf80245ca1cae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"995fd18a_5dd6ea8f","updated":"2023-04-24 12:34:33.000000000","message":"recheck","commit_id":"902840a9e06c6f727adcbd95620377ab014bd7e8"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"067aeb6c7a30455529e7bcf32b3191bfcc94b6bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"8705b8b1_81f8d6e9","updated":"2023-07-28 13:03:58.000000000","message":"recheck","commit_id":"7b1d92f02de1fb6c9839e6a3545b75e303431f98"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b51dfd8b39d5323fb570122d6e4c8031758543b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":38,"id":"7bdc4f2f_9d2ab6be","updated":"2025-05-21 10:14:49.000000000","message":"recheck because I try to reproduce this in a loop on my local devstack without success.","commit_id":"1aa04296985b099c17cb54c42725e321b18d5493"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f0a9f826244f2664dfad4c7916194db52c97db93","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":45,"id":"018bef79_f5f3e0e1","updated":"2026-04-09 16:14:52.000000000","message":"I\u0027d like to see the new CI job folded into an existing one, but this has been around for far too long already. Let\u0027s get it in.","commit_id":"f27f1002d0f5ea2814140b8639c95dc80d3bf251"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c5e16bc38bf069aa45d0e2ac5f92f4adae0b8f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":45,"id":"8778bc41_415b8cf4","in_reply_to":"018bef79_f5f3e0e1","updated":"2026-04-09 17:05:59.000000000","message":"I agree with you, it\u0027s kinda wasting test nodes.. I\u0027ll make a proposal","commit_id":"f27f1002d0f5ea2814140b8639c95dc80d3bf251"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9978e24b5415cc1c5fe88d3d115049e2c71869db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":45,"id":"9c5cfa49_923577ad","in_reply_to":"8778bc41_415b8cf4","updated":"2026-04-09 19:17:23.000000000","message":"Aaaand you\u0027re doing it, thank you Stephen!","commit_id":"f27f1002d0f5ea2814140b8639c95dc80d3bf251"}],"openstack/compute/v2/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d4f762c361c4f00f4ed4b6b7da843b8d9dee27d","unresolved":true,"context_lines":[{"line_number":2722,"context_line":""},{"line_number":2723,"context_line":"    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Server Share \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2724,"context_line":""},{"line_number":2725,"context_line":"    def create_server_share(self, server, share, **attrs):"},{"line_number":2726,"context_line":"        \"\"\"Create a new share attachment from attributes"},{"line_number":2727,"context_line":""},{"line_number":2728,"context_line":"        :param server: The value can be either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":27,"id":"6da3cd35_1913321d","line":2725,"range":{"start_line":2725,"start_character":8,"end_line":2725,"end_character":27},"updated":"2024-08-26 12:34:24.000000000","message":"Could we call this `create_share_attachment` to map with volume attachments, or is the term \"server share\" baked into the API?","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be2624d99aba26c35a45f4b8e16813540822ddd1","unresolved":false,"context_lines":[{"line_number":2722,"context_line":""},{"line_number":2723,"context_line":"    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Server Share \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2724,"context_line":""},{"line_number":2725,"context_line":"    def create_server_share(self, server, share, **attrs):"},{"line_number":2726,"context_line":"        \"\"\"Create a new share attachment from attributes"},{"line_number":2727,"context_line":""},{"line_number":2728,"context_line":"        :param server: The value can be either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":27,"id":"daeec29d_841bf354","line":2725,"range":{"start_line":2725,"start_character":8,"end_line":2725,"end_character":27},"in_reply_to":"6da3cd35_1913321d","updated":"2024-10-08 13:54:38.000000000","message":"Done","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d4f762c361c4f00f4ed4b6b7da843b8d9dee27d","unresolved":true,"context_lines":[{"line_number":2743,"context_line":"        return self._create("},{"line_number":2744,"context_line":"            _server_share.ShareMapping,"},{"line_number":2745,"context_line":"            server_id\u003dserver_id,"},{"line_number":2746,"context_line":"            share_id\u003dshare,"},{"line_number":2747,"context_line":"            **attrs,"},{"line_number":2748,"context_line":"        )"},{"line_number":2749,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"48aa61e0_e4de1c70","line":2746,"updated":"2024-08-26 12:34:24.000000000","message":"This attribute is `share_id` but you\u0027re passing `share` which the docstring says can be either an ID or an instance of `Share`. Are you missing a `_get_id` call?","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be2624d99aba26c35a45f4b8e16813540822ddd1","unresolved":false,"context_lines":[{"line_number":2743,"context_line":"        return self._create("},{"line_number":2744,"context_line":"            _server_share.ShareMapping,"},{"line_number":2745,"context_line":"            server_id\u003dserver_id,"},{"line_number":2746,"context_line":"            share_id\u003dshare,"},{"line_number":2747,"context_line":"            **attrs,"},{"line_number":2748,"context_line":"        )"},{"line_number":2749,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"21c194bf_0ba870bf","line":2746,"in_reply_to":"48aa61e0_e4de1c70","updated":"2024-10-08 13:54:38.000000000","message":"Done","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d4f762c361c4f00f4ed4b6b7da843b8d9dee27d","unresolved":true,"context_lines":[{"line_number":2763,"context_line":"        share_id \u003d resource.Resource._get_id(share)"},{"line_number":2764,"context_line":""},{"line_number":2765,"context_line":"        self._delete("},{"line_number":2766,"context_line":"            _server_share.ShareMapping,"},{"line_number":2767,"context_line":"            id\u003dshare_id,"},{"line_number":2768,"context_line":"            server_id\u003dserver_id,"},{"line_number":2769,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":27,"id":"7efaa5d6_35c5b648","line":2766,"updated":"2024-08-26 12:34:24.000000000","message":"This is missing the positional `value` argument. `mypy` will likely catch this when you rebase and run the linters. My guess is you haven\u0027t tested this?","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be2624d99aba26c35a45f4b8e16813540822ddd1","unresolved":false,"context_lines":[{"line_number":2763,"context_line":"        share_id \u003d resource.Resource._get_id(share)"},{"line_number":2764,"context_line":""},{"line_number":2765,"context_line":"        self._delete("},{"line_number":2766,"context_line":"            _server_share.ShareMapping,"},{"line_number":2767,"context_line":"            id\u003dshare_id,"},{"line_number":2768,"context_line":"            server_id\u003dserver_id,"},{"line_number":2769,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":27,"id":"90efe8ea_fd54fd58","line":2766,"in_reply_to":"7efaa5d6_35c5b648","updated":"2024-10-08 13:54:38.000000000","message":"Done","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d4f762c361c4f00f4ed4b6b7da843b8d9dee27d","unresolved":true,"context_lines":[{"line_number":2764,"context_line":""},{"line_number":2765,"context_line":"        self._delete("},{"line_number":2766,"context_line":"            _server_share.ShareMapping,"},{"line_number":2767,"context_line":"            id\u003dshare_id,"},{"line_number":2768,"context_line":"            server_id\u003dserver_id,"},{"line_number":2769,"context_line":"        )"},{"line_number":2770,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"db57060c_bdc2119d","line":2767,"updated":"2024-08-26 12:34:24.000000000","message":"You\u0027re passing this as `id`, but the attribute is `share_id`, no?","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be2624d99aba26c35a45f4b8e16813540822ddd1","unresolved":false,"context_lines":[{"line_number":2764,"context_line":""},{"line_number":2765,"context_line":"        self._delete("},{"line_number":2766,"context_line":"            _server_share.ShareMapping,"},{"line_number":2767,"context_line":"            id\u003dshare_id,"},{"line_number":2768,"context_line":"            server_id\u003dserver_id,"},{"line_number":2769,"context_line":"        )"},{"line_number":2770,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"d927bc03_ecc7a6e7","line":2767,"in_reply_to":"db57060c_bdc2119d","updated":"2024-10-08 13:54:38.000000000","message":"Done","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"}],"openstack/compute/v2/server_share.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f3d964399dc202584ca4a34b3d96e49fd5eb1e9","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    #: The ID of the share mapping."},{"line_number":31,"context_line":"    uuid \u003d resource.Body(\u0027uuid\u0027)"},{"line_number":32,"context_line":"    #: The ID of the share."},{"line_number":33,"context_line":"    share_id \u003d resource.Body(\u0027shareId\u0027)"},{"line_number":34,"context_line":"    #: The status of the share."},{"line_number":35,"context_line":"    status \u003d resource.Body(\u0027status\u0027)"},{"line_number":36,"context_line":"    #: Tags for the shares."}],"source_content_type":"text/x-python","patch_set":18,"id":"0a67762f_a9c94c03","line":33,"updated":"2023-04-14 10:04:37.000000000","message":"I don\u0027t know if this has been implemented yet, but why is this camel case instead of snake case? 😅","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"9e25f22db1d3476812fd9dbda9f2945aa7662d80","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    #: The ID of the share mapping."},{"line_number":31,"context_line":"    uuid \u003d resource.Body(\u0027uuid\u0027)"},{"line_number":32,"context_line":"    #: The ID of the share."},{"line_number":33,"context_line":"    share_id \u003d resource.Body(\u0027shareId\u0027)"},{"line_number":34,"context_line":"    #: The status of the share."},{"line_number":35,"context_line":"    status \u003d resource.Body(\u0027status\u0027)"},{"line_number":36,"context_line":"    #: Tags for the shares."}],"source_content_type":"text/x-python","patch_set":18,"id":"6eaf225f_4b317100","line":33,"in_reply_to":"0a67762f_a9c94c03","updated":"2023-04-18 17:10:12.000000000","message":"This was defined in the first virtiofs specification written by Lee. So I used that naming in the virtiofs series.\nI guess the intention was to adhere to a comparable convention to that of volume.\n\nvolume_id \u003d resource.Body(\u0027volumeId\u0027, alternate_id\u003dTrue)\n\nDo you think it\u0027s really better, cleaner to use share_id? I think it\u0027s possible even though I may have a lot of changes on the virtiofs series.","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"10862e09825a89ec1b0300638c77e200d2184afc","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    #: The ID of the share mapping."},{"line_number":31,"context_line":"    uuid \u003d resource.Body(\u0027uuid\u0027)"},{"line_number":32,"context_line":"    #: The ID of the share."},{"line_number":33,"context_line":"    share_id \u003d resource.Body(\u0027shareId\u0027)"},{"line_number":34,"context_line":"    #: The status of the share."},{"line_number":35,"context_line":"    status \u003d resource.Body(\u0027status\u0027)"},{"line_number":36,"context_line":"    #: Tags for the shares."}],"source_content_type":"text/x-python","patch_set":18,"id":"0c5e991a_094dc804","line":33,"in_reply_to":"6eaf225f_4b317100","updated":"2023-04-20 11:09:46.000000000","message":"Personally, when it\u0027s a wholly new API, I probably would. That\u0027s not my decision to make though, but maybe think about it? From an SDK perspective you\u0027re doing the right thing here.","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f3d964399dc202584ca4a34b3d96e49fd5eb1e9","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    tag \u003d resource.Body(\u0027tag\u0027)"},{"line_number":38,"context_line":"    #: The location of the share."},{"line_number":39,"context_line":"    export_location \u003d resource.Body(\u0027export_location\u0027)"},{"line_number":40,"context_line":"    _max_microversion \u003d \u00272.96\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"f44484b0_3c884a9f","line":40,"updated":"2023-04-14 10:04:37.000000000","message":"Please place this higher up, before the attributes","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"9e25f22db1d3476812fd9dbda9f2945aa7662d80","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    tag \u003d resource.Body(\u0027tag\u0027)"},{"line_number":38,"context_line":"    #: The location of the share."},{"line_number":39,"context_line":"    export_location \u003d resource.Body(\u0027export_location\u0027)"},{"line_number":40,"context_line":"    _max_microversion \u003d \u00272.96\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"0b669375_5280a39a","line":40,"in_reply_to":"f44484b0_3c884a9f","updated":"2023-04-18 17:10:12.000000000","message":"Done","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c38b9c2d52c0e1f46c5dabab3f0058c2bdf23b9f","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    allow_delete \u003d True"},{"line_number":26,"context_line":"    allow_list \u003d True"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _max_microversion \u003d \u00272.96\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    #: The ID for the server."},{"line_number":31,"context_line":"    server_id \u003d resource.URI(\u0027server_id\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"26ce3274_08d73556","line":28,"updated":"2024-08-30 11:02:39.000000000","message":"2.97 is now the nova API microversion used as per https://review.opendev.org/c/openstack/nova/+/836830\n\nAlso what does max_microversion means in this context? It feels strange as this feature needs a minimum of 2.97 not a maximum.","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e709bb3966fc831997c6ec6ec1020d94ff7dbe04","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    allow_delete \u003d True"},{"line_number":26,"context_line":"    allow_list \u003d True"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _max_microversion \u003d \u00272.96\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    #: The ID for the server."},{"line_number":31,"context_line":"    server_id \u003d resource.URI(\u0027server_id\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"6e629e26_6716923c","line":28,"in_reply_to":"26ce3274_08d73556","updated":"2025-02-14 09:57:38.000000000","message":"_max_microversion means that last time the resource was modified to support features as of 2.97 and newer attributes are not available. This also means that by default API requests will stick to requesting 2.97 unless different is explicitly requested.\nSDK currently does not support the min_microversion of the attribute and will not be able to support this in the current design. There are special dedicated methods dealing with min_microversion though","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d2c52e7242c5ba329a3c1b1867b11cba6a4d97d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    allow_delete \u003d True"},{"line_number":26,"context_line":"    allow_list \u003d True"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    _max_microversion \u003d \u00272.96\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    #: The ID for the server."},{"line_number":31,"context_line":"    server_id \u003d resource.URI(\u0027server_id\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"0ea7722d_ed0f8479","line":28,"in_reply_to":"6e629e26_6716923c","updated":"2025-05-20 13:05:46.000000000","message":"Done","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e709bb3966fc831997c6ec6ec1020d94ff7dbe04","unresolved":true,"context_lines":[{"line_number":28,"context_line":"    _max_microversion \u003d \u00272.97\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    #: The ID for the server."},{"line_number":31,"context_line":"    server_id \u003d resource.URI(\u0027server_id\u0027)"},{"line_number":32,"context_line":"    #: The ID of the share mapping."},{"line_number":33,"context_line":"    uuid \u003d resource.Body(\u0027uuid\u0027)"},{"line_number":34,"context_line":"    #: The ID of the share."}],"source_content_type":"text/x-python","patch_set":34,"id":"eb4576ba_214da825","line":31,"updated":"2025-02-14 09:57:38.000000000","message":"since you anyway need to respin the change please sort attributes alphabetically","commit_id":"60633c15c86925387bc404c81b22ac8b5a2b9105"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d2c52e7242c5ba329a3c1b1867b11cba6a4d97d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    _max_microversion \u003d \u00272.97\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    #: The ID for the server."},{"line_number":31,"context_line":"    server_id \u003d resource.URI(\u0027server_id\u0027)"},{"line_number":32,"context_line":"    #: The ID of the share mapping."},{"line_number":33,"context_line":"    uuid \u003d resource.Body(\u0027uuid\u0027)"},{"line_number":34,"context_line":"    #: The ID of the share."}],"source_content_type":"text/x-python","patch_set":34,"id":"21c24b8b_ad19f567","line":31,"in_reply_to":"eb4576ba_214da825","updated":"2025-05-20 13:05:46.000000000","message":"Done","commit_id":"60633c15c86925387bc404c81b22ac8b5a2b9105"}],"openstack/tests/functional/compute_shared_file_system/v2/test_server_share.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f3d964399dc202584ca4a34b3d96e49fd5eb1e9","unresolved":true,"context_lines":[{"line_number":55,"context_line":"            wait\u003dself._wait_for_timeout,"},{"line_number":56,"context_line":"        )"},{"line_number":57,"context_line":"        self.assertIsInstance(server, server_.Server)"},{"line_number":58,"context_line":"        self.assertEqual(self.server_name, server.name)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        share \u003d self.user_cloud.share.create_share("},{"line_number":61,"context_line":"            name\u003dself.share_name,"}],"source_content_type":"text/x-python","patch_set":18,"id":"d33c738c_ed1eee87","line":58,"updated":"2023-04-14 10:04:37.000000000","message":"You need to add a cleanup here or wrap the below in a try-except, otherwise you can be left with a redundant server if the server creation passes but share creation fails","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be2624d99aba26c35a45f4b8e16813540822ddd1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            wait\u003dself._wait_for_timeout,"},{"line_number":56,"context_line":"        )"},{"line_number":57,"context_line":"        self.assertIsInstance(server, server_.Server)"},{"line_number":58,"context_line":"        self.assertEqual(self.server_name, server.name)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        share \u003d self.user_cloud.share.create_share("},{"line_number":61,"context_line":"            name\u003dself.share_name,"}],"source_content_type":"text/x-python","patch_set":18,"id":"f5c41404_9f369b9d","line":58,"in_reply_to":"2eca53d9_8f6f6b9a","updated":"2024-10-08 13:54:38.000000000","message":"Done","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"7c36718080129865e47ad81e1f08b21a466a0e55","unresolved":true,"context_lines":[{"line_number":55,"context_line":"            wait\u003dself._wait_for_timeout,"},{"line_number":56,"context_line":"        )"},{"line_number":57,"context_line":"        self.assertIsInstance(server, server_.Server)"},{"line_number":58,"context_line":"        self.assertEqual(self.server_name, server.name)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        share \u003d self.user_cloud.share.create_share("},{"line_number":61,"context_line":"            name\u003dself.share_name,"}],"source_content_type":"text/x-python","patch_set":18,"id":"2eca53d9_8f6f6b9a","line":58,"in_reply_to":"d33c738c_ed1eee87","updated":"2023-04-25 12:50:12.000000000","message":"Hi Stephen, I think this is handled by the tearDown method. So the server is destroyed first, whatever happened to the share.\nI copied this from another file, although I\u0027m not sure this is the best way to handle that. Please let me know what you think about it.","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f3d964399dc202584ca4a34b3d96e49fd5eb1e9","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            server_share_.ShareMapping,"},{"line_number":123,"context_line":"        )"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # Retrieve details of the server share"},{"line_number":126,"context_line":"        server_share \u003d self.user_cloud.compute.get_server_share("},{"line_number":127,"context_line":"            self.server,"},{"line_number":128,"context_line":"            self.share.id,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3e4ed116_4447906b","line":125,"updated":"2023-04-14 10:04:37.000000000","message":"As an API design thing, have you provided any way to configure destroy on detach, or are we expecting that users would never do that since these are shared resources whose overall lifecycle is managed outside of a single server/nova?","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e709bb3966fc831997c6ec6ec1020d94ff7dbe04","unresolved":true,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        # create the server and share"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        server \u003d self.user_cloud.compute.create_server("},{"line_number":51,"context_line":"            name\u003dself.server_name,"},{"line_number":52,"context_line":"            flavor_id\u003dself.flavor.id,"},{"line_number":53,"context_line":"            image_id\u003dself.image.id,"}],"source_content_type":"text/x-python","patch_set":34,"id":"36b73c0b_4461805d","line":50,"updated":"2025-02-14 09:57:38.000000000","message":"I really dislike server and share creation in the setup. While there is just one test it makes no difference, but every other test (that may not need resources to be existing) would still create delete resources what is a pretty expensive operation. Feel free to move those to helper methods, but please do not do this in the setup. I was asking the same for all manila specific functional tests but that was sadly ignored in majority of cases.","commit_id":"60633c15c86925387bc404c81b22ac8b5a2b9105"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d2c52e7242c5ba329a3c1b1867b11cba6a4d97d","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        # create the server and share"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        server \u003d self.user_cloud.compute.create_server("},{"line_number":51,"context_line":"            name\u003dself.server_name,"},{"line_number":52,"context_line":"            flavor_id\u003dself.flavor.id,"},{"line_number":53,"context_line":"            image_id\u003dself.image.id,"}],"source_content_type":"text/x-python","patch_set":34,"id":"5514a74c_5b8f7598","line":50,"in_reply_to":"36b73c0b_4461805d","updated":"2025-05-20 13:05:46.000000000","message":"Done","commit_id":"60633c15c86925387bc404c81b22ac8b5a2b9105"}],"releasenotes/notes/add-server-share-dd95ea294c22b98d.yaml":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c38b9c2d52c0e1f46c5dabab3f0058c2bdf23b9f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The 2.96 API microversion is now supported for the compute"},{"line_number":5,"context_line":"    service. This adds a new API to manage shares, represented by the"},{"line_number":6,"context_line":"    ``openstack.compute.v2.server_share.ShareMapping`` resource."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"ff40ef4b_196ef8de","line":4,"updated":"2024-08-30 11:02:39.000000000","message":"2.97","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be2624d99aba26c35a45f4b8e16813540822ddd1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The 2.96 API microversion is now supported for the compute"},{"line_number":5,"context_line":"    service. This adds a new API to manage shares, represented by the"},{"line_number":6,"context_line":"    ``openstack.compute.v2.server_share.ShareMapping`` resource."}],"source_content_type":"text/x-yaml","patch_set":27,"id":"8346b098_a8b6a180","line":4,"in_reply_to":"ff40ef4b_196ef8de","updated":"2024-10-08 13:54:38.000000000","message":"Done","commit_id":"0e59f6b150aa16ff2f83802a72bbd7ce9b127618"}],"zuul.d/functional-jobs.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5f3d964399dc202584ca4a34b3d96e49fd5eb1e9","unresolved":true,"context_lines":[{"line_number":387,"context_line":"        OPENSTACKSDK_TESTS_SUBDIR: shared_file_system"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"- job:"},{"line_number":390,"context_line":"    name: openstacksdk-functional-devstack-compute-manila"},{"line_number":391,"context_line":"    parent: openstacksdk-functional-devstack-manila"},{"line_number":392,"context_line":"    description: |"},{"line_number":393,"context_line":"      Run openstacksdk functional tests against a master devstack with nova and manila"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"c93b2bc8_c135c67a","line":390,"updated":"2023-04-14 10:04:37.000000000","message":"Rather than a separate job, couldn\u0027t you enable nova and related services in the job above?\n\nLater: Hmm, maybe more involved that since that also uses the dummy driver. I wonder if we should still seek to combine the two though? It seems more realistic","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"10862e09825a89ec1b0300638c77e200d2184afc","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        OPENSTACKSDK_TESTS_SUBDIR: shared_file_system"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"- job:"},{"line_number":390,"context_line":"    name: openstacksdk-functional-devstack-compute-manila"},{"line_number":391,"context_line":"    parent: openstacksdk-functional-devstack-manila"},{"line_number":392,"context_line":"    description: |"},{"line_number":393,"context_line":"      Run openstacksdk functional tests against a master devstack with nova and manila"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"a0062b9a_333addfc","line":390,"in_reply_to":"9f6e3dbf_8cce6b8c","updated":"2023-04-20 11:09:46.000000000","message":"Okay, makes sense. To address 2, we probably could enable manila in the nova/base job instead. This is fine for now though","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"9e25f22db1d3476812fd9dbda9f2945aa7662d80","unresolved":true,"context_lines":[{"line_number":387,"context_line":"        OPENSTACKSDK_TESTS_SUBDIR: shared_file_system"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"- job:"},{"line_number":390,"context_line":"    name: openstacksdk-functional-devstack-compute-manila"},{"line_number":391,"context_line":"    parent: openstacksdk-functional-devstack-manila"},{"line_number":392,"context_line":"    description: |"},{"line_number":393,"context_line":"      Run openstacksdk functional tests against a master devstack with nova and manila"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"9f6e3dbf_8cce6b8c","line":390,"in_reply_to":"c93b2bc8_c135c67a","updated":"2023-04-18 17:10:12.000000000","message":"There are 2 reasons why I created a new job.\n1- I did not want to touch the manila job.\n2- The job is link to a directory. So as this code is more compute oriented I did not want to put that in the manila directory.","commit_id":"9e21267cbc32f3e434e31b1f0ef98cf99283d78e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f0a9f826244f2664dfad4c7916194db52c97db93","unresolved":true,"context_lines":[{"line_number":433,"context_line":"        OPENSTACKSDK_HAS_MANILA: 1"},{"line_number":434,"context_line":"        OPENSTACKSDK_TESTS_SUBDIR: shared_file_system"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"- job:"},{"line_number":437,"context_line":"    name: openstacksdk-functional-devstack-compute-manila"},{"line_number":438,"context_line":"    parent: openstacksdk-functional-devstack-minimum"},{"line_number":439,"context_line":"    description: |"}],"source_content_type":"text/x-yaml","patch_set":45,"id":"f6c7ffd6_da9f280f","line":436,"updated":"2026-04-09 16:14:52.000000000","message":"What do we think about merging this into the `openstacksdk-functional-devstack` job? The test took ~75 seconds which is not fast but would not be a huge addition to that environment.\n\n```\n2026-03-29 06:46:38.211262 | controller | Ran: 1 tests in 73.7872 sec.\n```","commit_id":"f27f1002d0f5ea2814140b8639c95dc80d3bf251"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9978e24b5415cc1c5fe88d3d115049e2c71869db","unresolved":false,"context_lines":[{"line_number":433,"context_line":"        OPENSTACKSDK_HAS_MANILA: 1"},{"line_number":434,"context_line":"        OPENSTACKSDK_TESTS_SUBDIR: shared_file_system"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"- job:"},{"line_number":437,"context_line":"    name: openstacksdk-functional-devstack-compute-manila"},{"line_number":438,"context_line":"    parent: openstacksdk-functional-devstack-minimum"},{"line_number":439,"context_line":"    description: |"}],"source_content_type":"text/x-yaml","patch_set":45,"id":"48ca342a_fef14e01","line":436,"in_reply_to":"67d61cbf_31522a1d","updated":"2026-04-09 19:17:23.000000000","message":"WIP: https://review.opendev.org/c/openstack/openstacksdk/+/983909","commit_id":"f27f1002d0f5ea2814140b8639c95dc80d3bf251"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c5e16bc38bf069aa45d0e2ac5f92f4adae0b8f1","unresolved":true,"context_lines":[{"line_number":433,"context_line":"        OPENSTACKSDK_HAS_MANILA: 1"},{"line_number":434,"context_line":"        OPENSTACKSDK_TESTS_SUBDIR: shared_file_system"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"- job:"},{"line_number":437,"context_line":"    name: openstacksdk-functional-devstack-compute-manila"},{"line_number":438,"context_line":"    parent: openstacksdk-functional-devstack-minimum"},{"line_number":439,"context_line":"    description: |"}],"source_content_type":"text/x-yaml","patch_set":45,"id":"67d61cbf_31522a1d","line":436,"in_reply_to":"f6c7ffd6_da9f280f","updated":"2026-04-09 17:05:59.000000000","message":"We could do it.. but it\u0027d enable manila on that job. Is that kosher?","commit_id":"f27f1002d0f5ea2814140b8639c95dc80d3bf251"}],"zuul.d/project.yaml":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e709bb3966fc831997c6ec6ec1020d94ff7dbe04","unresolved":true,"context_lines":[{"line_number":27,"context_line":"            voting: false"},{"line_number":28,"context_line":"        - openstacksdk-functional-devstack-manila:"},{"line_number":29,"context_line":"            voting: false"},{"line_number":30,"context_line":"        - openstacksdk-functional-devstack-compute-manila:"},{"line_number":31,"context_line":"            voting: false"},{"line_number":32,"context_line":"        - openstacksdk-functional-devstack-masakari:"},{"line_number":33,"context_line":"            voting: false"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"c2808c01_0df1aeb9","line":30,"updated":"2025-02-14 09:57:38.000000000","message":"non-voting is ok, but this job is failing right from the beginning","commit_id":"60633c15c86925387bc404c81b22ac8b5a2b9105"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"2d2c52e7242c5ba329a3c1b1867b11cba6a4d97d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"            voting: false"},{"line_number":28,"context_line":"        - openstacksdk-functional-devstack-manila:"},{"line_number":29,"context_line":"            voting: false"},{"line_number":30,"context_line":"        - openstacksdk-functional-devstack-compute-manila:"},{"line_number":31,"context_line":"            voting: false"},{"line_number":32,"context_line":"        - openstacksdk-functional-devstack-masakari:"},{"line_number":33,"context_line":"            voting: false"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"11b253af_f3d8c4a2","line":30,"in_reply_to":"774d1aa4_88a499cc","updated":"2025-05-20 13:05:46.000000000","message":"Done","commit_id":"60633c15c86925387bc404c81b22ac8b5a2b9105"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8b1eaa851e3a3614cfe801b3260e8b6e8d5d4bf5","unresolved":true,"context_lines":[{"line_number":27,"context_line":"            voting: false"},{"line_number":28,"context_line":"        - openstacksdk-functional-devstack-manila:"},{"line_number":29,"context_line":"            voting: false"},{"line_number":30,"context_line":"        - openstacksdk-functional-devstack-compute-manila:"},{"line_number":31,"context_line":"            voting: false"},{"line_number":32,"context_line":"        - openstacksdk-functional-devstack-masakari:"},{"line_number":33,"context_line":"            voting: false"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"774d1aa4_88a499cc","line":30,"in_reply_to":"c2808c01_0df1aeb9","updated":"2025-02-14 16:48:30.000000000","message":"I\u0027d personally make it voting. There\u0027s no reason for any of the non-tip jobs to be non-voting.","commit_id":"60633c15c86925387bc404c81b22ac8b5a2b9105"}]}
