)]}'
{"doc/source/admin/ports-with-resource-requests.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d33963e68655534fc7497e81ed4dc740c5c98078","unresolved":true,"context_lines":[{"line_number":75,"context_line":"as interface attach operation. So it is suggested not to enable this API"},{"line_number":76,"context_line":"extension in Neutron. Please note that Nova only supports the server create"},{"line_number":77,"context_line":"operation if every nova-compute service also upgraded to Xena version and the"},{"line_number":78,"context_line":"``[upgrade_levels]/compute`` configuration does not prevent the computes from"},{"line_number":79,"context_line":"using the latest RPC version."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The extended resource request allows that a single Neutron port requests"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ff4e7622_95f24373","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":28},"updated":"2021-07-20 17:50:51.000000000","message":"We can use \u0027:oslo.config:option:\u0027 here","commit_id":"9dcb2612af61afe3d34572f11931814f71be7008"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"546cc7eeba816c6b61c6ac74b1e0736f66a66ba9","unresolved":false,"context_lines":[{"line_number":75,"context_line":"as interface attach operation. So it is suggested not to enable this API"},{"line_number":76,"context_line":"extension in Neutron. Please note that Nova only supports the server create"},{"line_number":77,"context_line":"operation if every nova-compute service also upgraded to Xena version and the"},{"line_number":78,"context_line":"``[upgrade_levels]/compute`` configuration does not prevent the computes from"},{"line_number":79,"context_line":"using the latest RPC version."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The extended resource request allows that a single Neutron port requests"}],"source_content_type":"text/x-rst","patch_set":11,"id":"18edb581_99285676","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":28},"in_reply_to":"ff4e7622_95f24373","updated":"2021-07-22 14:03:41.000000000","message":"Done","commit_id":"9dcb2612af61afe3d34572f11931814f71be7008"}],"nova/compute/api.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9f03f8e9f845a3485e171304fc509ab5cf81f70e","unresolved":true,"context_lines":[{"line_number":1039,"context_line":"        if port_resource_requests and not supports_port_resource_request:"},{"line_number":1040,"context_line":"            raise exception.CreateWithPortResourceRequestOldVersion()"},{"line_number":1041,"context_line":""},{"line_number":1042,"context_line":"        if (port_resource_requests and"},{"line_number":1043,"context_line":"            self.network_api.has_extended_resource_request_extension(context)"},{"line_number":1044,"context_line":"        ):"},{"line_number":1045,"context_line":"            # we only support the extended resource request if the computes are"}],"source_content_type":"text/x-python","patch_set":13,"id":"1265805f_aeef7890","line":1042,"updated":"2021-07-27 16:40:27.000000000","message":"We can add a TODO to remove this in a future release","commit_id":"7e34200061f180108f00d23bd654b733f887981f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"671d05c256bd1eb4475a3363fe38a4809666c8a8","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"        if port_resource_requests and not supports_port_resource_request:"},{"line_number":1040,"context_line":"            raise exception.CreateWithPortResourceRequestOldVersion()"},{"line_number":1041,"context_line":""},{"line_number":1042,"context_line":"        if (port_resource_requests and"},{"line_number":1043,"context_line":"            self.network_api.has_extended_resource_request_extension(context)"},{"line_number":1044,"context_line":"        ):"},{"line_number":1045,"context_line":"            # we only support the extended resource request if the computes are"}],"source_content_type":"text/x-python","patch_set":13,"id":"0939d5c4_b8244ecd","line":1042,"in_reply_to":"1265805f_aeef7890","updated":"2021-08-16 19:31:58.000000000","message":"Done","commit_id":"7e34200061f180108f00d23bd654b733f887981f"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"432fddf4f7d10a3d7a0c7f6fe52ab8cd312b6280","unresolved":true,"context_lines":[{"line_number":1082,"context_line":"            # upgraded to Xena."},{"line_number":1083,"context_line":"            min_version \u003d objects.service.get_minimum_version_all_cells("},{"line_number":1084,"context_line":"                context, [\"nova-compute\"])"},{"line_number":1085,"context_line":"            if min_version \u003c 58:"},{"line_number":1086,"context_line":"                raise exception.ExtendedResourceRequestOldCompute()"},{"line_number":1087,"context_line":""},{"line_number":1088,"context_line":"        base_options \u003d {"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f52aee1_6d906c1c","line":1085,"range":{"start_line":1085,"start_character":29,"end_line":1085,"end_character":31},"updated":"2021-08-27 10:30:10.000000000","message":"Shouldn\u0027t this be in something like MIN_COMPUTE_EXTENDED_RESOURCE_REQUEST?","commit_id":"dc5fe0b4433b8fe09c6248e64429b55c7952d32f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4254c678503ce6ef36491ce582ad4a23c6595453","unresolved":true,"context_lines":[{"line_number":1082,"context_line":"            # upgraded to Xena."},{"line_number":1083,"context_line":"            min_version \u003d objects.service.get_minimum_version_all_cells("},{"line_number":1084,"context_line":"                context, [\"nova-compute\"])"},{"line_number":1085,"context_line":"            if min_version \u003c 58:"},{"line_number":1086,"context_line":"                raise exception.ExtendedResourceRequestOldCompute()"},{"line_number":1087,"context_line":""},{"line_number":1088,"context_line":"        base_options \u003d {"}],"source_content_type":"text/x-python","patch_set":16,"id":"d5173da7_afc5120f","line":1085,"range":{"start_line":1085,"start_character":29,"end_line":1085,"end_character":31},"in_reply_to":"7f52aee1_6d906c1c","updated":"2021-08-27 13:01:02.000000000","message":"Yup. fwiw I\u0027m not massively opposed to magic numbers like this where there\u0027s enough context that the meaning is clear and in fact I prefer hardcoding for microversions. We do tend to create constants for service versions though and should continue doing so. Good spot","commit_id":"dc5fe0b4433b8fe09c6248e64429b55c7952d32f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9c7dbc23e5fae405a5475137c5e16babb8a13b84","unresolved":false,"context_lines":[{"line_number":1082,"context_line":"            # upgraded to Xena."},{"line_number":1083,"context_line":"            min_version \u003d objects.service.get_minimum_version_all_cells("},{"line_number":1084,"context_line":"                context, [\"nova-compute\"])"},{"line_number":1085,"context_line":"            if min_version \u003c 58:"},{"line_number":1086,"context_line":"                raise exception.ExtendedResourceRequestOldCompute()"},{"line_number":1087,"context_line":""},{"line_number":1088,"context_line":"        base_options \u003d {"}],"source_content_type":"text/x-python","patch_set":16,"id":"4ed4035c_86fe60a4","line":1085,"range":{"start_line":1085,"start_character":29,"end_line":1085,"end_character":31},"in_reply_to":"d5173da7_afc5120f","updated":"2021-08-27 16:29:15.000000000","message":"Done","commit_id":"dc5fe0b4433b8fe09c6248e64429b55c7952d32f"}],"nova/exception.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"432fddf4f7d10a3d7a0c7f6fe52ab8cd312b6280","unresolved":false,"context_lines":[{"line_number":1965,"context_line":"class ExtendedResourceRequestOldCompute(Invalid):"},{"line_number":1966,"context_line":"    msg_fmt \u003d _(\"The port-resource-request-groups neutron API extension is \""},{"line_number":1967,"context_line":"                \"not supported by old nova compute service. Upgrade your \""},{"line_number":1968,"context_line":"                \"compute services to Xena.\")"},{"line_number":1969,"context_line":""},{"line_number":1970,"context_line":""},{"line_number":1971,"context_line":"class InvalidReservedMemoryPagesOption(Invalid):"}],"source_content_type":"text/x-python","patch_set":16,"id":"a1a7ea43_9885ac71","line":1968,"range":{"start_line":1968,"start_character":37,"end_line":1968,"end_character":41},"updated":"2021-08-27 10:30:10.000000000","message":"nit \n\n  \u003e\u003d Xena (24.0.0)","commit_id":"dc5fe0b4433b8fe09c6248e64429b55c7952d32f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9c7dbc23e5fae405a5475137c5e16babb8a13b84","unresolved":false,"context_lines":[{"line_number":1965,"context_line":"class ExtendedResourceRequestOldCompute(Invalid):"},{"line_number":1966,"context_line":"    msg_fmt \u003d _(\"The port-resource-request-groups neutron API extension is \""},{"line_number":1967,"context_line":"                \"not supported by old nova compute service. Upgrade your \""},{"line_number":1968,"context_line":"                \"compute services to Xena.\")"},{"line_number":1969,"context_line":""},{"line_number":1970,"context_line":""},{"line_number":1971,"context_line":"class InvalidReservedMemoryPagesOption(Invalid):"}],"source_content_type":"text/x-python","patch_set":16,"id":"01cff2ce_983b16a9","line":1968,"range":{"start_line":1968,"start_character":37,"end_line":1968,"end_character":41},"in_reply_to":"646b03e8_aa250f59","updated":"2021-08-27 16:29:15.000000000","message":"Done","commit_id":"dc5fe0b4433b8fe09c6248e64429b55c7952d32f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4254c678503ce6ef36491ce582ad4a23c6595453","unresolved":true,"context_lines":[{"line_number":1965,"context_line":"class ExtendedResourceRequestOldCompute(Invalid):"},{"line_number":1966,"context_line":"    msg_fmt \u003d _(\"The port-resource-request-groups neutron API extension is \""},{"line_number":1967,"context_line":"                \"not supported by old nova compute service. Upgrade your \""},{"line_number":1968,"context_line":"                \"compute services to Xena.\")"},{"line_number":1969,"context_line":""},{"line_number":1970,"context_line":""},{"line_number":1971,"context_line":"class InvalidReservedMemoryPagesOption(Invalid):"}],"source_content_type":"text/x-python","patch_set":16,"id":"646b03e8_aa250f59","line":1968,"range":{"start_line":1968,"start_character":37,"end_line":1968,"end_character":41},"in_reply_to":"a1a7ea43_9885ac71","updated":"2021-08-27 13:01:02.000000000","message":"+1, though I\u0027d say\n\n  Xena (24.0.0) or later.","commit_id":"dc5fe0b4433b8fe09c6248e64429b55c7952d32f"}],"nova/network/neutron.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1a3f2c51593f5ef07ef84982e9d8f019696da1ea","unresolved":true,"context_lines":[{"line_number":2090,"context_line":"                        context\u003dNone,"},{"line_number":2091,"context_line":"                        port_resource_request\u003dresource_request)"},{"line_number":2092,"context_line":""},{"line_number":2093,"context_line":"                    if groups:"},{"line_number":2094,"context_line":"                        # So we have the extended resource request extension"},{"line_number":2095,"context_line":"                        # enabled in Neutron and also we have port with"},{"line_number":2096,"context_line":"                        # resource request. Then we need to make sure that"},{"line_number":2097,"context_line":"                        # the computes are upgraded to Xena as well to handle"},{"line_number":2098,"context_line":"                        # the new format during the boot."},{"line_number":2099,"context_line":"                        min_version \u003d service.get_minimum_version_all_cells("},{"line_number":2100,"context_line":"                            context, [\"nova-compute\"])"},{"line_number":2101,"context_line":"                        if min_version \u003c 57:"},{"line_number":2102,"context_line":"                            raise exception.ExtendedResourceRequestOldCompute()"},{"line_number":2103,"context_line":""},{"line_number":2104,"context_line":"                    resource_requests.extend(groups)"},{"line_number":2105,"context_line":"                    request_level_params.extend_with("}],"source_content_type":"text/x-python","patch_set":9,"id":"9e0202ea_1b1d8a6d","line":2102,"range":{"start_line":2093,"start_character":1,"end_line":2102,"end_character":79},"updated":"2021-07-20 10:26:50.000000000","message":"This is not cool. This is called from the nova-compute during interface attach and that makes get_minimum_version_all_cells an RPC up-call. :/ So probably this logic needs to be moved to the compute.api for server create but that means we will query neutron multiple times about the same port. :/","commit_id":"2537074e108c4166064c546d3a5a015af2431af7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b1a63379bc9044ff6c75f9b10e9b9128e6326d88","unresolved":false,"context_lines":[{"line_number":2090,"context_line":"                        context\u003dNone,"},{"line_number":2091,"context_line":"                        port_resource_request\u003dresource_request)"},{"line_number":2092,"context_line":""},{"line_number":2093,"context_line":"                    if groups:"},{"line_number":2094,"context_line":"                        # So we have the extended resource request extension"},{"line_number":2095,"context_line":"                        # enabled in Neutron and also we have port with"},{"line_number":2096,"context_line":"                        # resource request. Then we need to make sure that"},{"line_number":2097,"context_line":"                        # the computes are upgraded to Xena as well to handle"},{"line_number":2098,"context_line":"                        # the new format during the boot."},{"line_number":2099,"context_line":"                        min_version \u003d service.get_minimum_version_all_cells("},{"line_number":2100,"context_line":"                            context, [\"nova-compute\"])"},{"line_number":2101,"context_line":"                        if min_version \u003c 57:"},{"line_number":2102,"context_line":"                            raise exception.ExtendedResourceRequestOldCompute()"},{"line_number":2103,"context_line":""},{"line_number":2104,"context_line":"                    resource_requests.extend(groups)"},{"line_number":2105,"context_line":"                    request_level_params.extend_with("}],"source_content_type":"text/x-python","patch_set":9,"id":"0f6f45f1_96c846b6","line":2102,"range":{"start_line":2093,"start_character":1,"end_line":2102,"end_character":79},"in_reply_to":"9e0202ea_1b1d8a6d","updated":"2021-07-20 12:02:55.000000000","message":"Done","commit_id":"2537074e108c4166064c546d3a5a015af2431af7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d33963e68655534fc7497e81ed4dc740c5c98078","unresolved":true,"context_lines":[{"line_number":1024,"context_line":"        # not need to support old Neutron sending the legacy resource request"},{"line_number":1025,"context_line":"        # extension"},{"line_number":1026,"context_line":"        if self.has_extended_resource_request_extension("},{"line_number":1027,"context_line":"                context, neutron"},{"line_number":1028,"context_line":"        ):"},{"line_number":1029,"context_line":"            # The extended resource request format also means that a"},{"line_number":1030,"context_line":"            # port has more than a one request groups"}],"source_content_type":"text/x-python","patch_set":11,"id":"040b55eb_7f3a3a45","line":1027,"range":{"start_line":1027,"start_character":12,"end_line":1027,"end_character":16},"updated":"2021-07-20 17:50:51.000000000","message":"nit","commit_id":"9dcb2612af61afe3d34572f11931814f71be7008"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"546cc7eeba816c6b61c6ac74b1e0736f66a66ba9","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"        # not need to support old Neutron sending the legacy resource request"},{"line_number":1025,"context_line":"        # extension"},{"line_number":1026,"context_line":"        if self.has_extended_resource_request_extension("},{"line_number":1027,"context_line":"                context, neutron"},{"line_number":1028,"context_line":"        ):"},{"line_number":1029,"context_line":"            # The extended resource request format also means that a"},{"line_number":1030,"context_line":"            # port has more than a one request groups"}],"source_content_type":"text/x-python","patch_set":11,"id":"8778d8c4_eb14d8de","line":1027,"range":{"start_line":1027,"start_character":12,"end_line":1027,"end_character":16},"in_reply_to":"040b55eb_7f3a3a45","updated":"2021-07-22 14:03:41.000000000","message":"Done","commit_id":"9dcb2612af61afe3d34572f11931814f71be7008"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"432fddf4f7d10a3d7a0c7f6fe52ab8cd312b6280","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"    # the this extension mandatory. In Xena this extension will be optional to"},{"line_number":1342,"context_line":"    # support the scenario where Neutron upgraded first. So Neutron can mark"},{"line_number":1343,"context_line":"    # this mandatory earliest in Yoga."},{"line_number":1344,"context_line":"    def has_extended_resource_request_extension(self, context, neutron\u003dNone):"},{"line_number":1345,"context_line":"        self._refresh_neutron_extensions_cache(context, neutron\u003dneutron)"},{"line_number":1346,"context_line":"        return constants.RESOURCE_REQUEST_GROUPS_EXTENSION in self.extensions"},{"line_number":1347,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"a100a544_425b1ce3","line":1344,"range":{"start_line":1344,"start_character":8,"end_line":1344,"end_character":47},"updated":"2021-08-27 10:30:10.000000000","message":"My bad, missed that this was being called from the compute API in a previous PS.","commit_id":"dc5fe0b4433b8fe09c6248e64429b55c7952d32f"}],"nova/tests/functional/test_servers_resource_request.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"432fddf4f7d10a3d7a0c7f6fe52ab8cd312b6280","unresolved":true,"context_lines":[{"line_number":1659,"context_line":"        patcher.start()"},{"line_number":1660,"context_line":""},{"line_number":1661,"context_line":"    @unittest.expectedFailure"},{"line_number":1662,"context_line":"    def test_boot_server_with_two_ports_one_having_resource_request(self):"},{"line_number":1663,"context_line":"        super().test_boot_server_with_two_ports_one_having_resource_request()"},{"line_number":1664,"context_line":""},{"line_number":1665,"context_line":"    @unittest.expectedFailure"},{"line_number":1666,"context_line":"    def test_one_ovs_one_sriov_port(self):"},{"line_number":1667,"context_line":"        super().test_one_ovs_one_sriov_port()"},{"line_number":1668,"context_line":""},{"line_number":1669,"context_line":"    @unittest.expectedFailure"},{"line_number":1670,"context_line":"    def test_interface_attach_with_resource_request(self):"},{"line_number":1671,"context_line":"        super().test_interface_attach_with_resource_request()"},{"line_number":1672,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"8241fbdd_0736cee9","side":"PARENT","line":1669,"range":{"start_line":1662,"start_character":0,"end_line":1669,"end_character":29},"updated":"2021-08-27 10:30:10.000000000","message":"This was a nit in a previous PS but as you\u0027re still doing it I\u0027d rather that you comment these out if they are passing before they should be due to $reasons with comments detailing why.","commit_id":"94f47471e058e46441a63d5aaf77776ef75b3fba"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4254c678503ce6ef36491ce582ad4a23c6595453","unresolved":true,"context_lines":[{"line_number":1659,"context_line":"        patcher.start()"},{"line_number":1660,"context_line":""},{"line_number":1661,"context_line":"    @unittest.expectedFailure"},{"line_number":1662,"context_line":"    def test_boot_server_with_two_ports_one_having_resource_request(self):"},{"line_number":1663,"context_line":"        super().test_boot_server_with_two_ports_one_having_resource_request()"},{"line_number":1664,"context_line":""},{"line_number":1665,"context_line":"    @unittest.expectedFailure"},{"line_number":1666,"context_line":"    def test_one_ovs_one_sriov_port(self):"},{"line_number":1667,"context_line":"        super().test_one_ovs_one_sriov_port()"},{"line_number":1668,"context_line":""},{"line_number":1669,"context_line":"    @unittest.expectedFailure"},{"line_number":1670,"context_line":"    def test_interface_attach_with_resource_request(self):"},{"line_number":1671,"context_line":"        super().test_interface_attach_with_resource_request()"},{"line_number":1672,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"2be93195_dd72c5df","side":"PARENT","line":1669,"range":{"start_line":1662,"start_character":0,"end_line":1669,"end_character":29},"in_reply_to":"8241fbdd_0736cee9","updated":"2021-08-27 13:01:02.000000000","message":"Meh? 😊 I get what you\u0027re saying, but I\u0027m not sure it matters all that much if we plan on landing this entire feature this cycle. With any luck there will only be a gap of a few commit between this patch and the one that actually makes $thing work","commit_id":"94f47471e058e46441a63d5aaf77776ef75b3fba"}]}
