X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FDUTSetup.py;h=72602929598a42fed6d5e66b3d9afa3d35abdb71;hp=4834ba68283c456219d1f0a827f0d9d85cc62444;hb=c70b9cd6c48d71208cf729ba335ff9753e94b694;hpb=43e7440a3fea2125ecb8d6d1f4ee7f69bbf9f3ac diff --git a/resources/libraries/python/DUTSetup.py b/resources/libraries/python/DUTSetup.py index 4834ba6828..7260292959 100644 --- a/resources/libraries/python/DUTSetup.py +++ b/resources/libraries/python/DUTSetup.py @@ -106,37 +106,38 @@ class DUTSetup(object): :param node: DUT node. :type node: dict - :return: PID + :returns: PID :rtype: int :raises RuntimeError if it is not possible to get the PID. """ ssh = SSH() ssh.connect(node) - ret_code, stdout, stderr = ssh.exec_command('pidof vpp') - logger.trace(stdout) - logger.trace(stderr) + 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 = list() + for line in stdout.splitlines(): + ret_list.append(int(line)) + return ret_list - 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 + return None @staticmethod def get_vpp_pids(nodes): @@ -144,7 +145,7 @@ class DUTSetup(object): :param nodes: DUT nodes. :type nodes: dict - :return: PIDs + :returns: PIDs :rtype: dict """ @@ -185,8 +186,8 @@ class DUTSetup(object): ssh.connect(node) cryptodev = Topology.get_cryptodev(node) - cmd = 'cat /sys/bus/pci/devices/{}/sriov_numvfs'.format( - cryptodev.replace(':', r'\:')) + cmd = 'cat /sys/bus/pci/devices/{}/sriov_numvfs'.\ + format(cryptodev.replace(':', r'\:')) # Try to read number of VFs from PCI address of QAT device for _ in range(3): @@ -195,8 +196,8 @@ class DUTSetup(object): try: sriov_numvfs = int(stdout) except ValueError: - logger.trace('Reading sriov_numvfs info failed on: {}'\ - .format(node['host'])) + logger.trace('Reading sriov_numvfs info failed on: {}'. + format(node['host'])) else: if sriov_numvfs != numvfs: if force_init: @@ -204,9 +205,10 @@ class DUTSetup(object): # with numvfs DUTSetup.crypto_device_init(node, numvfs) else: - raise RuntimeError('QAT device {} is not '\ - 'initialized to {} on host: {}'.format(\ - cryptodev, numvfs, node['host'])) + raise RuntimeError('QAT device {} is not ' + 'initialized to {} on host: {}'. + format(cryptodev, numvfs, + node['host'])) break @staticmethod @@ -313,8 +315,8 @@ class DUTSetup(object): # Module is not loaded and we want to load it DUTSetup.kernel_module_load(node, module) else: - raise RuntimeError('Kernel module {} is not loaded on host: '\ - '{}'.format(module, node['host'])) + raise RuntimeError('Kernel module {} is not loaded on host: {}'. + format(module, node['host'])) @staticmethod def kernel_module_load(node, module): @@ -334,5 +336,5 @@ class DUTSetup(object): ret_code, _, _ = ssh.exec_command_sudo("modprobe {}".format(module)) if int(ret_code) != 0: - raise RuntimeError('Failed to load {} kernel module on host: '\ - '{}'.format(module, node['host'])) + raise RuntimeError('Failed to load {} kernel module on host: {}'. + format(module, node['host']))