aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/DUTSetup.py
diff options
context:
space:
mode:
authorJan Gelety <jgelety@cisco.com>2017-06-20 09:53:56 +0200
committerJan Gelety <jgelety@cisco.com>2017-06-20 13:06:23 +0000
commit665b506d4f3b229e05d14eda9def5e46c56518e9 (patch)
tree2af01c96a3f56ced4eda8a7a227c820b9bd8d3bc /resources/libraries/python/DUTSetup.py
parentd02dab93f44931eca970eab4b7ed7a6f55fe479d (diff)
VIRL VPP PID fix
- use three tries to get PID of VPP process Change-Id: If72784dfc2c5600aae703dff9170c4f491a3b685 Signed-off-by: Jan Gelety <jgelety@cisco.com>
Diffstat (limited to 'resources/libraries/python/DUTSetup.py')
-rw-r--r--resources/libraries/python/DUTSetup.py47
1 files 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):