Pass in block_device_info into PartitionInstance

The partitionInstance constructor now also takes the
block_device_info as optional kwarg.

Change-Id: Ibbfcceb671ea069e65729aed88aa2cd90e20b0d5
This commit is contained in:
Andreas Scheuring 2018-01-18 17:21:26 +01:00
parent 6c83181d89
commit 112c4cda58
3 changed files with 20 additions and 5 deletions

View File

@ -251,7 +251,18 @@ class DPMDriverInstanceTestCase(TestCase):
self.dpmdriver.spawn(mock_context, mock_inst, None, None, None, None,
[])
mocked_get_part_inst.assert_called_once_with(mock_inst, mock_context)
mocked_get_part_inst.assert_called_once_with(mock_inst, mock_context,
None)
@mock.patch.object(driver.DPMDriver, '_get_partition_instance')
def test_spawn_bdi(self, mocked_get_part_inst):
"""Make sure that block_device_info is provided to PartitionInstance"""
mock_bdm = mock.Mock()
mock_inst = mock.Mock()
self.dpmdriver.spawn(None, mock_inst, None, None, None, None,
[], block_device_info=mock_bdm)
mocked_get_part_inst.assert_called_once_with(mock_inst, None, mock_bdm)
@mock.patch.object(vm.PartitionInstance, 'get_partition')
@mock.patch.object(vm.PartitionInstance, 'create')

View File

@ -70,11 +70,13 @@ class DPMDriver(driver.ComputeDriver):
self.volume_drivers = self._get_volume_drivers()
def _get_partition_instance(self, instance, context=None):
def _get_partition_instance(self, instance, context=None,
block_device_info=None):
if instance.image_ref != '':
raise exceptions.BootFromImageNotSupported()
else:
return vm.PartitionInstance(instance, self._cpc, context)
return vm.PartitionInstance(instance, self._cpc, context,
block_device_info)
def init_host(self, host):
"""Driver initialization of the hypervisor node"""
@ -303,7 +305,8 @@ class DPMDriver(driver.ComputeDriver):
admin_password, allocations, network_info=None,
block_device_info=None):
inst = self._get_partition_instance(instance, context)
inst = self._get_partition_instance(instance, context,
block_device_info)
# The creation of NICs is limited in DPM by the partitions
# boot-os-specific-parameters property. It is used to pass additional

View File

@ -119,11 +119,12 @@ def cpcsubset_partition_list(cpc):
class PartitionInstance(object):
def __init__(self, instance, cpc, context=None):
def __init__(self, instance, cpc, context=None, block_device_info=None):
self.instance = instance
self.cpc = cpc
self.partition = self.get_partition()
self.context = context
self.block_device_info = block_device_info
@staticmethod
def create_object(instance, cpc, flavor=None):