Skip to content

Commit 9285428

Browse files
committed
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
1 parent d09fade commit 9285428

File tree

8 files changed

+16
-16
lines changed

8 files changed

+16
-16
lines changed

nova/storage/__init__.py

Whitespace-only changes.

nova/virt/libvirt/storage/rbd_utils.py renamed to nova/storage/rbd_utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,14 @@
3434
import nova.conf
3535
from nova import exception
3636
from nova.i18n import _
37-
from nova.virt.libvirt import utils as libvirt_utils
3837

3938

4039
CONF = nova.conf.CONF
4140

4241
LOG = logging.getLogger(__name__)
4342

43+
RESIZE_SNAPSHOT_NAME = 'nova-resize'
44+
4445

4546
class RbdProxy(object):
4647
"""A wrapper around rbd.RBD class instance to avoid blocking of process.
@@ -342,7 +343,7 @@ def _cleanup_vol(ioctx, volume, retryctx):
342343
RbdProxy().remove(ioctx, volume)
343344
raise loopingcall.LoopingCallDone(retvalue=False)
344345
except rbd.ImageHasSnapshots:
345-
self.remove_snap(volume, libvirt_utils.RESIZE_SNAPSHOT_NAME,
346+
self.remove_snap(volume, RESIZE_SNAPSHOT_NAME,
346347
ignore_errors=True)
347348
except (rbd.ImageBusy, rbd.ImageHasSnapshots):
348349
LOG.warning('rbd remove %(volume)s in pool %(pool)s failed',

nova/tests/functional/libvirt/test_evacuate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ def fake_exists(_self):
220220

221221
# We never want to actually touch rbd
222222
self.mock_rbd_driver = self.useFixture(fixtures.MockPatch(
223-
'nova.virt.libvirt.storage.rbd_utils.RBDDriver')).mock.return_value
223+
'nova.storage.rbd_utils.RBDDriver')).mock.return_value
224224
self.mock_rbd_driver.get_mon_addrs.return_value = ([], [])
225225
self.mock_rbd_driver.size.return_value = 10 * units.Gi
226226
self.mock_rbd_driver.rbd_user = 'rbd'

nova/tests/unit/virt/libvirt/storage/test_rbd.py renamed to nova/tests/unit/storage/test_rbd.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@
1919
from nova.compute import task_states
2020
from nova import exception
2121
from nova import objects
22+
from nova.storage import rbd_utils
2223
from nova import test
23-
from nova.virt.libvirt.storage import rbd_utils
24-
from nova.virt.libvirt import utils as libvirt_utils
2524

2625

2726
CEPH_MON_DUMP = r"""dumped monmap epoch 1
@@ -466,15 +465,15 @@ def test_cleanup_volumes_pending_resize(self, mock_proxy, mock_client):
466465
proxy = mock_proxy.return_value
467466
proxy.__enter__.return_value = proxy
468467
proxy.list_snaps.return_value = [
469-
{'name': libvirt_utils.RESIZE_SNAPSHOT_NAME}]
468+
{'name': rbd_utils.RESIZE_SNAPSHOT_NAME}]
470469
client = mock_client.return_value
471470
self.driver.cleanup_volumes(filter_fn)
472471

473472
remove_call = mock.call(client.__enter__.return_value.ioctx,
474473
'%s_test' % uuids.instance)
475474
rbd.remove.assert_has_calls([remove_call, remove_call])
476475
proxy.remove_snap.assert_called_once_with(
477-
libvirt_utils.RESIZE_SNAPSHOT_NAME)
476+
rbd_utils.RESIZE_SNAPSHOT_NAME)
478477
client.__enter__.assert_called_once_with()
479478
client.__exit__.assert_called_once_with(None, None, None)
480479

