Add attach_nics method to PartitionInstance

We now can add all NICs with a single command!
This is also usefull once we might introduce ssc support which
requires additional verifications cross all nics.

Change-Id: Ic78686b662c97d67d6376e8b8592aa20887026f8
This commit is contained in:
Andreas Scheuring 2018-01-23 15:53:30 +01:00
parent ae261d2405
commit d0b5290a8f
3 changed files with 22 additions and 5 deletions

View File

@ -270,6 +270,21 @@ class VmPartitionInstanceTestCase(TestCase):
Exception,
self.partition_inst.attach_nic, vif)
@mock.patch.object(vm.PartitionInstance, 'attach_nic')
def test_attach_nics(self, mocked_attach_nic):
vif1 = {"address": "mac1"}
vif2 = {"address": "mac2"}
self.partition_inst.attach_nics([vif1, vif2])
mock_calls = mocked_attach_nic.call_args_list
# attach nic called 2 times
self.assertEqual(2, len(mock_calls))
# mock_calls is a list of calls
# each call is a tuple (args, kwargs)
# args is a tuple (arg1, arg2, arg3). We need the first arg [0]
self.assertEqual("mac1", mock_calls[0][0][0].mac)
self.assertEqual("mac2", mock_calls[1][0][0].mac)
def test_append_to_boot_os_specific_parameters_empty(self):
data = '1800,0,fa163ee49a98;'
self.partition_inst.append_to_boot_os_specific_parameters(data)

View File

@ -28,7 +28,6 @@ from nova_dpm.virt.dpm import constants
from nova_dpm.virt.dpm import exceptions
from nova_dpm.virt.dpm import host as Host
from nova_dpm.virt.dpm import utils
from nova_dpm.virt.dpm.vif import DPMVIF
from nova_dpm.virt.dpm import vm
from oslo_log import log as logging
from oslo_utils import importutils
@ -318,10 +317,7 @@ class DPMDriver(driver.ComputeDriver):
max_ports=constants.MAX_NICS_PER_PARTITION,
current_ports=len(network_info)
))
for vif_dict in network_info:
vif_obj = DPMVIF(vif_dict)
inst.attach_nic(vif_obj)
inst.attach_nics(network_info)
inst.set_boot_properties()
inst.launch()

View File

@ -30,6 +30,7 @@ from nova_dpm.virt.dpm.block_device import BlockDevice
from nova_dpm.virt.dpm import constants
from nova_dpm.virt.dpm import exceptions
from nova_dpm.virt.dpm import utils
from nova_dpm.virt.dpm import vif
from oslo_log import log as logging
from zhmcclient._exceptions import NotFound
from zhmcclient import HTTPError
@ -223,6 +224,11 @@ class PartitionInstance(object):
vif_obj.dpm_nic_object_id
}
def attach_nics(self, network_info):
for vif_dict in network_info:
vif_obj = vif.DPMVIF(vif_dict)
self.attach_nic(vif_obj)
def attach_nic(self, vif_obj):
# TODO(preethipy): Implement the listener flow to register for
# nic creation events