Merge "add functional repoducer for bug 2065927" into stable/2024.1

This commit is contained in:
Zuul 2024-07-09 04:08:13 +00:00 committed by Gerrit Code Review
commit d7284411fb

View File

@ -10,15 +10,16 @@
# License for the specific language governing permissions and limitations
# under the License.
from unittest import mock
import fixtures
from unittest import mock
from nova import context as nova_context
from nova import exception
from nova import objects
from nova.tests import fixtures as nova_fixtures
from nova.tests.fixtures import libvirt as fakelibvirt
from nova.tests.functional.api import client
from nova.tests.functional.libvirt import base
from nova.virt import hardware
from nova.virt.libvirt.cpu import api as cpu_api
@ -240,7 +241,6 @@ class PowerManagementTests(PowerManagementTestsBase):
cpu_cores=5, cpu_threads=2)
self.compute1 = self.start_compute(host_info=self.host_info,
hostname='compute1')
# All cores are shutdown at startup, let's check.
cpu_dedicated_set = hardware.get_cpu_dedicated_set()
self._assert_cpu_set_state(cpu_dedicated_set, expected='offline')
@ -266,6 +266,33 @@ class PowerManagementTests(PowerManagementTestsBase):
cpu_dedicated_set = hardware.get_cpu_dedicated_set()
unused_cpus = cpu_dedicated_set - instance_pcpus
self._assert_cpu_set_state(unused_cpus, expected='offline')
return server
def test_delete_server(self):
server = self.test_create_server()
self._delete_server(server)
# Let's verify that the pinned CPUs are now offline
cpu_dedicated_set = hardware.get_cpu_dedicated_set()
self._assert_cpu_set_state(cpu_dedicated_set, expected='offline')
def test_delete_server_device_busy(self):
server = self.test_create_server()
inst = objects.Instance.get_by_uuid(self.ctxt, server['id'])
instance_pcpus = inst.numa_topology.cpu_pinning
self._assert_cpu_set_state(instance_pcpus, expected='online')
with mock.patch(
'nova.filesystem.write_sys',
side_effect=exception.FileNotFound(file_path='fake')):
# This is bug 2065927
self.assertRaises(
client.OpenStackApiException, self._delete_server, server)
cpu_dedicated_set = hardware.get_cpu_dedicated_set()
# Verify that the unused CPUs are still offline
unused_cpus = cpu_dedicated_set - instance_pcpus
self._assert_cpu_set_state(unused_cpus, expected='offline')
# but the instance cpus are still online
self._assert_cpu_set_state(instance_pcpus, expected='online')
def test_create_server_with_emulator_threads_isolate(self):
server = self._create_server(