)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"22ec497a1a928c2734e7577fd488ac8c54efaee4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6c5859f5_51253047","updated":"2024-01-25 02:35:11.000000000","message":"You\u0027ll need API sample tests for the new microversion, you can look at previous microversion bumps (https://review.opendev.org/c/openstack/nova/+/869812 is one of mine, but any other one will work too) for an idea of what needs to be done.","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"080518c4906d054a2e205e323734b775d7c705be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"83fb05f9_83d3e54d","in_reply_to":"6c5859f5_51253047","updated":"2024-02-02 12:35:32.000000000","message":"Sure, Thanks!","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"080518c4906d054a2e205e323734b775d7c705be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"75072d71_b7272cf0","updated":"2024-02-02 12:35:32.000000000","message":"Thanks, I have updated the patch as per review comments.","commit_id":"5e3c5db15188ee48e08d7dc53c3d79b55fafc3d6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fabc1833f4a09d535e7c772d9add874e7599924c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5bf1d160_55e5430d","updated":"2024-02-14 15:23:10.000000000","message":"You definitely miss some important api-ref docs. FWIW, for the moment I only looked at that, not at the code or the tests.","commit_id":"9717009be07e36ff2376eae1855c1a5ce9b46874"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"55ca21e277bf3aa5b2d5250a0a0ab2b99d5de4a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"0de661f8_6e84c93e","updated":"2024-02-22 05:26:09.000000000","message":"recheck nova-next \"ForbiddenException: 403: Client Error for url: https://162.253.55.134:9696/networking/v2.0/ports/72c03e9a-1e6d-4b0e-8ffd-99d0cb3787f2, (rule:update_port and rule:update_port:binding:profile) is disallowed by policy\"","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"a2075ec1fc7cd1379994b05d1066b7380a5f5efb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"9d5e75e4_87b1eede","updated":"2024-02-22 08:42:59.000000000","message":"recheck nova-next unrelated","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec180ce3d39e39b344d8f1436280547c90108c7a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"f2201bc2_36787eea","updated":"2024-02-22 16:45:52.000000000","message":"the post failure is not related to your change.\nwe are fixing that now","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"06a3361625dd6bc4814b36bdfca582b4ccb3d63d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"9b433603_3a5c28a1","in_reply_to":"f2201bc2_36787eea","updated":"2024-02-25 05:49:37.000000000","message":"Ack. Thanks for update.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"8c7b4d39_d70f9a52","updated":"2024-02-26 14:33:02.000000000","message":"Still missing some test coverage and I don\u0027t like the current interface you\u0027re proposing.","commit_id":"94eef72f1465d425149596bea1b1ebc3f02b4610"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"75b563a98421c47eb096b9339b1acd19c1eef854","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a6f02c8e_78758cc5","updated":"2024-03-01 11:47:15.000000000","message":"I suspect a bug as you need to mock the new call in functional test","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d078c4a2e5ba128c53e2249d21f5b74911478cf4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5eb77242_61e62191","updated":"2024-02-29 17:51:41.000000000","message":"Thanks for having changed the interface and having taken my concerns. All good now.","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"79c46d13e64d56b4401e179a338f65a693fa3b17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"be26e5d0_e2fc8255","updated":"2024-02-28 11:58:09.000000000","message":"recheck nova-ceph-multistore","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"0bb38dcbffeb46bdfbbf6ab1c19679d322b0ed25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"70616070_3ee83222","updated":"2024-03-01 13:44:37.000000000","message":"Thanks gibi for review, I have updated the patch as per your comments.","commit_id":"65dc0abd27497156e703b2e5d12e834c1df96c1f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"578edcd7a362ca3c61fa8d47862908df3483dbb1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"bdaf566f_88d1c5a7","updated":"2024-03-04 10:23:40.000000000","message":"For the sake of explaining I\u0027m good 😊","commit_id":"c98c8d84eec6e65f1b67ae1ab8278d9c507a1a76"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4784b5a5640cbbdf21d863c2442a5635772980f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"5aa81b55_7ce50cc4","updated":"2024-03-01 17:33:40.000000000","message":"im partly proxying sylvains +2 here.\nthey were previously +2 and the issues that gibi noted have now been adressed.\n\ni do not see anything obviously wrong with this but i have not done a super detailed review.","commit_id":"c98c8d84eec6e65f1b67ae1ab8278d9c507a1a76"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f3e0bb2fa9a8e3f342b15855684019d97f128956","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"1ab80d30_db3226c6","updated":"2024-03-01 16:23:53.000000000","message":"looks good to me","commit_id":"c98c8d84eec6e65f1b67ae1ab8278d9c507a1a76"}],"api-ref/source/servers.inc":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fabc1833f4a09d535e7c772d9add874e7599924c","unresolved":true,"context_lines":[{"line_number":669,"context_line":"  - fault.created: fault_created"},{"line_number":670,"context_line":"  - fault.message: fault_message"},{"line_number":671,"context_line":"  - fault.details: fault_details"},{"line_number":672,"context_line":"  - pinned_availability_zone: pinned_availability_zone"},{"line_number":673,"context_line":"  - progress: progress"},{"line_number":674,"context_line":"  - security_groups: security_groups_obj_optional"},{"line_number":675,"context_line":"  - security_group.name: name"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"51204606_87ee56fd","line":672,"range":{"start_line":672,"start_character":30,"end_line":672,"end_character":54},"updated":"2024-02-14 15:23:10.000000000","message":"you\u0027re defining some field here but you don\u0027t provide it in parameters.yaml where you explain what\u0027s this.\nhttps://github.com/openstack/nova/blob/master/api-ref/source/parameters.yaml","commit_id":"9717009be07e36ff2376eae1855c1a5ce9b46874"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"81b8b127dd0540f65bccbc1940d3803a863254c5","unresolved":false,"context_lines":[{"line_number":669,"context_line":"  - fault.created: fault_created"},{"line_number":670,"context_line":"  - fault.message: fault_message"},{"line_number":671,"context_line":"  - fault.details: fault_details"},{"line_number":672,"context_line":"  - pinned_availability_zone: pinned_availability_zone"},{"line_number":673,"context_line":"  - progress: progress"},{"line_number":674,"context_line":"  - security_groups: security_groups_obj_optional"},{"line_number":675,"context_line":"  - security_group.name: name"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"e73d39e0_a9af245a","line":672,"range":{"start_line":672,"start_character":30,"end_line":672,"end_character":54},"in_reply_to":"51204606_87ee56fd","updated":"2024-02-21 16:00:31.000000000","message":"Done","commit_id":"9717009be07e36ff2376eae1855c1a5ce9b46874"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[{"line_number":810,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":811,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":812,"context_line":"  - locked_reason: locked_reason_resp"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"**Example Show Server Details (2.73)**"},{"line_number":815,"context_line":""},{"line_number":816,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.73/server-get-resp.json"}],"source_content_type":"text/x-c++src","patch_set":12,"id":"d5822c9b_011811f4","line":813,"updated":"2024-02-22 17:09:52.000000000","message":"you need to provide your JSON example here too.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"}],"doc/api_samples/servers/v2.96/server-create-req.json":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fabc1833f4a09d535e7c772d9add874e7599924c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c666cb80_e72af484","updated":"2024-02-14 15:23:10.000000000","message":"in which api ref will you provide this JSON ?\n\nYou\u0027re missing to update some .inc file (I guess the servers.inc one ;) )\n\nSee how 2.94 did it : https://review.opendev.org/c/openstack/nova/+/869812","commit_id":"9717009be07e36ff2376eae1855c1a5ce9b46874"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"81b8b127dd0540f65bccbc1940d3803a863254c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"32ab7896_884586df","in_reply_to":"c666cb80_e72af484","updated":"2024-02-21 16:00:31.000000000","message":"Done","commit_id":"9717009be07e36ff2376eae1855c1a5ce9b46874"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"d17a378e_bec9323b","updated":"2024-02-22 17:09:52.000000000","message":"you don\u0027t need that file since you haven\u0027t changed the request.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"}],"doc/api_samples/servers/v2.96/server-create-resp.json":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"91c1cade_d525cb03","updated":"2024-02-22 17:09:52.000000000","message":"that file is unnecessary, you don\u0027t change the returned object of a create call","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fabc1833f4a09d535e7c772d9add874e7599924c","unresolved":true,"context_lines":[{"line_number":256,"context_line":"    * 2.94 - Allow FQDN in server hostname."},{"line_number":257,"context_line":"    * 2.95 - Evacuate will now stop instance at destination."},{"line_number":258,"context_line":"    * 2.96 - Add support for returning pinned_availability_zone in"},{"line_number":259,"context_line":"             ``server show`` and ``server list --long`` responses."},{"line_number":260,"context_line":"\"\"\""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":8,"id":"92b03baf_f693765e","line":259,"updated":"2024-02-14 15:23:10.000000000","message":"you\u0027re also missing to add this in the microversion history : \nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/rest_api_version_history.rst?plain\u003d1","commit_id":"9717009be07e36ff2376eae1855c1a5ce9b46874"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"81b8b127dd0540f65bccbc1940d3803a863254c5","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    * 2.94 - Allow FQDN in server hostname."},{"line_number":257,"context_line":"    * 2.95 - Evacuate will now stop instance at destination."},{"line_number":258,"context_line":"    * 2.96 - Add support for returning pinned_availability_zone in"},{"line_number":259,"context_line":"             ``server show`` and ``server list --long`` responses."},{"line_number":260,"context_line":"\"\"\""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":8,"id":"602f349a_27929a9a","line":259,"in_reply_to":"92b03baf_f693765e","updated":"2024-02-21 16:00:31.000000000","message":"Done","commit_id":"9717009be07e36ff2376eae1855c1a5ce9b46874"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[{"line_number":474,"context_line":"        context.can(server_policies.SERVERS % \u0027show\u0027,"},{"line_number":475,"context_line":"                    target\u003d{\u0027project_id\u0027: instance.project_id})"},{"line_number":476,"context_line":"        req_spec \u003d None"},{"line_number":477,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\u00272.96\u0027):"},{"line_number":478,"context_line":"            req_spec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":479,"context_line":"                    context, instance.uuid)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        return self._view_builder.show("},{"line_number":482,"context_line":"            req, instance, cell_down_support\u003dcell_down_support,"}],"source_content_type":"text/x-python","patch_set":12,"id":"47a94c2d_475bb6b1","line":479,"range":{"start_line":477,"start_character":0,"end_line":479,"end_character":43},"updated":"2024-02-22 17:09:52.000000000","message":"that call needs to be in the view module, not here.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"06a3361625dd6bc4814b36bdfca582b4ccb3d63d","unresolved":true,"context_lines":[{"line_number":474,"context_line":"        context.can(server_policies.SERVERS % \u0027show\u0027,"},{"line_number":475,"context_line":"                    target\u003d{\u0027project_id\u0027: instance.project_id})"},{"line_number":476,"context_line":"        req_spec \u003d None"},{"line_number":477,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\u00272.96\u0027):"},{"line_number":478,"context_line":"            req_spec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":479,"context_line":"                    context, instance.uuid)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        return self._view_builder.show("},{"line_number":482,"context_line":"            req, instance, cell_down_support\u003dcell_down_support,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fb98a81b_bd7c61a7","line":479,"range":{"start_line":477,"start_character":0,"end_line":479,"end_character":43},"in_reply_to":"47a94c2d_475bb6b1","updated":"2024-02-25 05:49:37.000000000","message":"if we move this call to view module, then during \u0027list server --long\u0027 call, we need to fetch reqspec for each server in separate db call, instead of getting all required reqspecs for list of servers in one db call.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":true,"context_lines":[{"line_number":474,"context_line":"        context.can(server_policies.SERVERS % \u0027show\u0027,"},{"line_number":475,"context_line":"                    target\u003d{\u0027project_id\u0027: instance.project_id})"},{"line_number":476,"context_line":"        req_spec \u003d None"},{"line_number":477,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\u00272.96\u0027):"},{"line_number":478,"context_line":"            req_spec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":479,"context_line":"                    context, instance.uuid)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        return self._view_builder.show("},{"line_number":482,"context_line":"            req, instance, cell_down_support\u003dcell_down_support,"}],"source_content_type":"text/x-python","patch_set":12,"id":"2b7f832a_4f2d96fd","line":479,"range":{"start_line":477,"start_character":0,"end_line":479,"end_character":43},"in_reply_to":"fb98a81b_bd7c61a7","updated":"2024-02-26 14:33:02.000000000","message":"While I can understand that you want to optimize the DB calls for the listing call, I don\u0027t think that we need to have this query here.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0010e4728d8034972eb2d0f03634c2b2a1982552","unresolved":true,"context_lines":[{"line_number":296,"context_line":"                    requested_az \u003d req_spec.availability_zone"},{"line_number":297,"context_line":"                else:"},{"line_number":298,"context_line":"                    requested_az \u003d \u0027\u0027"},{"line_number":299,"context_line":"                server[\u0027server\u0027][\u0027requested_availability_zone\u0027] \u003d requested_az"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        if show_config_drive:"},{"line_number":302,"context_line":"            server[\"server\"][\"config_drive\"] \u003d instance[\"config_drive\"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"75a9a2a3_a04d207d","line":299,"range":{"start_line":299,"start_character":34,"end_line":299,"end_character":61},"updated":"2024-01-12 10:53:27.000000000","message":"we agreed on the spec to have pinned_availability_zone","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"080518c4906d054a2e205e323734b775d7c705be","unresolved":false,"context_lines":[{"line_number":296,"context_line":"                    requested_az \u003d req_spec.availability_zone"},{"line_number":297,"context_line":"                else:"},{"line_number":298,"context_line":"                    requested_az \u003d \u0027\u0027"},{"line_number":299,"context_line":"                server[\u0027server\u0027][\u0027requested_availability_zone\u0027] \u003d requested_az"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        if show_config_drive:"},{"line_number":302,"context_line":"            server[\"server\"][\"config_drive\"] \u003d instance[\"config_drive\"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f865224_9bf34617","line":299,"range":{"start_line":299,"start_character":34,"end_line":299,"end_character":61},"in_reply_to":"75a9a2a3_a04d207d","updated":"2024-02-02 12:35:32.000000000","message":"Done","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0010e4728d8034972eb2d0f03634c2b2a1982552","unresolved":true,"context_lines":[{"line_number":523,"context_line":"                            show_host_status\u003dshow_host_status,"},{"line_number":524,"context_line":"                            show_sec_grp\u003dshow_sec_grp, bdms\u003dbdms,"},{"line_number":525,"context_line":"                            cell_down_support\u003dcell_down_support,"},{"line_number":526,"context_line":"                            req_spec\u003dreq_specs_dict[server.uuid])[\"server\"]"},{"line_number":527,"context_line":"                       for server in servers"},{"line_number":528,"context_line":"                       # Filter out the fake marker instance created by the"},{"line_number":529,"context_line":"                       # fill_virtual_interface_list online data migration."}],"source_content_type":"text/x-python","patch_set":4,"id":"40ec1cac_dcf83387","line":526,"updated":"2024-01-12 10:53:27.000000000","message":"instead of passing a whole ReqSpec dict, why aren\u0027t we passing only the AZ value ?\n\nWe could add the az value in the some other existing dict.","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[{"line_number":523,"context_line":"                            show_host_status\u003dshow_host_status,"},{"line_number":524,"context_line":"                            show_sec_grp\u003dshow_sec_grp, bdms\u003dbdms,"},{"line_number":525,"context_line":"                            cell_down_support\u003dcell_down_support,"},{"line_number":526,"context_line":"                            req_spec\u003dreq_specs_dict[server.uuid])[\"server\"]"},{"line_number":527,"context_line":"                       for server in servers"},{"line_number":528,"context_line":"                       # Filter out the fake marker instance created by the"},{"line_number":529,"context_line":"                       # fill_virtual_interface_list online data migration."}],"source_content_type":"text/x-python","patch_set":4,"id":"cdacadf0_a28911e7","line":526,"in_reply_to":"227fe0b3_e29c3f01","updated":"2024-02-22 17:09:52.000000000","message":"Actually, this is unnecessary : you should just remove all of this and let the RequestSpec be pulled directly in show().","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"080518c4906d054a2e205e323734b775d7c705be","unresolved":true,"context_lines":[{"line_number":523,"context_line":"                            show_host_status\u003dshow_host_status,"},{"line_number":524,"context_line":"                            show_sec_grp\u003dshow_sec_grp, bdms\u003dbdms,"},{"line_number":525,"context_line":"                            cell_down_support\u003dcell_down_support,"},{"line_number":526,"context_line":"                            req_spec\u003dreq_specs_dict[server.uuid])[\"server\"]"},{"line_number":527,"context_line":"                       for server in servers"},{"line_number":528,"context_line":"                       # Filter out the fake marker instance created by the"},{"line_number":529,"context_line":"                       # fill_virtual_interface_list online data migration."}],"source_content_type":"text/x-python","patch_set":4,"id":"227fe0b3_e29c3f01","line":526,"in_reply_to":"40ec1cac_dcf83387","updated":"2024-02-02 12:35:32.000000000","message":"That will required additional handing, I will try locally and see if that efficient.","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":true,"context_lines":[{"line_number":523,"context_line":"                            show_host_status\u003dshow_host_status,"},{"line_number":524,"context_line":"                            show_sec_grp\u003dshow_sec_grp, bdms\u003dbdms,"},{"line_number":525,"context_line":"                            cell_down_support\u003dcell_down_support,"},{"line_number":526,"context_line":"                            req_spec\u003dreq_specs_dict[server.uuid])[\"server\"]"},{"line_number":527,"context_line":"                       for server in servers"},{"line_number":528,"context_line":"                       # Filter out the fake marker instance created by the"},{"line_number":529,"context_line":"                       # fill_virtual_interface_list online data migration."}],"source_content_type":"text/x-python","patch_set":4,"id":"bd8173dc_033a0032","line":526,"in_reply_to":"838adbd0_2b8ac9fd","updated":"2024-02-26 14:33:02.000000000","message":"Honestly, I understand now *why* you\u0027re passing a dict but I don\u0027t like this interface.\n\nInstead of passing a long blob of things, you could have a specific parameter supporting a list of strings which would be the list of AZs.","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4784b5a5640cbbdf21d863c2442a5635772980f","unresolved":false,"context_lines":[{"line_number":523,"context_line":"                            show_host_status\u003dshow_host_status,"},{"line_number":524,"context_line":"                            show_sec_grp\u003dshow_sec_grp, bdms\u003dbdms,"},{"line_number":525,"context_line":"                            cell_down_support\u003dcell_down_support,"},{"line_number":526,"context_line":"                            req_spec\u003dreq_specs_dict[server.uuid])[\"server\"]"},{"line_number":527,"context_line":"                       for server in servers"},{"line_number":528,"context_line":"                       # Filter out the fake marker instance created by the"},{"line_number":529,"context_line":"                       # fill_virtual_interface_list online data migration."}],"source_content_type":"text/x-python","patch_set":4,"id":"ad7b93af_14121990","line":526,"in_reply_to":"bd8173dc_033a0032","updated":"2024-03-01 17:33:40.000000000","message":"Done","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"06a3361625dd6bc4814b36bdfca582b4ccb3d63d","unresolved":true,"context_lines":[{"line_number":523,"context_line":"                            show_host_status\u003dshow_host_status,"},{"line_number":524,"context_line":"                            show_sec_grp\u003dshow_sec_grp, bdms\u003dbdms,"},{"line_number":525,"context_line":"                            cell_down_support\u003dcell_down_support,"},{"line_number":526,"context_line":"                            req_spec\u003dreq_specs_dict[server.uuid])[\"server\"]"},{"line_number":527,"context_line":"                       for server in servers"},{"line_number":528,"context_line":"                       # Filter out the fake marker instance created by the"},{"line_number":529,"context_line":"                       # fill_virtual_interface_list online data migration."}],"source_content_type":"text/x-python","patch_set":4,"id":"838adbd0_2b8ac9fd","line":526,"in_reply_to":"cdacadf0_a28911e7","updated":"2024-02-25 05:49:37.000000000","message":"That will have separate db calls for getting each ReqSpec and increase response time unnecessarily, however here we are getting all required reqspec in one db call and to handle that above code block from line#507 to #518 is required to handle this.","commit_id":"a8fb798f859f6bf88758d6af853281925ebf51b3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    def basic(self, request, instance, show_extra_specs\u003dFalse,"},{"line_number":95,"context_line":"              show_extended_attr\u003dNone, show_host_status\u003dNone,"},{"line_number":96,"context_line":"              show_sec_grp\u003dNone, bdms\u003dNone, cell_down_support\u003dFalse,"},{"line_number":97,"context_line":"              show_user_data\u003dFalse, req_spec\u003dNone):"},{"line_number":98,"context_line":"        \"\"\"Generic, non-detailed view of an instance.\"\"\""},{"line_number":99,"context_line":"        if cell_down_support and \u0027display_name\u0027 not in instance:"},{"line_number":100,"context_line":"            # NOTE(tssurya): If the microversion is \u003e\u003d 2.69, this boolean will"}],"source_content_type":"text/x-python","patch_set":12,"id":"5eadd5be_8a39ccf7","line":97,"range":{"start_line":97,"start_character":35,"end_line":97,"end_character":50},"updated":"2024-02-22 17:09:52.000000000","message":"this is unnecessary : see my comment just below.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4784b5a5640cbbdf21d863c2442a5635772980f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def basic(self, request, instance, show_extra_specs\u003dFalse,"},{"line_number":95,"context_line":"              show_extended_attr\u003dNone, show_host_status\u003dNone,"},{"line_number":96,"context_line":"              show_sec_grp\u003dNone, bdms\u003dNone, cell_down_support\u003dFalse,"},{"line_number":97,"context_line":"              show_user_data\u003dFalse, req_spec\u003dNone):"},{"line_number":98,"context_line":"        \"\"\"Generic, non-detailed view of an instance.\"\"\""},{"line_number":99,"context_line":"        if cell_down_support and \u0027display_name\u0027 not in instance:"},{"line_number":100,"context_line":"            # NOTE(tssurya): If the microversion is \u003e\u003d 2.69, this boolean will"}],"source_content_type":"text/x-python","patch_set":12,"id":"41adea09_3926b860","line":97,"range":{"start_line":97,"start_character":35,"end_line":97,"end_character":50},"in_reply_to":"087f24d3_818c27d0","updated":"2024-03-01 17:33:40.000000000","message":"Done","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    def basic(self, request, instance, show_extra_specs\u003dFalse,"},{"line_number":95,"context_line":"              show_extended_attr\u003dNone, show_host_status\u003dNone,"},{"line_number":96,"context_line":"              show_sec_grp\u003dNone, bdms\u003dNone, cell_down_support\u003dFalse,"},{"line_number":97,"context_line":"              show_user_data\u003dFalse, req_spec\u003dNone):"},{"line_number":98,"context_line":"        \"\"\"Generic, non-detailed view of an instance.\"\"\""},{"line_number":99,"context_line":"        if cell_down_support and \u0027display_name\u0027 not in instance:"},{"line_number":100,"context_line":"            # NOTE(tssurya): If the microversion is \u003e\u003d 2.69, this boolean will"}],"source_content_type":"text/x-python","patch_set":12,"id":"087f24d3_818c27d0","line":97,"range":{"start_line":97,"start_character":35,"end_line":97,"end_character":50},"in_reply_to":"5eadd5be_8a39ccf7","updated":"2024-02-26 14:33:02.000000000","message":"OK, I see the optimization now but I don\u0027t like bloabing the whole ReqSpec.\nI\u0027d prefer something like `provided_az\u003dNone`","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[{"line_number":224,"context_line":"             show_keypair\u003dTrue, show_srv_usg\u003dTrue, show_sec_grp\u003dTrue,"},{"line_number":225,"context_line":"             show_extended_status\u003dTrue, show_extended_volumes\u003dTrue,"},{"line_number":226,"context_line":"             bdms\u003dNone, cell_down_support\u003dFalse, show_server_groups\u003dFalse,"},{"line_number":227,"context_line":"             show_user_data\u003dTrue, req_spec\u003dNone):"},{"line_number":228,"context_line":"        \"\"\"Detailed view of a single instance.\"\"\""},{"line_number":229,"context_line":"        if show_extra_specs is None:"},{"line_number":230,"context_line":"            # detail will pre-calculate this for us. If we\u0027re doing show,"}],"source_content_type":"text/x-python","patch_set":12,"id":"f8eaac23_9a61862f","line":227,"range":{"start_line":227,"start_character":34,"end_line":227,"end_character":47},"updated":"2024-02-22 17:09:52.000000000","message":"IMHO, this is useless : instead of passing the whole ReqSpec object, you can use the already existing show_AZ flag to know whether you need to call the DB to get the RequestSpec.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4784b5a5640cbbdf21d863c2442a5635772980f","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             show_keypair\u003dTrue, show_srv_usg\u003dTrue, show_sec_grp\u003dTrue,"},{"line_number":225,"context_line":"             show_extended_status\u003dTrue, show_extended_volumes\u003dTrue,"},{"line_number":226,"context_line":"             bdms\u003dNone, cell_down_support\u003dFalse, show_server_groups\u003dFalse,"},{"line_number":227,"context_line":"             show_user_data\u003dTrue, req_spec\u003dNone):"},{"line_number":228,"context_line":"        \"\"\"Detailed view of a single instance.\"\"\""},{"line_number":229,"context_line":"        if show_extra_specs is None:"},{"line_number":230,"context_line":"            # detail will pre-calculate this for us. If we\u0027re doing show,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa3c008a_36fc878b","line":227,"range":{"start_line":227,"start_character":34,"end_line":227,"end_character":47},"in_reply_to":"b4006d35_a1186ec4","updated":"2024-03-01 17:33:40.000000000","message":"Acknowledged","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":true,"context_lines":[{"line_number":224,"context_line":"             show_keypair\u003dTrue, show_srv_usg\u003dTrue, show_sec_grp\u003dTrue,"},{"line_number":225,"context_line":"             show_extended_status\u003dTrue, show_extended_volumes\u003dTrue,"},{"line_number":226,"context_line":"             bdms\u003dNone, cell_down_support\u003dFalse, show_server_groups\u003dFalse,"},{"line_number":227,"context_line":"             show_user_data\u003dTrue, req_spec\u003dNone):"},{"line_number":228,"context_line":"        \"\"\"Detailed view of a single instance.\"\"\""},{"line_number":229,"context_line":"        if show_extra_specs is None:"},{"line_number":230,"context_line":"            # detail will pre-calculate this for us. If we\u0027re doing show,"}],"source_content_type":"text/x-python","patch_set":12,"id":"b4006d35_a1186ec4","line":227,"range":{"start_line":227,"start_character":34,"end_line":227,"end_character":47},"in_reply_to":"f8eaac23_9a61862f","updated":"2024-02-26 14:33:02.000000000","message":"again, your explanation let me think it should be a defined AZ, not the whole ReqSpec.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[{"line_number":292,"context_line":"            # with v2.0."},{"line_number":293,"context_line":"            server[\"server\"][\"OS-EXT-AZ:availability_zone\"] \u003d az or \u0027\u0027"},{"line_number":294,"context_line":"            if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":295,"context_line":"                if req_spec:"},{"line_number":296,"context_line":"                    pinned_az \u003d req_spec.availability_zone"},{"line_number":297,"context_line":"                else:"},{"line_number":298,"context_line":"                    pinned_az \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"eb30d562_880f72ba","line":295,"updated":"2024-02-22 17:09:52.000000000","message":"instead of getting this, this is *where* you need to call the RequestSpec object in order to access its field.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4784b5a5640cbbdf21d863c2442a5635772980f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            # with v2.0."},{"line_number":293,"context_line":"            server[\"server\"][\"OS-EXT-AZ:availability_zone\"] \u003d az or \u0027\u0027"},{"line_number":294,"context_line":"            if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":295,"context_line":"                if req_spec:"},{"line_number":296,"context_line":"                    pinned_az \u003d req_spec.availability_zone"},{"line_number":297,"context_line":"                else:"},{"line_number":298,"context_line":"                    pinned_az \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"d39ea431_5eb87b15","line":295,"in_reply_to":"8baf858b_42e91114","updated":"2024-03-01 17:33:40.000000000","message":"Done","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":true,"context_lines":[{"line_number":292,"context_line":"            # with v2.0."},{"line_number":293,"context_line":"            server[\"server\"][\"OS-EXT-AZ:availability_zone\"] \u003d az or \u0027\u0027"},{"line_number":294,"context_line":"            if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":295,"context_line":"                if req_spec:"},{"line_number":296,"context_line":"                    pinned_az \u003d req_spec.availability_zone"},{"line_number":297,"context_line":"                else:"},{"line_number":298,"context_line":"                    pinned_az \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"8baf858b_42e91114","line":295,"in_reply_to":"eb30d562_880f72ba","updated":"2024-02-26 14:33:02.000000000","message":"To clarify, the protocode logic I see here would be : \n```\nif provided_az:\n   pinned_az \u003d provided_az\nelif api_is_recent_enough:\n   spec \u003d objects.RequestSpec.get() \n   pinned_az \u003d spec.az\n```","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"905770cc53fe079f7c7732749592e8f4141a5486","unresolved":true,"context_lines":[{"line_number":504,"context_line":"                                  down."},{"line_number":505,"context_line":"        :returns: Server data in dictionary format"},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":"        req_specs \u003d None"},{"line_number":508,"context_line":"        req_specs_dict \u003d {}"},{"line_number":509,"context_line":"        if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":510,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":511,"context_line":"            instance_uuids \u003d [s.uuid for s in servers]"},{"line_number":512,"context_line":"            req_specs \u003d objects.RequestSpec.get_by_instance_uuids("},{"line_number":513,"context_line":"                    context, instance_uuids)"},{"line_number":514,"context_line":"            req_specs_dict \u003d {req.instance_uuid: req for req in req_specs}"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        for server in servers:"},{"line_number":517,"context_line":"            if server.uuid not in req_specs_dict:"},{"line_number":518,"context_line":"                req_specs_dict[server.uuid] \u003d None"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        server_list \u003d [func(request, server,"},{"line_number":521,"context_line":"                            show_extra_specs\u003dshow_extra_specs,"}],"source_content_type":"text/x-python","patch_set":12,"id":"b35e799a_78a7a0f0","line":518,"range":{"start_line":507,"start_character":0,"end_line":518,"end_character":50},"updated":"2024-02-22 17:09:52.000000000","message":"all of this seems unnecessary","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":false,"context_lines":[{"line_number":504,"context_line":"                                  down."},{"line_number":505,"context_line":"        :returns: Server data in dictionary format"},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":"        req_specs \u003d None"},{"line_number":508,"context_line":"        req_specs_dict \u003d {}"},{"line_number":509,"context_line":"        if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":510,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":511,"context_line":"            instance_uuids \u003d [s.uuid for s in servers]"},{"line_number":512,"context_line":"            req_specs \u003d objects.RequestSpec.get_by_instance_uuids("},{"line_number":513,"context_line":"                    context, instance_uuids)"},{"line_number":514,"context_line":"            req_specs_dict \u003d {req.instance_uuid: req for req in req_specs}"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        for server in servers:"},{"line_number":517,"context_line":"            if server.uuid not in req_specs_dict:"},{"line_number":518,"context_line":"                req_specs_dict[server.uuid] \u003d None"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        server_list \u003d [func(request, server,"},{"line_number":521,"context_line":"                            show_extra_specs\u003dshow_extra_specs,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fe69583e_05cb0f8d","line":518,"range":{"start_line":507,"start_character":0,"end_line":518,"end_character":50},"in_reply_to":"995dcb3e_589d611e","updated":"2024-02-26 14:33:02.000000000","message":"OK, then I understand your optimization for the list call.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"06a3361625dd6bc4814b36bdfca582b4ccb3d63d","unresolved":true,"context_lines":[{"line_number":504,"context_line":"                                  down."},{"line_number":505,"context_line":"        :returns: Server data in dictionary format"},{"line_number":506,"context_line":"        \"\"\""},{"line_number":507,"context_line":"        req_specs \u003d None"},{"line_number":508,"context_line":"        req_specs_dict \u003d {}"},{"line_number":509,"context_line":"        if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":510,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":511,"context_line":"            instance_uuids \u003d [s.uuid for s in servers]"},{"line_number":512,"context_line":"            req_specs \u003d objects.RequestSpec.get_by_instance_uuids("},{"line_number":513,"context_line":"                    context, instance_uuids)"},{"line_number":514,"context_line":"            req_specs_dict \u003d {req.instance_uuid: req for req in req_specs}"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"        for server in servers:"},{"line_number":517,"context_line":"            if server.uuid not in req_specs_dict:"},{"line_number":518,"context_line":"                req_specs_dict[server.uuid] \u003d None"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        server_list \u003d [func(request, server,"},{"line_number":521,"context_line":"                            show_extra_specs\u003dshow_extra_specs,"}],"source_content_type":"text/x-python","patch_set":12,"id":"995dcb3e_589d611e","line":518,"range":{"start_line":507,"start_character":0,"end_line":518,"end_character":50},"in_reply_to":"b35e799a_78a7a0f0","updated":"2024-02-25 05:49:37.000000000","message":"Please see my comment below at line #526.","commit_id":"e67d7d6176a6e6b877a83d72ff2ac485e236b535"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f41e25f109ef46a693f5a77b83278ef3038175ec","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    def basic(self, request, instance, show_extra_specs\u003dFalse,"},{"line_number":95,"context_line":"              show_extended_attr\u003dNone, show_host_status\u003dNone,"},{"line_number":96,"context_line":"              show_sec_grp\u003dNone, bdms\u003dNone, cell_down_support\u003dFalse,"},{"line_number":97,"context_line":"              show_user_data\u003dFalse, provided_az\u003dNone):"},{"line_number":98,"context_line":"        \"\"\"Generic, non-detailed view of an instance.\"\"\""},{"line_number":99,"context_line":"        if cell_down_support and \u0027display_name\u0027 not in instance:"},{"line_number":100,"context_line":"            # NOTE(tssurya): If the microversion is \u003e\u003d 2.69, this boolean will"}],"source_content_type":"text/x-python","patch_set":14,"id":"ce50d98e_31a8ab4d","line":97,"updated":"2024-03-01 12:09:46.000000000","message":"this is an unused param","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cab4696b64930a86f8b577892b26ec08548c845c","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    def basic(self, request, instance, show_extra_specs\u003dFalse,"},{"line_number":95,"context_line":"              show_extended_attr\u003dNone, show_host_status\u003dNone,"},{"line_number":96,"context_line":"              show_sec_grp\u003dNone, bdms\u003dNone, cell_down_support\u003dFalse,"},{"line_number":97,"context_line":"              show_user_data\u003dFalse, provided_az\u003dNone):"},{"line_number":98,"context_line":"        \"\"\"Generic, non-detailed view of an instance.\"\"\""},{"line_number":99,"context_line":"        if cell_down_support and \u0027display_name\u0027 not in instance:"},{"line_number":100,"context_line":"            # NOTE(tssurya): If the microversion is \u003e\u003d 2.69, this boolean will"}],"source_content_type":"text/x-python","patch_set":14,"id":"e4cb0012_ae71a89f","line":97,"in_reply_to":"ce50d98e_31a8ab4d","updated":"2024-03-01 14:21:34.000000000","message":"Sorry we need this still even if it is not used, the basic and the show function needs to have the same signature","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7655e26cecc1a1bce09e58aa7077db3d585a710f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def basic(self, request, instance, show_extra_specs\u003dFalse,"},{"line_number":95,"context_line":"              show_extended_attr\u003dNone, show_host_status\u003dNone,"},{"line_number":96,"context_line":"              show_sec_grp\u003dNone, bdms\u003dNone, cell_down_support\u003dFalse,"},{"line_number":97,"context_line":"              show_user_data\u003dFalse, provided_az\u003dNone):"},{"line_number":98,"context_line":"        \"\"\"Generic, non-detailed view of an instance.\"\"\""},{"line_number":99,"context_line":"        if cell_down_support and \u0027display_name\u0027 not in instance:"},{"line_number":100,"context_line":"            # NOTE(tssurya): If the microversion is \u003e\u003d 2.69, this boolean will"}],"source_content_type":"text/x-python","patch_set":14,"id":"94e6eab6_c7719849","line":97,"in_reply_to":"e4cb0012_ae71a89f","updated":"2024-03-01 15:27:23.000000000","message":"Done","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"75b563a98421c47eb096b9339b1acd19c1eef854","unresolved":true,"context_lines":[{"line_number":507,"context_line":"        :returns: Server data in dictionary format"},{"line_number":508,"context_line":"        \"\"\""},{"line_number":509,"context_line":"        req_specs \u003d None"},{"line_number":510,"context_line":"        req_specs_dict \u003d {}"},{"line_number":511,"context_line":"        if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":512,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":513,"context_line":"            instance_uuids \u003d [s.uuid for s in servers]"}],"source_content_type":"text/x-python","patch_set":14,"id":"c466324a_bb449a8f","line":510,"updated":"2024-03-01 11:47:15.000000000","message":"nit: this can be collections.defaultdict(str) then you don\u0027t have to loop through the servers below to default the missing values.\n\n```\n\u003e\u003e\u003e d \u003d collections.defaultdict(str)\n\u003e\u003e\u003e d[\u0027foo\u0027]\n\u0027\u0027\n```","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cab4696b64930a86f8b577892b26ec08548c845c","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        :returns: Server data in dictionary format"},{"line_number":508,"context_line":"        \"\"\""},{"line_number":509,"context_line":"        req_specs \u003d None"},{"line_number":510,"context_line":"        req_specs_dict \u003d {}"},{"line_number":511,"context_line":"        if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":512,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":513,"context_line":"            instance_uuids \u003d [s.uuid for s in servers]"}],"source_content_type":"text/x-python","patch_set":14,"id":"48eb7a1e_ece1fb28","line":510,"in_reply_to":"c466324a_bb449a8f","updated":"2024-03-01 14:21:34.000000000","message":"Done","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cab4696b64930a86f8b577892b26ec08548c845c","unresolved":true,"context_lines":[{"line_number":294,"context_line":"            # with v2.0."},{"line_number":295,"context_line":"            server[\"server\"][\"OS-EXT-AZ:availability_zone\"] \u003d az or \u0027\u0027"},{"line_number":296,"context_line":"            if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":297,"context_line":"                pinned_az \u003d provided_az"},{"line_number":298,"context_line":"                try:"},{"line_number":299,"context_line":"                    req_spec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":300,"context_line":"                            context, instance.uuid)"},{"line_number":301,"context_line":"                    pinned_az \u003d req_spec.availability_zone"}],"source_content_type":"text/x-python","patch_set":15,"id":"1af4e765_334e65e6","line":298,"range":{"start_line":297,"start_character":0,"end_line":298,"end_character":20},"updated":"2024-03-01 14:21:34.000000000","message":"if the function got provided_az then we don\u0027t need to query the request spec from the db again, as the caller already did it","commit_id":"65dc0abd27497156e703b2e5d12e834c1df96c1f"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"139e272f40c1b2aa600cd7e03f89586dc1442de9","unresolved":true,"context_lines":[{"line_number":294,"context_line":"            # with v2.0."},{"line_number":295,"context_line":"            server[\"server\"][\"OS-EXT-AZ:availability_zone\"] \u003d az or \u0027\u0027"},{"line_number":296,"context_line":"            if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":297,"context_line":"                pinned_az \u003d provided_az"},{"line_number":298,"context_line":"                try:"},{"line_number":299,"context_line":"                    req_spec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":300,"context_line":"                            context, instance.uuid)"},{"line_number":301,"context_line":"                    pinned_az \u003d req_spec.availability_zone"}],"source_content_type":"text/x-python","patch_set":15,"id":"d81853e0_6e477e63","line":298,"range":{"start_line":297,"start_character":0,"end_line":298,"end_character":20},"in_reply_to":"1af4e765_334e65e6","updated":"2024-03-01 15:24:21.000000000","message":"we need to query it for server show, but during server list, we don\u0027t need to as it is already passed from list_view function.","commit_id":"65dc0abd27497156e703b2e5d12e834c1df96c1f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7655e26cecc1a1bce09e58aa7077db3d585a710f","unresolved":false,"context_lines":[{"line_number":294,"context_line":"            # with v2.0."},{"line_number":295,"context_line":"            server[\"server\"][\"OS-EXT-AZ:availability_zone\"] \u003d az or \u0027\u0027"},{"line_number":296,"context_line":"            if api_version_request.is_supported(request, min_version\u003d\u00272.96\u0027):"},{"line_number":297,"context_line":"                pinned_az \u003d provided_az"},{"line_number":298,"context_line":"                try:"},{"line_number":299,"context_line":"                    req_spec \u003d objects.RequestSpec.get_by_instance_uuid("},{"line_number":300,"context_line":"                            context, instance.uuid)"},{"line_number":301,"context_line":"                    pinned_az \u003d req_spec.availability_zone"}],"source_content_type":"text/x-python","patch_set":15,"id":"f8bde80f_fff2cc82","line":298,"range":{"start_line":297,"start_character":0,"end_line":298,"end_character":20},"in_reply_to":"d81853e0_6e477e63","updated":"2024-03-01 15:27:23.000000000","message":"Done","commit_id":"65dc0abd27497156e703b2e5d12e834c1df96c1f"}],"nova/objects/request_spec.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4d5b3f2f2673ef45761dace593517d0f765cf6d5","unresolved":true,"context_lines":[{"line_number":791,"context_line":"        return db_specs"},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"    @base.remotable_classmethod"},{"line_number":794,"context_line":"    def get_by_instance_uuids(cls, context, instance_uuids):"},{"line_number":795,"context_line":"        req_specs \u003d []"},{"line_number":796,"context_line":"        if not instance_uuids:"},{"line_number":797,"context_line":"            return req_specs"}],"source_content_type":"text/x-python","patch_set":13,"id":"4ec72c21_f4bf0ebd","line":794,"updated":"2024-02-26 14:33:02.000000000","message":"I don\u0027t see any unit test for this method ?","commit_id":"94eef72f1465d425149596bea1b1ebc3f02b4610"}],"nova/tests/functional/api_sample_tests/test_servers.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"243eacab033423e3d4f6afb435c9f62512c0eff6","unresolved":true,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"class ServersSampleJson296Test(ServersSampleJsonTest):"},{"line_number":629,"context_line":"    microversion \u003d \u00272.96\u0027"},{"line_number":630,"context_line":"    scenario \u003d [(\u0027v2_96\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":631,"context_line":"    ADMIN_API \u003d False"},{"line_number":632,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7b1856ed_25403a37","line":629,"updated":"2024-02-21 13:07:29.000000000","message":"this changes the microversion used for the test cases in  the base class(ServersSampleJsonTest) causing the functional failure. either you provide samples for those test in this microversion and use use_common_server_post\u003dTrue, or you dont use this baseclass but ServersSampleBase instead","commit_id":"dc71bb5ffc4137d3303a8dc9a852c9ca68096326"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cab4696b64930a86f8b577892b26ec08548c845c","unresolved":false,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"class ServersSampleJson296Test(ServersSampleJsonTest):"},{"line_number":629,"context_line":"    microversion \u003d \u00272.96\u0027"},{"line_number":630,"context_line":"    scenario \u003d [(\u0027v2_96\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":631,"context_line":"    ADMIN_API \u003d False"},{"line_number":632,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7f682303_ba0d3265","line":629,"in_reply_to":"0d9dea7f_7b1a34f9","updated":"2024-03-01 14:21:34.000000000","message":"Done","commit_id":"dc71bb5ffc4137d3303a8dc9a852c9ca68096326"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"81b8b127dd0540f65bccbc1940d3803a863254c5","unresolved":true,"context_lines":[{"line_number":626,"context_line":""},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"class ServersSampleJson296Test(ServersSampleJsonTest):"},{"line_number":629,"context_line":"    microversion \u003d \u00272.96\u0027"},{"line_number":630,"context_line":"    scenario \u003d [(\u0027v2_96\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":631,"context_line":"    ADMIN_API \u003d False"},{"line_number":632,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"0d9dea7f_7b1a34f9","line":629,"in_reply_to":"7b1856ed_25403a37","updated":"2024-02-21 16:00:31.000000000","message":"sorry, my bad. it was failing because of typo in this class, s/scenario/scenarios\nand now the functional tests are passing.\n\nThanks for your suggestion.","commit_id":"dc71bb5ffc4137d3303a8dc9a852c9ca68096326"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"75b563a98421c47eb096b9339b1acd19c1eef854","unresolved":true,"context_lines":[{"line_number":6394,"context_line":"        # check neutron binding cleared"},{"line_number":6395,"context_line":"        self._check_neutron_binding_info_cleaned()"},{"line_number":6396,"context_line":""},{"line_number":6397,"context_line":"    @mock.patch(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027)"},{"line_number":6398,"context_line":"    def test_create_with_two_accels_all_binding_error(self, mock_req_spec):"},{"line_number":6399,"context_line":"        def throw_error(*args, **kwargs):"},{"line_number":6400,"context_line":"            raise exception.AcceleratorRequestOpFailed(reason\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"7fe485fc_1f65c311","line":6397,"updated":"2024-03-01 11:47:15.000000000","message":"we very rarely mock in functional tests. Is this really necessary here? Does this hide a bug?","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cab4696b64930a86f8b577892b26ec08548c845c","unresolved":false,"context_lines":[{"line_number":6394,"context_line":"        # check neutron binding cleared"},{"line_number":6395,"context_line":"        self._check_neutron_binding_info_cleaned()"},{"line_number":6396,"context_line":""},{"line_number":6397,"context_line":"    @mock.patch(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027)"},{"line_number":6398,"context_line":"    def test_create_with_two_accels_all_binding_error(self, mock_req_spec):"},{"line_number":6399,"context_line":"        def throw_error(*args, **kwargs):"},{"line_number":6400,"context_line":"            raise exception.AcceleratorRequestOpFailed(reason\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"01b6312d_552e4b92","line":6397,"in_reply_to":"64f1d4ec_b953846b","updated":"2024-03-01 14:21:34.000000000","message":"Done","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"0bb38dcbffeb46bdfbbf6ab1c19679d322b0ed25","unresolved":true,"context_lines":[{"line_number":6394,"context_line":"        # check neutron binding cleared"},{"line_number":6395,"context_line":"        self._check_neutron_binding_info_cleaned()"},{"line_number":6396,"context_line":""},{"line_number":6397,"context_line":"    @mock.patch(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027)"},{"line_number":6398,"context_line":"    def test_create_with_two_accels_all_binding_error(self, mock_req_spec):"},{"line_number":6399,"context_line":"        def throw_error(*args, **kwargs):"},{"line_number":6400,"context_line":"            raise exception.AcceleratorRequestOpFailed(reason\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"64f1d4ec_b953846b","line":6397,"in_reply_to":"7fe485fc_1f65c311","updated":"2024-03-01 13:44:37.000000000","message":"yes, its required, otherwise we get RequestSpec not found during server get call in wait_for_server_parameter function call.","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"}],"nova/tests/functional/test_servers_resource_request.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"75b563a98421c47eb096b9339b1acd19c1eef854","unresolved":true,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"0784b06a_73c2331b","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"updated":"2024-03-01 11:47:15.000000000","message":"this feels like we are papering over a bug","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"169fa5777ddb681be30965a29ffa13e5f052251c","unresolved":true,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"acad06d9_2da3e3ed","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"0784b06a_73c2331b","updated":"2024-03-01 12:07:36.000000000","message":"if I remove the mock\n```\n\nTraceback (most recent call last):\n  File \"/build-jammy/nova/api/openstack/wsgi.py\", line 658, in wrapped\n    return f(*args, **kwargs)\n  File \"/build-jammy/nova/api/openstack/compute/servers.py\", line 477, in show\n    return self._view_builder.show(\n  File \"/build-jammy/nova/api/openstack/compute/views/servers.py\", line 298, in show\n    req_spec \u003d objects.RequestSpec.get_by_instance_uuid(\n  File \"/build-jammy/.tox/functional-py310/lib/python3.10/site-packages/oslo_versionedobjects/base.py\", line 184, in wrapper\n    result \u003d fn(cls, context, *args, **kwargs)\n  File \"/build-jammy/nova/objects/request_spec.py\", line 783, in get_by_instance_uuid\n    db_spec \u003d cls._get_by_instance_uuid_from_db(context, instance_uuid)\n  File \"/build-jammy/.tox/functional-py310/lib/python3.10/site-packages/oslo_db/sqlalchemy/enginefacade.py\", line 998, in wrapper\n    return fn(*args, **kwargs)\n  File \"/build-jammy/nova/objects/request_spec.py\", line 777, in _get_by_instance_uuid_from_db\n    raise exception.RequestSpecNotFound(\nnova.exception.RequestSpecNotFound: RequestSpec not found for instance d45161af-181b-44eb-afc1-441c838865e7\n```\n\nso server show can end up failing if it does not found the request spec for the instance","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"7921f385a363b0c3691c0a7824e9ab22bc371434","unresolved":false,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"aa2fbd3a_a10d758e","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"19bbcfee_f8d90c34","updated":"2024-03-01 14:46:54.000000000","message":"I\u0027m really wondering when that would be possible. https://github.com/openstack/nova/blob/master/nova/compute/api.py#L1487-L1491 states that build-request, instance and request-spec are all created in a single transaction.","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"287aff8b40d8b43807a48b150f2ee2aa4ffa2b4c","unresolved":true,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"a5dd9690_3db9b118","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"442eb66e_74fc0d8b","updated":"2024-03-01 12:59:59.000000000","message":"https://review.opendev.org/c/openstack/nova/+/910728 could be a fix","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"dab93ac0e278c3cf9391f012afdae395da884020","unresolved":false,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"539a56b5_0fcd07d7","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"471ebb05_585d89b1","updated":"2024-03-04 11:01:55.000000000","message":"Even with the `@api_db_api.context_manager.writer` as decorator on the `_create_reqspec_buildreq_instmapping()`? The function docs also talk about being a single transaction. We should fix that then probably - to be a single transaction.","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4c24171a3a63d21a124608f37fb4b6378bb537bb","unresolved":false,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"f08de032_b0701a7a","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"539a56b5_0fcd07d7","updated":"2024-03-04 21:10:14.000000000","message":"FWIW, I think it is a single transaction (full disclosure, I added that code with mnaser). In the testing I did at the time, it appeared to be working as a single transaction. There is always the possibility of a bug though.\n\nHowever ...\n\nI added some print statements locally to look at what\u0027s happening here and found that in this test the request spec is actively being deleted as part of the build fail cleanup path `_cleanup_build_artifacts` here:\n\nhttps://github.com/openstack/nova/blob/2f6418d1a7694f6afa52500ccb3dc1a9e2b4a73a/nova/conductor/manager.py#L1771-L1778\n\nNote that this is not in the reschedule path. The test intends to trigger a reschedule that would result in the calling of `_cleanup_when_reschedule_fails` instead of `_cleanup_build_artifacts`, and accordingly not deleting the request spec. But a reschedule is not being triggered for some reason and that will need some investigation.\n\nI thought maybe `CastAsCallFixture` was the culprit but I got the same result even with `CAST_AS_CALL \u003d False`. So there is something else causing it.","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cab4696b64930a86f8b577892b26ec08548c845c","unresolved":false,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"19bbcfee_f8d90c34","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"a5dd9690_3db9b118","updated":"2024-03-01 14:21:34.000000000","message":"Done","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc3eb0df14f7c6680a8b73a247df0485a6ab70c4","unresolved":false,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"471ebb05_585d89b1","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"aa2fbd3a_a10d758e","updated":"2024-03-01 15:07:37.000000000","message":"they are created in a singel fucntion that does 3 seperate create that are not part of the same tansaction.","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3dd2e688e00337eef255462066ecec7477b063a1","unresolved":true,"context_lines":[{"line_number":2844,"context_line":"            server \u003d self._create_server("},{"line_number":2845,"context_line":"                flavor\u003dself.flavor,"},{"line_number":2846,"context_line":"                networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":2847,"context_line":"            ctxt \u003d context.get_admin_context()"},{"line_number":2848,"context_line":"            fake_flavor \u003d objects.Flavor(ctxt, **self.flavor)"},{"line_number":2849,"context_line":""},{"line_number":2850,"context_line":"            def fake_req_spec(context, instance_uuid):"},{"line_number":2851,"context_line":"                req_spec \u003d objects.RequestSpec(num_instances\u003d1,"},{"line_number":2852,"context_line":"                                               image\u003dobjects.ImageMeta(),"},{"line_number":2853,"context_line":"                                               # instance properties"},{"line_number":2854,"context_line":"                                               numa_topology\u003dNone,"},{"line_number":2855,"context_line":"                                               pci_request\u003dNone,"},{"line_number":2856,"context_line":"                                               project_id\u003dself.api.project_id,"},{"line_number":2857,"context_line":"                                               availability_zone\u003d\u0027\u0027,"},{"line_number":2858,"context_line":"                                               instance_uuid\u003dserver[\u0027id\u0027],"},{"line_number":2859,"context_line":"                                               flavor\u003dfake_flavor)"},{"line_number":2860,"context_line":"                return req_spec"},{"line_number":2861,"context_line":"            self.stub_out(\u0027nova.objects.RequestSpec.get_by_instance_uuid\u0027,"},{"line_number":2862,"context_line":"                          staticmethod(fake_req_spec))"},{"line_number":2863,"context_line":"            server \u003d self._wait_for_state_change(server, \u0027ERROR\u0027)"},{"line_number":2864,"context_line":""},{"line_number":2865,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":14,"id":"442eb66e_74fc0d8b","line":2862,"range":{"start_line":2847,"start_character":0,"end_line":2862,"end_character":54},"in_reply_to":"acad06d9_2da3e3ed","updated":"2024-03-01 12:38:09.000000000","message":"I think there can be cases when an instance is being creates but the request spec does not yet exists","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"}],"nova/tests/unit/api/openstack/compute/test_servers.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"22ec497a1a928c2734e7577fd488ac8c54efaee4","unresolved":true,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        uuid \u003d FAKE_UUID"},{"line_number":479,"context_line":"        res_dict \u003d self.controller.show(self.request, uuid)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        expected_server \u003d self._get_server_data_dict(uuid,"},{"line_number":482,"context_line":"                                                     image_bookmark,"},{"line_number":483,"context_line":"                                                     flavor_bookmark,"}],"source_content_type":"text/x-python","patch_set":4,"id":"01079297_b93045ee","side":"PARENT","line":480,"updated":"2024-01-25 02:35:11.000000000","message":"This whole file is random unrelated whitespace changes?","commit_id":"39f560d6730f2b212506b7d754645c288d13f1cd"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"080518c4906d054a2e205e323734b775d7c705be","unresolved":false,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        uuid \u003d FAKE_UUID"},{"line_number":479,"context_line":"        res_dict \u003d self.controller.show(self.request, uuid)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        expected_server \u003d self._get_server_data_dict(uuid,"},{"line_number":482,"context_line":"                                                     image_bookmark,"},{"line_number":483,"context_line":"                                                     flavor_bookmark,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af1d4b8_f0dcf089","side":"PARENT","line":480,"in_reply_to":"01079297_b93045ee","updated":"2024-02-02 12:35:32.000000000","message":"Acknowledged","commit_id":"39f560d6730f2b212506b7d754645c288d13f1cd"}],"nova/tests/unit/policies/test_servers.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7ca3f9ff11ae8161cced5dd417aafeb0d989a92d","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # Users able to do cross-cell migrations"},{"line_number":156,"context_line":"        self.cross_cell_authorized_contexts \u003d []"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @mock.patch(\u0027nova.objects.RequestSpec.get_by_instance_uuids\u0027)"},{"line_number":159,"context_line":"    def test_index_server_policy(self, mock_req_specs):"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        def fake_get_all(context, search_opts\u003dNone,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9bf2579f_cde49d5b","line":158,"updated":"2024-03-01 12:45:46.000000000","message":"I suspect the changes in this file should not be needed either","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f4784b5a5640cbbdf21d863c2442a5635772980f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        # Users able to do cross-cell migrations"},{"line_number":156,"context_line":"        self.cross_cell_authorized_contexts \u003d []"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @mock.patch(\u0027nova.objects.RequestSpec.get_by_instance_uuids\u0027)"},{"line_number":159,"context_line":"    def test_index_server_policy(self, mock_req_specs):"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        def fake_get_all(context, search_opts\u003dNone,"}],"source_content_type":"text/x-python","patch_set":14,"id":"93d113c4_a649c86e","line":158,"in_reply_to":"45e6a265_7b82fc5f","updated":"2024-03-01 17:33:40.000000000","message":"Done","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cab4696b64930a86f8b577892b26ec08548c845c","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        # Users able to do cross-cell migrations"},{"line_number":156,"context_line":"        self.cross_cell_authorized_contexts \u003d []"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    @mock.patch(\u0027nova.objects.RequestSpec.get_by_instance_uuids\u0027)"},{"line_number":159,"context_line":"    def test_index_server_policy(self, mock_req_specs):"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        def fake_get_all(context, search_opts\u003dNone,"}],"source_content_type":"text/x-python","patch_set":14,"id":"45e6a265_7b82fc5f","line":158,"in_reply_to":"9bf2579f_cde49d5b","updated":"2024-03-01 14:21:34.000000000","message":"none of the remaining changes in the file are needed. Please drop them.","commit_id":"efc1c8408bf8cbd7597c18c09b498135b80b4b10"}]}
