Merge "Override the 'get' method in DriverBlockDevice class" into stable/rocky

This commit is contained in:
Zuul 2019-04-17 00:01:05 +00:00 committed by Gerrit Code Review
commit 05fb69dedd
2 changed files with 13 additions and 2 deletions

View File

@ -186,7 +186,6 @@ class TestDriverBlockDevice(test.NoDBTestCase):
'destination_type': 'volume',
'connection_info': '{"fake": "connection_info"}',
'snapshot_id': 'fake-snapshot-id-1',
'volume_id': 'fake-volume-id-2',
'boot_index': -1})
volblank_driver_bdm = {
@ -372,6 +371,7 @@ class TestDriverBlockDevice(test.NoDBTestCase):
self.assertEqual(test_bdm._bdm_obj.id, 3)
self.assertEqual(test_bdm.volume_id, 'fake-volume-id-1')
self.assertEqual(test_bdm.volume_size, 8)
self.assertEqual('fake-volume-id-1', test_bdm.get('volume_id'))
def test_driver_snapshot_block_device(self):
self._test_driver_device("volsnapshot")
@ -382,6 +382,7 @@ class TestDriverBlockDevice(test.NoDBTestCase):
self.assertEqual(test_bdm.snapshot_id, 'fake-snapshot-id-1')
self.assertEqual(test_bdm.volume_id, 'fake-volume-id-2')
self.assertEqual(test_bdm.volume_size, 3)
self.assertEqual('fake-snapshot-id-1', test_bdm.get('snapshot_id'))
def test_driver_image_block_device(self):
self._test_driver_device('volimage')
@ -391,6 +392,7 @@ class TestDriverBlockDevice(test.NoDBTestCase):
self.assertEqual(test_bdm._bdm_obj.id, 5)
self.assertEqual(test_bdm.image_id, 'fake-image-id-1')
self.assertEqual(test_bdm.volume_size, 1)
self.assertEqual('fake-image-id-1', test_bdm.get('image_id'))
def test_driver_image_block_device_destination_local(self):
self._test_driver_device('volimage')
@ -406,8 +408,9 @@ class TestDriverBlockDevice(test.NoDBTestCase):
test_bdm = self.driver_classes['volblank'](
self.volblank_bdm)
self.assertEqual(6, test_bdm._bdm_obj.id)
self.assertEqual('fake-volume-id-2', test_bdm.volume_id)
self.assertIsNone(test_bdm.volume_id)
self.assertEqual(3, test_bdm.volume_size)
self.assertIsNone(test_bdm.get('volume_id'))
def _test_call_wait_func(self, delete_on_termination, delete_fail=False):
test_bdm = self.driver_classes['volume'](self.volume_bdm)

View File

@ -171,6 +171,14 @@ class DriverBlockDevice(dict):
"""Transform bdm to the format that is passed to drivers."""
raise NotImplementedError()
def get(self, name, default=None):
if name in self._proxy_as_attr:
return getattr(self._bdm_obj, name)
elif name in self._fields:
return self[name]
else:
return super(DriverBlockDevice, self).get(name, default)
def legacy(self):
"""Basic legacy transformation.