summaryrefslogtreecommitdiff
path: root/nova
diff options
context:
space:
mode:
authorLee Yarwood <lyarwood@redhat.com>2020-08-19 11:51:59 +0100
committerLee Yarwood <lyarwood@redhat.com>2020-08-26 13:12:05 +0100
commit9285428a16560d72cea1e44cdee73ff4d5ce5430 (patch)
tree92382bfadc1d00d7cc2111cae503b3162f70728c /nova
parentd09fade87e9abcfebc08bc6dbbbcf1eae673e349 (diff)
downloadnova-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__.py0
-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.py2
-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.py4
-rw-r--r--nova/tests/unit/virt/libvirt/test_imagebackend.py10
-rw-r--r--nova/virt/libvirt/driver.py2
-rw-r--r--nova/virt/libvirt/imagebackend.py2
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