summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-04-16 21:40:57 +0000
committerGerrit Code Review <review@openstack.org>2020-04-16 21:40:57 +0000
commit966d21fa7587d3518f836030c7bafe0d7b398e65 (patch)
treea08d391bc8041023e0e67b2bea807d31aa785e74
parentb68b27064a74419dbfdf7a9ba3ef80d0d4a0de8a (diff)
parent90032a7e01684e8c7de9546818c8b912f1038b27 (diff)
downloadnova-966d21fa7587d3518f836030c7bafe0d7b398e65.tar.gz
Merge "libvirt: Remove VIR_DOMAIN_BLOCK_REBASE_RELATIVE flag check"
-rw-r--r--nova/tests/unit/virt/libvirt/fakelibvirt.py3
-rw-r--r--nova/tests/unit/virt/libvirt/test_driver.py14
-rw-r--r--nova/virt/libvirt/driver.py16
3 files changed, 7 insertions, 26 deletions
diff --git a/nova/tests/unit/virt/libvirt/fakelibvirt.py b/nova/tests/unit/virt/libvirt/fakelibvirt.py
index bc676eac5b..940cbef788 100644
--- a/nova/tests/unit/virt/libvirt/fakelibvirt.py
+++ b/nova/tests/unit/virt/libvirt/fakelibvirt.py
@@ -61,6 +61,7 @@ VIR_DOMAIN_XML_MIGRATABLE = 8
VIR_DOMAIN_BLOCK_REBASE_SHALLOW = 1
VIR_DOMAIN_BLOCK_REBASE_REUSE_EXT = 2
VIR_DOMAIN_BLOCK_REBASE_COPY = 8
+VIR_DOMAIN_BLOCK_REBASE_RELATIVE = 16
VIR_DOMAIN_BLOCK_REBASE_COPY_DEV = 32
# virDomainBlockResize
@@ -160,8 +161,6 @@ VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE = 64
# blockCommit flags
VIR_DOMAIN_BLOCK_COMMIT_RELATIVE = 4
-# blockRebase flags
-VIR_DOMAIN_BLOCK_REBASE_RELATIVE = 8
VIR_CONNECT_LIST_DOMAINS_ACTIVE = 1
diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py
index 540fcd6a30..e6b4eef692 100644
--- a/nova/tests/unit/virt/libvirt/test_driver.py
+++ b/nova/tests/unit/virt/libvirt/test_driver.py
@@ -25335,8 +25335,6 @@ class LibvirtVolumeSnapshotTestCase(test.NoDBTestCase):
mock_xml, mock_rebase, mock_commit):
"""Deleting newest snapshot -- blockRebase."""
- # libvirt lib doesn't have VIR_DOMAIN_BLOCK_REBASE_RELATIVE flag
- fakelibvirt.__dict__.pop('VIR_DOMAIN_BLOCK_REBASE_RELATIVE')
self.stub_out('nova.virt.libvirt.driver.libvirt', fakelibvirt)
instance = objects.Instance(**self.inst)
@@ -25355,9 +25353,10 @@ class LibvirtVolumeSnapshotTestCase(test.NoDBTestCase):
self.assertEqual(2, mock_is_job_complete.call_count)
mock_xml.assert_called_once_with(flags=0)
mock_get.assert_called_once_with(instance)
- mock_rebase.assert_called_once_with('vda', 'snap.img', 0, flags=0)
+ mock_rebase.assert_called_once_with(
+ 'vda', 'snap.img', 0,
+ flags=fakelibvirt.VIR_DOMAIN_BLOCK_REBASE_RELATIVE)
mock_commit.assert_not_called()
- fakelibvirt.__dict__.update({'VIR_DOMAIN_BLOCK_REBASE_RELATIVE': 8})
@mock.patch('time.sleep', new=mock.Mock())
@mock.patch.object(FakeVirtDomain, 'blockCommit')
@@ -25661,8 +25660,6 @@ class LibvirtVolumeSnapshotTestCase(test.NoDBTestCase):
def XMLDesc(self, flags):
return self.dom_netdisk_xml
- # libvirt lib doesn't have VIR_DOMAIN_BLOCK_REBASE_RELATIVE
- fakelibvirt.__dict__.pop('VIR_DOMAIN_BLOCK_REBASE_RELATIVE')
self.stub_out('nova.virt.libvirt.driver.libvirt', fakelibvirt)
instance = objects.Instance(**self.inst)
@@ -25687,11 +25684,10 @@ class LibvirtVolumeSnapshotTestCase(test.NoDBTestCase):
self.assertEqual(2, mock_is_job_complete.call_count)
mock_xml.assert_called_once_with(flags=0)
mock_get.assert_called_once_with(instance)
- mock_rebase.assert_called_once_with('vdb', 'vdb[1]', 0, flags=0)
+ mock_rebase.assert_called_once_with('vdb', 'vdb[1]', 0,
+ flags=fakelibvirt.VIR_DOMAIN_BLOCK_REBASE_RELATIVE)
mock_commit.assert_not_called()
- fakelibvirt.__dict__.update({'VIR_DOMAIN_BLOCK_REBASE_RELATIVE': 8})
-
@mock.patch('time.sleep', new=mock.Mock())
@mock.patch.object(host.Host, '_get_domain')
@mock.patch('nova.virt.libvirt.guest.BlockDevice.is_job_complete')
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 49ca4ec56e..dd6f7c55c9 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -2997,21 +2997,7 @@ class LibvirtDriver(driver.ComputeDriver):
rebase_base = _get_snap_dev(rebase_base,
active_disk_object.backing_store)
- # NOTE(deepakcs): libvirt added support for _RELATIVE in v1.2.7,
- # and when available this flag _must_ be used to ensure backing
- # paths are maintained relative by qemu.
- #
- # If _RELATIVE flag not found, continue with old behaviour
- # (relative backing path seems to work for this case)
- try:
- libvirt.VIR_DOMAIN_BLOCK_REBASE_RELATIVE
- relative = rebase_base is not None
- except AttributeError:
- LOG.warning(
- "Relative blockrebase support was not detected. "
- "Continuing with old behaviour.")
- relative = False
-
+ relative = rebase_base is not None
LOG.debug(
'disk: %(disk)s, base: %(base)s, '
'bw: %(bw)s, relative: %(relative)s',