Remove network information from IOVisor vif

IOVisor vif driver fails with some network names
because of schema usage in ifc_ctl, so this changeset
removes the network name along to the ifc_ctl

Change-Id: If91591acd95cd965ed2b8738136f2bd3d7bc4b0b
Closes-Bug: #1527370
Signed-off-by: Muawia Khan <muawia@plumgrid.com>
This commit is contained in:
Muawia Khan 2016-03-30 14:43:34 +05:00
parent fcb3dbf870
commit 5dc7bcee56
2 changed files with 16 additions and 11 deletions

View File

@ -927,15 +927,24 @@ class LibvirtVifTestCase(test.NoDBTestCase):
d = vif.LibvirtGenericVIFDriver() d = vif.LibvirtGenericVIFDriver()
with mock.patch.object(utils, 'execute') as execute: with mock.patch.object(utils, 'execute') as execute:
execute.side_effect = processutils.ProcessExecutionError execute.side_effect = processutils.ProcessExecutionError
d.unplug(self.instance, self.vif_ivs) d.unplug(self.instance, self.vif_iovisor)
@mock.patch('nova.network.linux_net.device_exists') @mock.patch('nova.network.linux_net.device_exists')
def test_plug_iovisor(self, device_exists): def test_plug_iovisor(self, device_exists):
device_exists.return_value = True device_exists.return_value = True
d = vif.LibvirtGenericVIFDriver() d = vif.LibvirtGenericVIFDriver()
with mock.patch.object(utils, 'execute') as execute: with mock.patch.object(utils, 'execute') as execute:
execute.side_effect = processutils.ProcessExecutionError d.plug(self.instance, self.vif_iovisor)
d.plug(self.instance, self.vif_ivs) execute.assert_has_calls([
mock.call('ifc_ctl', 'gateway', 'add_port',
'tap-xxx-yyy-zzz', run_as_root=True),
mock.call('ifc_ctl', 'gateway', 'ifup',
'tap-xxx-yyy-zzz',
'access_vm', self.vif_iovisor['id'],
self.vif_iovisor['address'],
'pgtag2=%s' % self.vif_iovisor['network']['id'],
'pgtag1=%s' % self.instance.project_id,
run_as_root=True)])
def test_unplug_vrouter_with_details(self): def test_unplug_vrouter_with_details(self):
d = vif.LibvirtGenericVIFDriver() d = vif.LibvirtGenericVIFDriver()

View File

@ -647,10 +647,9 @@ class LibvirtGenericVIFDriver(object):
utils.execute('ifc_ctl', 'gateway', 'add_port', dev, utils.execute('ifc_ctl', 'gateway', 'add_port', dev,
run_as_root=True) run_as_root=True)
utils.execute('ifc_ctl', 'gateway', 'ifup', dev, utils.execute('ifc_ctl', 'gateway', 'ifup', dev,
'access_vm', 'access_vm', iface_id, vif['address'],
vif['network']['label'] + "_" + iface_id, 'pgtag2=%s' % net_id, 'pgtag1=%s' % tenant_id,
vif['address'], 'pgtag2=%s' % net_id, run_as_root=True)
'pgtag1=%s' % tenant_id, run_as_root=True)
except processutils.ProcessExecutionError: except processutils.ProcessExecutionError:
LOG.exception(_LE("Failed while plugging vif"), instance=instance) LOG.exception(_LE("Failed while plugging vif"), instance=instance)
@ -912,13 +911,10 @@ class LibvirtGenericVIFDriver(object):
Delete network device and to their respective Delete network device and to their respective
connection to the Virtual Domain in PLUMgrid Platform. connection to the Virtual Domain in PLUMgrid Platform.
""" """
iface_id = vif['id']
dev = self.get_vif_devname(vif) dev = self.get_vif_devname(vif)
try: try:
utils.execute('ifc_ctl', 'gateway', 'ifdown', utils.execute('ifc_ctl', 'gateway', 'ifdown',
dev, 'access_vm', dev, run_as_root=True)
vif['network']['label'] + "_" + iface_id,
vif['address'], run_as_root=True)
utils.execute('ifc_ctl', 'gateway', 'del_port', dev, utils.execute('ifc_ctl', 'gateway', 'del_port', dev,
run_as_root=True) run_as_root=True)
linux_net.delete_net_dev(dev) linux_net.delete_net_dev(dev)