diff --git a/nova/network/neutronv2/api.py b/nova/network/neutronv2/api.py index c548e6bbf3b4..e26da18a0d16 100644 --- a/nova/network/neutronv2/api.py +++ b/nova/network/neutronv2/api.py @@ -2231,7 +2231,11 @@ class API(base_api.NetworkAPI): :return: A list of RequestGroup objects """ - neutron = get_client(context) + # NOTE(gibi): We need to use an admin client as otherwise a non admin + # initiated resize causes that neutron does not fill the + # resource_request field of the port and this will lead to resource + # allocation issues. See bug 1849695 + neutron = get_client(context, admin=True) # get the ports associated to this instance data = neutron.list_ports( device_id=instance_uuid, fields=['id', 'resource_request']) diff --git a/nova/tests/unit/network/test_neutronv2.py b/nova/tests/unit/network/test_neutronv2.py index 2174746beb37..6a33e9ff042f 100644 --- a/nova/tests/unit/network/test_neutronv2.py +++ b/nova/tests/unit/network/test_neutronv2.py @@ -6151,6 +6151,8 @@ class TestNeutronv2WithMock(TestNeutronv2Base): uuids.port1, request_groups[0].requester_id) + mock_get_client.assert_called_once_with(self.context, admin=True) + class TestNeutronv2ModuleMethods(test.NoDBTestCase):