nova/tests/unit/virt/libvirt/test_driver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
from nova.pci import utils as pci_utils
8585
import nova.privsep.fs
8686
import nova.privsep.libvirt
87+
from nova.storage import rbd_utils
8788
from nova import test
8889
from nova.tests import fixtures as nova_fixtures
8990
from nova.tests.unit import fake_block_device
@@ -118,7 +119,6 @@
118119
from nova.virt.libvirt import migration as libvirt_migrate
119120
from nova.virt.libvirt.storage import dmcrypt
120121
from nova.virt.libvirt.storage import lvm
121-
from nova.virt.libvirt.storage import rbd_utils
122122
from nova.virt.libvirt import utils as libvirt_utils
123123
from nova.virt.libvirt import vif as libvirt_vif
124124
from nova.virt.libvirt.volume import fs as fs_drivers
@@ -22810,7 +22810,7 @@ def test_data_not_injects_with_configdrive(self, mock_image, mock_inject,
2281022810
self.assertFalse(mock_inject.called)
2281122811

2281222812
@mock.patch('nova.virt.libvirt.utils.fetch_image')
22813-
@mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver')
22813+
@mock.patch('nova.storage.rbd_utils.RBDDriver')
2281422814
@mock.patch.object(imagebackend, 'IMAGE_API')
2281522815
def test_create_fetch_image_ceph_workaround(self, mock_image, mock_rbd,
2281622816
mock_fetch):

nova/tests/unit/virt/libvirt/test_imagebackend.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@
3535
from nova import context
3636
from nova import exception
3737
from nova import objects
38+
from nova.storage import rbd_utils
3839
from nova import test
3940
from nova.tests.unit import fake_processutils
4041
from nova import utils
4142
from nova.virt.image import model as imgmodel
4243
from nova.virt import images
4344
from nova.virt.libvirt import config as vconfig
4445
from nova.virt.libvirt import imagebackend
45-
from nova.virt.libvirt.storage import rbd_utils
4646
from nova.virt.libvirt import utils as libvirt_utils
4747

4848
CONF = nova.conf.CONF
@@ -1894,7 +1894,7 @@ def test_copy_to_store_import_failed_timeout(self, mock_imgapi,
18941894
mock_imgapi.copy_image_to_store.assert_called_once_with(
18951895
self.CONTEXT, 'foo', 'store')
18961896

1897-
@mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver')
1897+
@mock.patch('nova.storage.rbd_utils.RBDDriver')
18981898
@mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API')
18991899
def test_clone_copy_to_store(self, mock_imgapi, mock_driver_):
19001900
# Call image.clone() in a way that will cause it to fall through
@@ -1921,7 +1921,7 @@ def test_clone_copy_to_store(self, mock_imgapi, mock_driver_):
19211921
# recursed after the copy-to-store operation
19221922
mock.call('fake', fake_image)])
19231923

1924-
@mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver')
1924+
@mock.patch('nova.storage.rbd_utils.RBDDriver')
19251925
@mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API')
19261926
def test_clone_copy_to_store_failed(self, mock_imgapi, mock_driver_):
19271927
# Call image.clone() in a way that will cause it to fall through
@@ -1950,7 +1950,7 @@ def test_clone_copy_to_store_failed(self, mock_imgapi, mock_driver_):
19501950
# recursed after the copy-to-store operation
19511951
mock.call('fake', fake_image)])
19521952

1953-
@mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver')
1953+
@mock.patch('nova.storage.rbd_utils.RBDDriver')
19541954
@mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API')
19551955
def test_clone_without_needed_copy(self, mock_imgapi, mock_driver_):
19561956
# Call image.clone() in a way that will cause it to pass the locations
@@ -1971,7 +1971,7 @@ def test_clone_without_needed_copy(self, mock_imgapi, mock_driver_):
19711971
mock_copy.assert_not_called()
19721972
mock_driver.is_cloneable.assert_called_once_with('fake', fake_image)
19731973

1974-
@mock.patch('nova.virt.libvirt.storage.rbd_utils.RBDDriver')
1974+
@mock.patch('nova.storage.rbd_utils.RBDDriver')
19751975
@mock.patch('nova.virt.libvirt.imagebackend.IMAGE_API')
19761976
def test_clone_copy_not_configured(self, mock_imgapi, mock_driver_):
19771977
# Call image.clone() in a way that will cause it to fail the locations

nova/virt/libvirt/driver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
import nova.privsep.libvirt
101101
import nova.privsep.path
102102
import nova.privsep.utils
103+
from nova.storage import rbd_utils
103104
from nova import utils
104105
from nova import version
105106
from nova.virt import arch
@@ -122,7 +123,6 @@
122123
from nova.virt.libvirt import migration as libvirt_migrate
123124
from nova.virt.libvirt.storage import dmcrypt
124125
from nova.virt.libvirt.storage import lvm
125-
from nova.virt.libvirt.storage import rbd_utils
126126
from nova.virt.libvirt import utils as libvirt_utils
127127
from nova.virt.libvirt import vif as libvirt_vif
128128
from nova.virt.libvirt.volume import fs

nova/virt/libvirt/imagebackend.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@
3838
from nova.image import glance
3939
import nova.privsep.libvirt
4040
import nova.privsep.path
41+
from nova.storage import rbd_utils
4142
from nova import utils
4243
from nova.virt.disk import api as disk
4344
from nova.virt.image import model as imgmodel
4445
from nova.virt import images
4546
from nova.virt.libvirt import config as vconfig
4647
from nova.virt.libvirt.storage import dmcrypt
4748
from nova.virt.libvirt.storage import lvm
48-
from nova.virt.libvirt.storage import rbd_utils
4949
from nova.virt.libvirt import utils as libvirt_utils
5050

5151
CONF = nova.conf.CONF

0 commit comments

Comments
 (0)