← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1640502] [NEW] Missing /etc/machine-id causes failure in unit tests

 

Public bug reported:

Description
===========

When there is /etc/machine-id file missing on host, unit tests rescue in
Libvirt driver case are failing with NovaException. It seems that this
file shall be generated by systemd
(https://www.freedesktop.org/software/systemd/man/machine-id.html), but
it is not present on all platforms by default (like 'ubuntu:xenial'
container). It may be potentially problematic on some CI/dev-
environments that are testing if unit-tests are passing.

Steps to reproduce
==================

* Launch Docker container 'ubuntu:xenial'
* Setup repository and install build-dep for Nova
* Clone Nova from Github
* Run: tox -e py27 'nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase'

Expected result
===============

The unit tests shall be platform-independent, right?
Therefore in nova/tests/unit/virt/libvirt/test_driver.py there should be a mock for /etc/machine-id file.

Actual result
=============

The tests
nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive
and
nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue
are failing due to '**nova.exception.NovaException: Unable to get host
UUID: /etc/machine-id is empty**'.

Environment
===========

Clean 'ubuntu:xenial' Docker container with just build-deps for Nova
from cloud-archive.

Logs & Configs
==============

For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue:
```
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/virt/libvirt/test_driver.py", line 16387, in test_rescue
        backend, doc = self._test_rescue(instance)
      File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
        return func(*args, **keywargs)
      File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
        network_info, image_meta, rescue_password)
      File "nova/virt/libvirt/driver.py", line 2527, in rescue
        unrescue_xml = self._get_existing_domain_xml(instance, network_info)
      File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
        block_device_info=block_device_info)
      File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
        context)
      File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
        root_device_name)
      File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
        guest.sysinfo = self._get_guest_config_sysinfo(instance)
      File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
        sysinfo.system_serial = self._sysinfo_serial_func()
      File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
        return self._get_host_sysinfo_serial_os()
      File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
        raise exception.NovaException(msg)
    nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty

```

For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive:
```
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
        return func(*args, **keywargs)
      File "nova/tests/unit/virt/libvirt/test_driver.py", line 16426, in test_rescue_config_drive
        instance, exists=lambda name: name != 'disk.config.rescue')
      File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
        return func(*args, **keywargs)
      File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
        network_info, image_meta, rescue_password)
      File "nova/virt/libvirt/driver.py", line 2527, in rescue
        unrescue_xml = self._get_existing_domain_xml(instance, network_info)
      File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
        block_device_info=block_device_info)
      File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
        context)
      File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
        root_device_name)
      File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
        guest.sysinfo = self._get_guest_config_sysinfo(instance)
      File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
        sysinfo.system_serial = self._sysinfo_serial_func()
      File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
        return self._get_host_sysinfo_serial_os()
      File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
        raise exception.NovaException(msg)
    nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
```

** Affects: nova
     Importance: Medium
     Assignee: Szymon Datko (fenekpl)
         Status: Confirmed


** Tags: machine-id systemd

** Changed in: nova
     Assignee: (unassigned) => Szymon Datko (fenekpl)

** Description changed:

  Description
  ===========
  
  When there is /etc/machine-id file missing on host, unit tests rescue in
  Libvirt driver case are failing with NovaException. It seems that this
  file shall be generated by systemd
  (https://www.freedesktop.org/software/systemd/man/machine-id.html), but
  it is not present on all platforms by default (like 'ubuntu:xenial'
  container). It may be potentially problematic on some CI/dev-
  environments that are testing if unit-tests are passing.
  
- 
  Steps to reproduce
  ==================
  
  * Launch Docker container 'ubuntu:xenial'
  * Setup repository and install build-dep for Nova
  * Clone Nova from Github
  * Run: tox -e py27 'nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase'
  
- 
  Expected result
  ===============
  
- The unit tests shall be platform-independent, right? 
- Therefore in nova/tests/unit/virt/libvirt/test_driver.py there should be a mock for /etc/machine-id file. 
- 
+ The unit tests shall be platform-independent, right?
+ Therefore in nova/tests/unit/virt/libvirt/test_driver.py there should be a mock for /etc/machine-id file.
  
  Actual result
  =============
  
  The tests
- nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive
+ ***nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive***
  and
- nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue
- are failing due to 'nova.exception.NovaException: Unable to get host
- UUID: /etc/machine-id is empty'.
- 
+ ***nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue***
+ are failing due to '**nova.exception.NovaException: Unable to get host
+ UUID: /etc/machine-id is empty**'.
  
  Environment
  ===========
  
  Clean 'ubuntu:xenial' Docker container with just build-deps for Nova
  from cloud-archive.
- 
  
  Logs & Configs
  ==============
  
  For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue:
  ```
  Captured traceback:
  ~~~~~~~~~~~~~~~~~~~
-     Traceback (most recent call last):
-       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16387, in test_rescue
-         backend, doc = self._test_rescue(instance)
-       File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
-         return func(*args, **keywargs)
-       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
-         network_info, image_meta, rescue_password)
-       File "nova/virt/libvirt/driver.py", line 2527, in rescue
-         unrescue_xml = self._get_existing_domain_xml(instance, network_info)
-       File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
-         block_device_info=block_device_info)
-       File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
-         context)
-       File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
-         root_device_name)
-       File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
-         guest.sysinfo = self._get_guest_config_sysinfo(instance)
-       File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
-         sysinfo.system_serial = self._sysinfo_serial_func()
-       File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
-         return self._get_host_sysinfo_serial_os()
-       File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
-         raise exception.NovaException(msg)
-     nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
+     Traceback (most recent call last):
+       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16387, in test_rescue
+         backend, doc = self._test_rescue(instance)
+       File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
+         return func(*args, **keywargs)
+       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
+         network_info, image_meta, rescue_password)
+       File "nova/virt/libvirt/driver.py", line 2527, in rescue
+         unrescue_xml = self._get_existing_domain_xml(instance, network_info)
+       File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
+         block_device_info=block_device_info)
+       File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
+         context)
+       File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
+         root_device_name)
+       File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
+         guest.sysinfo = self._get_guest_config_sysinfo(instance)
+       File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
+         sysinfo.system_serial = self._sysinfo_serial_func()
+       File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
+         return self._get_host_sysinfo_serial_os()
+       File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
+         raise exception.NovaException(msg)
+     nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
  
  ```
  
  For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive:
  ```
  Captured traceback:
  ~~~~~~~~~~~~~~~~~~~
-     Traceback (most recent call last):
-       File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
-         return func(*args, **keywargs)
-       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16426, in test_rescue_config_drive
-         instance, exists=lambda name: name != 'disk.config.rescue')
-       File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
-         return func(*args, **keywargs)
-       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
-         network_info, image_meta, rescue_password)
-       File "nova/virt/libvirt/driver.py", line 2527, in rescue
-         unrescue_xml = self._get_existing_domain_xml(instance, network_info)
-       File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
-         block_device_info=block_device_info)
-       File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
-         context)
-       File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
-         root_device_name)
-       File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
-         guest.sysinfo = self._get_guest_config_sysinfo(instance)
-       File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
-         sysinfo.system_serial = self._sysinfo_serial_func()
-       File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
-         return self._get_host_sysinfo_serial_os()
-       File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
-         raise exception.NovaException(msg)
-     nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
+     Traceback (most recent call last):
+       File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
+         return func(*args, **keywargs)
+       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16426, in test_rescue_config_drive
+         instance, exists=lambda name: name != 'disk.config.rescue')
+       File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
+         return func(*args, **keywargs)
+       File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
+         network_info, image_meta, rescue_password)
+       File "nova/virt/libvirt/driver.py", line 2527, in rescue
+         unrescue_xml = self._get_existing_domain_xml(instance, network_info)
+       File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
+         block_device_info=block_device_info)
+       File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
+         context)
+       File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
+         root_device_name)
+       File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
+         guest.sysinfo = self._get_guest_config_sysinfo(instance)
+       File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
+         sysinfo.system_serial = self._sysinfo_serial_func()
+       File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
+         return self._get_host_sysinfo_serial_os()
+       File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
+         raise exception.NovaException(msg)
+     nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
  ```

** Description changed:

  Description
  ===========
  
  When there is /etc/machine-id file missing on host, unit tests rescue in
  Libvirt driver case are failing with NovaException. It seems that this
  file shall be generated by systemd
  (https://www.freedesktop.org/software/systemd/man/machine-id.html), but
  it is not present on all platforms by default (like 'ubuntu:xenial'
  container). It may be potentially problematic on some CI/dev-
  environments that are testing if unit-tests are passing.
  
  Steps to reproduce
  ==================
  
  * Launch Docker container 'ubuntu:xenial'
  * Setup repository and install build-dep for Nova
  * Clone Nova from Github
  * Run: tox -e py27 'nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase'
  
  Expected result
  ===============
  
  The unit tests shall be platform-independent, right?
  Therefore in nova/tests/unit/virt/libvirt/test_driver.py there should be a mock for /etc/machine-id file.
  
  Actual result
  =============
  
  The tests
- ***nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive***
+ nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive
  and
- ***nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue***
+ nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue
  are failing due to '**nova.exception.NovaException: Unable to get host
  UUID: /etc/machine-id is empty**'.
  
  Environment
  ===========
  
  Clean 'ubuntu:xenial' Docker container with just build-deps for Nova
  from cloud-archive.
  
  Logs & Configs
  ==============
  
  For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue:
  ```
  Captured traceback:
  ~~~~~~~~~~~~~~~~~~~
      Traceback (most recent call last):
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16387, in test_rescue
          backend, doc = self._test_rescue(instance)
        File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
          return func(*args, **keywargs)
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
          network_info, image_meta, rescue_password)
        File "nova/virt/libvirt/driver.py", line 2527, in rescue
          unrescue_xml = self._get_existing_domain_xml(instance, network_info)
        File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
          block_device_info=block_device_info)
        File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
          context)
        File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
          root_device_name)
        File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
          guest.sysinfo = self._get_guest_config_sysinfo(instance)
        File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
          sysinfo.system_serial = self._sysinfo_serial_func()
        File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
          return self._get_host_sysinfo_serial_os()
        File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
          raise exception.NovaException(msg)
      nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
  
  ```
  
  For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive:
  ```
  Captured traceback:
  ~~~~~~~~~~~~~~~~~~~
      Traceback (most recent call last):
        File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
          return func(*args, **keywargs)
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16426, in test_rescue_config_drive
          instance, exists=lambda name: name != 'disk.config.rescue')
        File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
          return func(*args, **keywargs)
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
          network_info, image_meta, rescue_password)
        File "nova/virt/libvirt/driver.py", line 2527, in rescue
          unrescue_xml = self._get_existing_domain_xml(instance, network_info)
        File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
          block_device_info=block_device_info)
        File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
          context)
        File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
          root_device_name)
        File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
          guest.sysinfo = self._get_guest_config_sysinfo(instance)
        File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
          sysinfo.system_serial = self._sysinfo_serial_func()
        File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
          return self._get_host_sysinfo_serial_os()
        File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
          raise exception.NovaException(msg)
      nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
  ```

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1640502

Title:
  Missing /etc/machine-id causes failure in unit tests

Status in OpenStack Compute (nova):
  Confirmed

Bug description:
  Description
  ===========

  When there is /etc/machine-id file missing on host, unit tests rescue
  in Libvirt driver case are failing with NovaException. It seems that
  this file shall be generated by systemd
  (https://www.freedesktop.org/software/systemd/man/machine-id.html),
  but it is not present on all platforms by default (like
  'ubuntu:xenial' container). It may be potentially problematic on some
  CI/dev-environments that are testing if unit-tests are passing.

  Steps to reproduce
  ==================

  * Launch Docker container 'ubuntu:xenial'
  * Setup repository and install build-dep for Nova
  * Clone Nova from Github
  * Run: tox -e py27 'nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase'

  Expected result
  ===============

  The unit tests shall be platform-independent, right?
  Therefore in nova/tests/unit/virt/libvirt/test_driver.py there should be a mock for /etc/machine-id file.

  Actual result
  =============

  The tests
  nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive
  and
  nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue
  are failing due to '**nova.exception.NovaException: Unable to get host
  UUID: /etc/machine-id is empty**'.

  Environment
  ===========

  Clean 'ubuntu:xenial' Docker container with just build-deps for Nova
  from cloud-archive.

  Logs & Configs
  ==============

  For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue:
  ```
  Captured traceback:
  ~~~~~~~~~~~~~~~~~~~
      Traceback (most recent call last):
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16387, in test_rescue
          backend, doc = self._test_rescue(instance)
        File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
          return func(*args, **keywargs)
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
          network_info, image_meta, rescue_password)
        File "nova/virt/libvirt/driver.py", line 2527, in rescue
          unrescue_xml = self._get_existing_domain_xml(instance, network_info)
        File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
          block_device_info=block_device_info)
        File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
          context)
        File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
          root_device_name)
        File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
          guest.sysinfo = self._get_guest_config_sysinfo(instance)
        File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
          sysinfo.system_serial = self._sysinfo_serial_func()
        File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
          return self._get_host_sysinfo_serial_os()
        File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
          raise exception.NovaException(msg)
      nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty

  ```

  For nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue_config_drive:
  ```
  Captured traceback:
  ~~~~~~~~~~~~~~~~~~~
      Traceback (most recent call last):
        File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
          return func(*args, **keywargs)
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16426, in test_rescue_config_drive
          instance, exists=lambda name: name != 'disk.config.rescue')
        File "/TEST/nova/.tox/py27/local/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched
          return func(*args, **keywargs)
        File "nova/tests/unit/virt/libvirt/test_driver.py", line 16379, in _test_rescue
          network_info, image_meta, rescue_password)
        File "nova/virt/libvirt/driver.py", line 2527, in rescue
          unrescue_xml = self._get_existing_domain_xml(instance, network_info)
        File "nova/virt/libvirt/driver.py", line 1270, in _get_existing_domain_xml
          block_device_info=block_device_info)
        File "nova/virt/libvirt/driver.py", line 4677, in _get_guest_xml
          context)
        File "nova/virt/libvirt/driver.py", line 4494, in _get_guest_config
          root_device_name)
        File "nova/virt/libvirt/driver.py", line 4299, in _configure_guest_by_virt_type
          guest.sysinfo = self._get_guest_config_sysinfo(instance)
        File "nova/virt/libvirt/driver.py", line 3596, in _get_guest_config_sysinfo
          sysinfo.system_serial = self._sysinfo_serial_func()
        File "nova/virt/libvirt/driver.py", line 3585, in _get_host_sysinfo_serial_auto
          return self._get_host_sysinfo_serial_os()
        File "nova/virt/libvirt/driver.py", line 3579, in _get_host_sysinfo_serial_os
          raise exception.NovaException(msg)
      nova.exception.NovaException: Unable to get host UUID: /etc/machine-id is empty
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1640502/+subscriptions


Follow ups