From a37b16610de0c09ea99b4e8a731b82e5bc1bd229 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Fri, 29 Mar 2019 17:22:45 +0000 Subject: [PATCH] tests: Stub out privsep modules The libvirt driver makes a number of calls to privsep which weren't adequately mocked, resulting in failures like the below on hosts that differed from the gate (read: RHEL): 2019-03-29 05:31:45,075 ERROR [nova.compute.manager] Instance failed to spawn Traceback (most recent call last): ... File "nova/virt/libvirt/driver.py", line 3912, in _get_guest_disk_config self.disk_cachemode, File "nova/virt/libvirt/driver.py", line 416, in disk_cachemode if not nova.privsep.utils.supports_direct_io(CONF.instances_path): File "nova/privsep/utils.py", line 62, in supports_direct_io {'path': dirpath, 'ex': e}) File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__ self.force_reraise() File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise six.reraise(self.type_, self.value, self.tb) File "nova/privsep/utils.py", line 45, in supports_direct_io fd = os.open(testfile, os.O_CREAT | os.O_WRONLY | os.O_DIRECT) OSError: [Errno 2] No such file or directory: '../nova/instances/.directio.test' Change-Id: If01e08a16dfdb2e539430fef3e4ba8b4e022626b --- nova/tests/functional/libvirt/base.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nova/tests/functional/libvirt/base.py b/nova/tests/functional/libvirt/base.py index d8b9e184ce..fd0dcbffd7 100644 --- a/nova/tests/functional/libvirt/base.py +++ b/nova/tests/functional/libvirt/base.py @@ -45,6 +45,8 @@ class ServersTestBase(base.ServersTestBase): self.useFixture(fakelibvirt.FakeLibvirtFixture()) self.useFixture(func_fixtures.PlacementFixture()) + self.stub_out('nova.privsep.utils.supports_direct_io', lambda _: True) + # Mock the 'get_connection' function, as we're going to need to provide # custom capabilities for each test _p = mock.patch('nova.virt.libvirt.host.Host.get_connection')