diff options
Diffstat (limited to 'vswitches/ovs_vanilla.py')
-rw-r--r-- | vswitches/ovs_vanilla.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/vswitches/ovs_vanilla.py b/vswitches/ovs_vanilla.py index cfde3b45..83c52050 100644 --- a/vswitches/ovs_vanilla.py +++ b/vswitches/ovs_vanilla.py @@ -16,6 +16,7 @@ """ import logging +import time from conf import settings from vswitches.ovs import IVSwitchOvs from src.ovs import DPCtl @@ -57,10 +58,14 @@ class OvsVanilla(IVSwitchOvs): tasks.run_task(tap_cmd_list, self._logger, 'Deleting ' + tapx, False) self._vport_id = 0 - super(OvsVanilla, self).stop() + # remove datapath before vswitch shutdown dpctl = DPCtl() dpctl.del_dp() + super(OvsVanilla, self).stop() + + # give vswitch time to terminate before modules are removed + time.sleep(5) self._module_manager.remove_modules() def add_phy_port(self, switch_name): @@ -70,10 +75,8 @@ class OvsVanilla(IVSwitchOvs): See IVswitch for general description """ if self._current_id == len(self._ports): - self._logger.error("Can't add port! There are only " + - len(self._ports) + " ports " + - "defined in config!") - raise RuntimeError('Failed to add phy port') + raise RuntimeError("Can't add phy port! There are only {} ports defined " + "by WHITELIST_NICS parameter!".format(len(self._ports))) if not self._ports[self._current_id]: self._logger.error("Can't detect device name for NIC %s", self._current_id) raise ValueError("Invalid device name for %s" % self._current_id) |