diff options
author | Lee Yarwood <lyarwood@redhat.com> | 2020-08-19 11:51:59 +0100 |
---|---|---|
committer | Lee Yarwood <lyarwood@redhat.com> | 2020-08-26 13:12:05 +0100 |
commit | 9285428a16560d72cea1e44cdee73ff4d5ce5430 (patch) | |
tree | 92382bfadc1d00d7cc2111cae503b3162f70728c /nova | |
parent | d09fade87e9abcfebc08bc6dbbbcf1eae673e349 (diff) | |
download | nova-9285428a16560d72cea1e44cdee73ff4d5ce5430.tar.gz |
rbd: Move rbd_utils out of libvirt driver under nova.storage
This module will be used within nova.image.glance as part of the
nova-image-download-via-rbd blueprint. As this can technically be used
by multiple virt drivers it's time to break rbd_utils out from the
libvirt driver into a more generic place in the codebase.
Change-Id: I25baf5edd25d9e551686b7ed317a63fd778be533
Diffstat (limited to 'nova')
-rw-r--r-- | nova/storage/__init__.py | 0 | ||||
-rw-r--r-- | nova/storage/rbd_utils.py (renamed from nova/virt/libvirt/storage/rbd_utils.py) | 5 | ||||
-rw-r--r-- | nova/tests/functional/libvirt/test_evacuate.py | 2 | ||||
-rw-r--r-- | nova/tests/unit/storage/test_rbd.py (renamed from nova/tests/unit/virt/libvirt/storage/test_rbd.py) | 7 | ||||
-rw-r--r-- | nova/tests/unit/virt/libvirt/test_driver.py | 4 | ||||
-rw-r--r-- | nova/tests/unit/virt/libvirt/test_imagebackend.py | 10 | ||||
-rw-r--r-- | nova/virt/libvirt/driver.py | 2 | ||||
-rw-r--r-- | nova/virt/libvirt/imagebackend.py | 2 |
8 files changed, 16 insertions, 16 deletions
diff --git a/nova/storage/__init__.py b/nova/storage/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/nova/storage/__init__.py diff --git a/nova/virt/libvirt/storage/rbd_utils.py b/nova/storage/rbd_utils.py index 97440b81e4..bda1b5d542 100644 --- a/nova/virt/libvirt/storage/rbd_utils.py +++ b/nova/storage/rbd_utils.py @@ -34,13 +34,14 @@ from oslo_utils import excutils import nova.conf from nova import exception from nova.i18n import _ -from nova.virt.libvirt import utils as libvirt_utils CONF = nova.conf.CONF LOG = logging.getLogger(__name__) +RESIZE_SNAPSHOT_NAME = 'nova-resize' + class RbdProxy(object): """A wrapper around rbd.RBD class instance to avoid blocking of process. @@ -342,7 +343,7 @@ class RBDDriver(object): RbdProxy().remove(ioctx, volume) raise loopingcall.LoopingCallDone(retvalue=False) except rbd.ImageHasSnapshots: - self.remove_snap(volume, libvirt_utils.RESIZE_SNAPSHOT_NAME, + self.remove_snap(volume, RESIZE_SNAPSHOT_NAME, ignore_errors=True) except (rbd.ImageBusy, rbd.ImageHasSnapshots): LOG.warning('rbd remove %(volume)s in pool %(pool)s failed', diff --git a/nova/tests/functional/libvirt/test_evacuate.py b/nova/tests/functional/libvirt/test_evacuate.py index 96fc8af3fb..b068209088 100644 --- a/nova/tests/functional/libvirt/test_evacuate.py +++ b/nova/tests/functional/libvirt/test_evacuate.py @@ -220,7 +220,7 @@ class _RbdTest(object): # We never want to actually touch rbd self.mock_rbd_driver = self.useFixture(fixtures.MockPatch( - 'nova.virt.libvirt.storage.rbd_utils.RBDDriver')).mock.return_value + 'nova.storage.rbd_utils.RBDDriver')).mock.return_value self.mock_rbd_driver.get_mon_addrs.return_value = ([], []) self.mock_rbd_driver.size.return_value = 10 * units.Gi self.mock_rbd_driver.rbd_user = 'rbd' diff --git a/nova/tests/unit/virt/libvirt/storage/test_rbd.py b/nova/tests/unit/storage/test_rbd.py index 5ce5c3b072..fd9372b870 100644 --- a/nova/tests/unit/virt/libvirt/storage/test_rbd.py +++ b/nova/tests/unit/storage/test_rbd.py @@ -19,9 +19,8 @@ from oslo_utils.fixture import uuidsentinel as uuids from nova.compute import task_states from nova import exception from nova import objects +from nova.storage import rbd_utils from nova import test -from nova.virt.libvirt.storage import rbd_utils -from nova.virt.libvirt import utils as libvirt_utils CEPH_MON_DUMP = r"""dumped monmap epoch 1 @@ -466,7 +465,7 @@ class RbdTestCase(test.NoDBTestCase): proxy = mock_proxy.return_value proxy.__enter__.return_value = proxy proxy.list_snaps.return_value = [ - {'name': libvirt_utils.RESIZE_SNAPSHOT_NAME}] + {'name': rbd_utils.RESIZE_SNAPSHOT_NAME}] client = mock_client.return_value self.driver.cleanup_volumes(filter_fn) @@ -474,7 +473,7 @@ class RbdTestCase(test.NoDBTestCase): '%s_test' % uuids.instance) rbd.remove.assert_has_calls([remove_call, remove_call]) proxy.remove_snap.assert_called_once_with( - libvirt_utils.RESIZE_SNAPSHOT_NAME) + rbd_utils.RESIZE_SNAPSHOT_NAME) client.__enter__.assert_called_once_with() client.__exit__.assert_called_once_with(None, None, None) diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 3e2b3b9b84..07c15249d7 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -84,6 +84,7 @@ from nova.pci import manager as pci_manager from nova.pci import utils as pci_utils import nova.privsep.fs import nova.privsep.libvirt +from nova.storage import rbd_utils from nova import test from nova.tests import fixtures as nova_fixtures from nova.tests.unit import fake_block_device @@ -118,7 +119,6 @@ from nova.virt.libvirt import imagecache from nova.virt.libvirt import migration as libvirt_migrate from nova.virt.libvirt.storage import dmcrypt from nova.virt.libvirt.storage import lvm -from nova.virt.libvirt.storage import rbd_utils from nova.virt.libvirt import utils as libvirt_utils from nova.virt.libvirt import vif as libvirt_vif from nova.virt.libvirt.volume import fs as fs_drivers @@ -22810,7 +22810,7 @@ class LibvirtDriverTestCase(test.NoDBTestCase, TraitsComparisonMixin): self.assertFalse(mock_inject.called) @mock.patch('nova.virt.libvirt.utils.fetch_image') - @mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver') + @mock.patch('nova.storage.rbd_utils.RBDDriver') @mock.patch.object(imagebackend, 'IMAGE_API') def test_create_fetch_image_ceph_workaround(self, mock_image, mock_rbd, mock_fetch): diff --git a/nova/tests/unit/virt/libvirt/test_imagebackend.py b/nova/tests/unit/virt/libvirt/test_imagebackend.py index 843eb0fdd6..031d543b2b 100644 --- a/nova/tests/unit/virt/libvirt/test_imagebackend.py +++ b/nova/tests/unit/virt/libvirt/test_imagebackend.py @@ -35,6 +35,7 @@ import nova.conf from nova import context from nova import exception from nova import objects +from nova.storage import rbd_utils from nova import test from nova.tests.unit import fake_processutils from nova import utils @@ -42,7 +43,6 @@ from nova.virt.image import model as imgmodel from nova.virt import images from nova.virt.libvirt import config as vconfig from nova.virt.libvirt import imagebackend -from nova.virt.libvirt.storage import rbd_utils from nova.virt.libvirt import utils as libvirt_utils CONF = nova.conf.CONF @@ -1894,7 +1894,7 @@ class RbdTestCase(_ImageTestCase, test.NoDBTestCase): mock_imgapi.copy_image_to_store.assert_called_once_with( self.CONTEXT, 'foo', 'store') - @mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver') + @mock.patch('nova.storage.rbd_utils.RBDDriver') @mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API') def test_clone_copy_to_store(self, mock_imgapi, mock_driver_): # Call image.clone() in a way that will cause it to fall through @@ -1921,7 +1921,7 @@ class RbdTestCase(_ImageTestCase, test.NoDBTestCase): # recursed after the copy-to-store operation mock.call('fake', fake_image)]) - @mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver') + @mock.patch('nova.storage.rbd_utils.RBDDriver') @mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API') def test_clone_copy_to_store_failed(self, mock_imgapi, mock_driver_): # Call image.clone() in a way that will cause it to fall through @@ -1950,7 +1950,7 @@ class RbdTestCase(_ImageTestCase, test.NoDBTestCase): # recursed after the copy-to-store operation mock.call('fake', fake_image)]) - @mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver') + @mock.patch('nova.storage.rbd_utils.RBDDriver') @mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API') def test_clone_without_needed_copy(self, mock_imgapi, mock_driver_): # Call image.clone() in a way that will cause it to pass the locations @@ -1971,7 +1971,7 @@ class RbdTestCase(_ImageTestCase, test.NoDBTestCase): mock_copy.assert_not_called() mock_driver.is_cloneable.assert_called_once_with('fake', fake_image) - @mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver') + @mock.patch('nova.storage.rbd_utils.RBDDriver') @mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API') def test_clone_copy_not_configured(self, mock_imgapi, mock_driver_): # Call image.clone() in a way that will cause it to fail the locations diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 7e25db59ab..65813f6276 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -100,6 +100,7 @@ from nova.pci import utils as pci_utils import nova.privsep.libvirt import nova.privsep.path import nova.privsep.utils +from nova.storage import rbd_utils from nova import utils from nova import version from nova.virt import arch @@ -122,7 +123,6 @@ from nova.virt.libvirt import instancejobtracker from nova.virt.libvirt import migration as libvirt_migrate from nova.virt.libvirt.storage import dmcrypt from nova.virt.libvirt.storage import lvm -from nova.virt.libvirt.storage import rbd_utils from nova.virt.libvirt import utils as libvirt_utils from nova.virt.libvirt import vif as libvirt_vif from nova.virt.libvirt.volume import fs diff --git a/nova/virt/libvirt/imagebackend.py b/nova/virt/libvirt/imagebackend.py index bfd5c0eef4..1f88fa20d6 100644 --- a/nova/virt/libvirt/imagebackend.py +++ b/nova/virt/libvirt/imagebackend.py @@ -38,6 +38,7 @@ from nova.i18n import _ from nova.image import glance import nova.privsep.libvirt import nova.privsep.path +from nova.storage import rbd_utils from nova import utils from nova.virt.disk import api as disk from nova.virt.image import model as imgmodel @@ -45,7 +46,6 @@ from nova.virt import images from nova.virt.libvirt import config as vconfig from nova.virt.libvirt.storage import dmcrypt from nova.virt.libvirt.storage import lvm -from nova.virt.libvirt.storage import rbd_utils from nova.virt.libvirt import utils as libvirt_utils CONF = nova.conf.CONF |