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
This commit is contained in:
Stephen Finucane
2019-03-29 17:22:45 +00:00
parent 95a87bce9f
commit a37b16610d
+2
View File
@@ -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')