diff options
Diffstat (limited to 'vswitches')
-rw-r--r-- | vswitches/ovs.py | 3 | ||||
-rw-r--r-- | vswitches/vpp_dpdk_vhost.py | 19 |
2 files changed, 12 insertions, 10 deletions
diff --git a/vswitches/ovs.py b/vswitches/ovs.py index 12620e22..7e16c142 100644 --- a/vswitches/ovs.py +++ b/vswitches/ovs.py @@ -48,7 +48,8 @@ class IVSwitchOvs(IVSwitch, tasks.Process): self._vswitchd_pidfile_path = os.path.join(settings.getValue('TOOLS')['ovs_var_tmp'], "{}.pid".format(self._proc_name)) self._logger = logging.getLogger(__name__) - self._expect = r'bridge|INFO|{}'.format(self._proc_name) + # sign '|' must be escaped or avoided, otherwise it is handled as 'or' by regex + self._expect = r'bridge.INFO.{}'.format(self._proc_name) self._timeout = 30 self._bridges = {} self._vswitchd_args = ['--pidfile=' + self._vswitchd_pidfile_path, diff --git a/vswitches/vpp_dpdk_vhost.py b/vswitches/vpp_dpdk_vhost.py index 317f3798..2ac70a1a 100644 --- a/vswitches/vpp_dpdk_vhost.py +++ b/vswitches/vpp_dpdk_vhost.py @@ -158,16 +158,17 @@ class VppDpdkVhost(IVSwitch, tasks.Process): Kills ``vpp`` """ - # try to get VPP pid - output = self.run_vppctl(['show', 'version', 'verbose']) - match = re.search(r'Current PID:\s*([0-9]+)', output[0]) - if match: - vpp_pid = match.group(1) - tasks.terminate_task(vpp_pid, logger=self._logger) + if self.is_running(): + # try to get VPP pid + output = self.run_vppctl(['show', 'version', 'verbose']) + match = re.search(r'Current PID:\s*([0-9]+)', output[0]) + if match: + vpp_pid = match.group(1) + tasks.terminate_task(vpp_pid, logger=self._logger) - # in case, that pid was not detected or sudo envelope - # has not been terminated yet - tasks.Process.kill(self, signal, sleep) + # in case, that pid was not detected or sudo envelope + # has not been terminated yet + tasks.Process.kill(self, signal, sleep) def get_version(self): """See IVswitch for general description |