From 223fbd36b7ec433040f5b95dcbaacf46f6939b79 Mon Sep 17 00:00:00 2001 From: Eric Harney Date: Tue, 8 Sep 2015 13:31:31 -0400 Subject: [PATCH] Add migrate_volume to BaseVD migrate_volume() only exists in the deprecated VolumeDriver() class and not BaseVD. This means that drivers inheriting from *VD hit attribute errors when trying to call driver.migrate_volume(). I suspect this indicates that we should rework some of our abc class structure a little bit, but this seems like a reasonable fix for now. Related-Bug: #1478987 Related-Bug: #1471807 Closes-Bug: #1493286 Change-Id: I3d555507416606db265b8ebe335b51a08fe32328 --- cinder/tests/unit/test_glusterfs.py | 13 +++++++++++++ cinder/volume/driver.py | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/cinder/tests/unit/test_glusterfs.py b/cinder/tests/unit/test_glusterfs.py index 776acafa2..1ab471c4f 100644 --- a/cinder/tests/unit/test_glusterfs.py +++ b/cinder/tests/unit/test_glusterfs.py @@ -1792,3 +1792,16 @@ class GlusterFsDriverTestCase(test.TestCase): mock_upload_volume.assert_called_once_with( mock.ANY, mock.ANY, mock.ANY, upload_path) self.assertEqual(1, mock_create_temporary_file.call_count) + + def test_migrate_volume_is_there(self): + """Ensure that driver.migrate_volume() is there.""" + + drv = self._driver + + ctxt = context.RequestContext('fake_user', 'fake_project') + volume = self._simple_volume() + ret = drv.migrate_volume(ctxt, + volume, + mock.sentinel.host) + + self.assertEqual((False, None), ret) diff --git a/cinder/volume/driver.py b/cinder/volume/driver.py index f8378871b..2b3f2a540 100644 --- a/cinder/volume/driver.py +++ b/cinder/volume/driver.py @@ -1396,6 +1396,14 @@ class BaseVD(object): """ return None + def migrate_volume(self, context, volume, host): + """Migrate volume stub. + + This is for drivers that don't implement an enhanced version + of this operation. + """ + return (False, None) + @six.add_metaclass(abc.ABCMeta) class LocalVD(object): -- 2.45.2