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
This commit is contained in:
Eric Harney 2015-09-08 13:31:31 -04:00
parent 8e63f4da54
commit 223fbd36b7
2 changed files with 21 additions and 0 deletions

View File

@ -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)

View File

@ -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):