[Bug 1765122] Fix merged to nova (stable/pike)

OpenStack Infra 1765122 at bugs.launchpad.net
Fri Jun 29 14:31:05 UTC 2018


Reviewed:  https://review.openstack.org/578058
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=ba0eb30a75c0e20dfe0e8065d9765292fc963e95
Submitter: Zuul
Branch:    stable/pike

commit ba0eb30a75c0e20dfe0e8065d9765292fc963e95
Author: Jay Pipes <jaypipes at gmail.com>
Date:   Wed Apr 18 12:39:35 2018 -0400

    mock utils.execute() in qemu-img unit test
    
    There was a unit test that was not mocking utils.execute() and relying
    on qemu-img being installed on the machine running the tests. This fixes
    the test to mock out utils.execute() and raise a ProcessExecutionError
    that simulates the expected behaviour from qemu-img.
    
    Fixes bug: #1765122
    
    Change-Id: Ia6fc089fce0cc0ba1fb8d4d4ffbf7f47968a0507
    (cherry picked from commit 815b11f70a3fd31888fb3e3e7b38e3a697bf6244)
    (cherry picked from commit cf927f177be3ff0d1df069bc66f889ebcce93754)

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/1765122

Title:
  qemu-img execute not mocked in unit tests

Status in Ubuntu Cloud Archive:
  Fix Committed
Status in Ubuntu Cloud Archive ocata series:
  Fix Committed
Status in Ubuntu Cloud Archive pike series:
  Fix Committed
Status in Ubuntu Cloud Archive queens series:
  Fix Committed
Status in Ubuntu Cloud Archive rocky series:
  Fix Committed
Status in OpenStack Compute (nova):
  Fix Released
Status in nova package in Ubuntu:
  Fix Released
Status in nova source package in Bionic:
  Fix Committed
Status in nova source package in Cosmic:
  Fix Released

Bug description:
  nova.tests.unit.virt.test_images.QemuTestCase.test_qemu_info_with_errors
  is failing in both py27 and py36 tox environments due to a missing
  mock.

  This system does not have qemu(-img) installed in it and running unit
  tests returns the following:

  ==============================
  Failed 1 tests - output below:
  ==============================

  nova.tests.unit.virt.test_images.QemuTestCase.test_qemu_info_with_errors
  ------------------------------------------------------------------------

  Captured traceback:
  ~~~~~~~~~~~~~~~~~~~
      b'Traceback (most recent call last):'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/virt/images.py", line 73, in qemu_img_info'
      b'    out, err = utils.execute(*cmd, prlimit=QEMU_IMG_LIMITS)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/utils.py", line 231, in execute'
      b'    return processutils.execute(*cmd, **kwargs)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/oslo_concurrency/processutils.py", line 424, in execute'
      b'    cmd=sanitized_cmd)'
      b'oslo_concurrency.processutils.ProcessExecutionError: Unexpected error while running command.'
      b'Command: /home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/bin/python -m oslo_concurrency.prlimit --as=1073741824 --cpu=30 -- env LC_ALL=C LANG=C qemu-img info /fake/path'
      b'Exit code: 127'
      b"Stdout: ''"
      b"Stderr: '/usr/bin/env: \xe2\x80\x98qemu-img\xe2\x80\x99: No such file or directory\\n'"
      b''
      b'During handling of the above exception, another exception occurred:'
      b''
      b'Traceback (most recent call last):'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/mock/mock.py", line 1305, in patched'
      b'    return func(*args, **keywargs)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/tests/unit/virt/test_images.py", line 37, in test_qemu_info_with_errors'
      b"    '/fake/path')"
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 485, in assertRaises'
      b'    self.assertThat(our_callable, matcher)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 496, in assertThat'
      b'    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 547, in _matchHelper'
      b'    mismatch = matcher.match(matchee)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 108, in match'
      b'    mismatch = self.exception_matcher.match(exc_info)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_higherorder.py", line 62, in match'
      b'    mismatch = matcher.match(matchee)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 475, in match'
      b'    reraise(*matchee)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise'
      b'    raise exc_obj.with_traceback(exc_tb)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 101, in match'
      b'    result = matchee()'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 1049, in __call__'
      b'    return self._callable_object(*self._args, **self._kwargs)'
      b'  File "/home/jaypipes/src/git.openstack.org/openstack/nova/nova/virt/images.py", line 87, in qemu_img_info'
      b'    raise exception.InvalidDiskInfo(reason=msg)'
      b'nova.exception.InvalidDiskInfo: Disk info file is invalid: qemu-img failed to execute on /fake/path : Unexpected error while running command.'
      b'Command: /home/jaypipes/src/git.openstack.org/openstack/nova/.tox/py36/bin/python -m oslo_concurrency.prlimit --as=1073741824 --cpu=30 -- env LC_ALL=C LANG=C qemu-img info /fake/path'
      b'Exit code: 127'
      b"Stdout: ''"
      b"Stderr: '/usr/bin/env: \xe2\x80\x98qemu-img\xe2\x80\x99: No such file or directory\\n'"
      b''


  Adding Ubuntu SRU details:
  --------------------------
  [Impact]
  When building the latest package version of nova, the following unit test fails:

  nova.tests.unit.virt.test_images.QemuTestCase.test_qemu_info_with_errors

  [Test Case]
  Simply building the package will confirm whether or not the test fails.

  [Regression Potential]
  Extremely low. This is just a test update.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1765122/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list