From 665b506d4f3b229e05d14eda9def5e46c56518e9 Mon Sep 17 00:00:00 2001 From: Jan Gelety Date: Tue, 20 Jun 2017 09:53:56 +0200 Subject: [PATCH] VIRL VPP PID fix - use three tries to get PID of VPP process Change-Id: If72784dfc2c5600aae703dff9170c4f491a3b685 Signed-off-by: Jan Gelety --- resources/libraries/python/DUTSetup.py | 47 +++++++++++++++++----------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/resources/libraries/python/DUTSetup.py b/resources/libraries/python/DUTSetup.py index 4834ba6828..efc588783a 100644 --- a/resources/libraries/python/DUTSetup.py +++ b/resources/libraries/python/DUTSetup.py @@ -113,30 +113,31 @@ class DUTSetup(object): ssh = SSH() ssh.connect(node) - ret_code, stdout, stderr = ssh.exec_command('pidof vpp') - logger.trace(stdout) - logger.trace(stderr) - - if int(ret_code) != 0: - logger.debug('Not possible to get PID of VPP process on node: ' - '{0}\n {1}'.format(node['host'], stdout + stderr)) - raise RuntimeError('Not possible to get PID of VPP process on node:' - ' {}'.format(node['host'])) - - if len(stdout.splitlines()) == 1: - return int(stdout) - elif len(stdout.splitlines()) == 0: - logger.debug("No VPP PID found on node {0}". - format(node['host'])) - return None - else: - logger.debug("More then one VPP PID found on node {0}". - format(node['host'])) - ret_list = () - for line in stdout.splitlines(): - ret_list.append(int(line)) - return ret_list + for i in range(3): + logger.trace('Try {}: Get VPP PID'.format(i)) + ret_code, stdout, stderr = ssh.exec_command('pidof vpp') + + if int(ret_code) != 0: + raise RuntimeError('Not possible to get PID of VPP process ' + 'on node: {0}\n {1}'. + format(node['host'], stdout + stderr)) + + if len(stdout.splitlines()) == 1: + return int(stdout) + elif len(stdout.splitlines()) == 0: + logger.debug("No VPP PID found on node {0}". + format(node['host'])) + continue + else: + logger.debug("More then one VPP PID found on node {0}". + format(node['host'])) + ret_list = () + for line in stdout.splitlines(): + ret_list.append(int(line)) + return ret_list + + return None @staticmethod def get_vpp_pids(nodes): -- 2.16.6