aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/VPPUtil.py
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2019-02-27 12:55:56 +0100
committerTibor Frank <tifrank@cisco.com>2019-03-06 15:05:46 +0000
commit935734b04269b8fe5348e1c2b168dd5c6cd9339a (patch)
tree667df6b28133d46066fd142b6cf716dfe192e4ba /resources/libraries/python/VPPUtil.py
parentddbfd9e68e81e77bd253c8b6cd81839ec3bd2715 (diff)
CSIT-1450: PAPI executor
Change-Id: I4c756cc4b29901184594a728f6184c30cadd9c1a Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/libraries/python/VPPUtil.py')
-rw-r--r--resources/libraries/python/VPPUtil.py77
1 files changed, 17 insertions, 60 deletions
diff --git a/resources/libraries/python/VPPUtil.py b/resources/libraries/python/VPPUtil.py
index b3f471a33d..1bc1b4358e 100644
--- a/resources/libraries/python/VPPUtil.py
+++ b/resources/libraries/python/VPPUtil.py
@@ -20,7 +20,6 @@ from robot.api import logger
from resources.libraries.python.Constants import Constants
from resources.libraries.python.DUTSetup import DUTSetup
from resources.libraries.python.PapiExecutor import PapiExecutor
-from resources.libraries.python.PapiErrors import PapiError
from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error
from resources.libraries.python.topology import NodeType
from resources.libraries.python.VatExecutor import VatExecutor
@@ -140,49 +139,26 @@ class VPPUtil(object):
@staticmethod
def vpp_show_version(node, verbose=False):
- """Run "show_version" API command.
+ """Run "show_version" PAPI command.
:param node: Node to run command on.
:param verbose: Show version, compile date and compile location if True
otherwise show only version.
:type node: dict
:type verbose: bool
- :raises PapiError: If no reply received for show_version API command.
"""
- # TODO: move composition of api data to separate method
- api_data = list()
- api = dict(api_name='show_version')
- api_args = dict()
- api['api_args'] = api_args
- api_data.append(api)
-
- api_reply = None
- with PapiExecutor(node) as papi_executor:
- papi_executor.execute_papi(api_data)
- try:
- papi_executor.papi_should_have_passed()
- except AssertionError:
- raise RuntimeError('Failed to get VPP version on host: {host}'.
- format(host=node['host']))
- api_reply = papi_executor.get_papi_reply()
-
- if api_reply is not None:
- version_data = api_reply[0]['api_reply']['show_version_reply']
- ver = version_data['version'].rstrip('\0x00')
- if verbose:
- date = version_data['build_date'].rstrip('\0x00')
- loc = version_data['build_directory'].rstrip('\0x00')
- version = \
- 'VPP Version: {ver}\n' \
- 'Compile date: {date}\n' \
- 'Compile location: {loc}\n '\
- .format(ver=ver, date=date, loc=loc)
- else:
- version = 'VPP version:{ver}'.format(ver=ver)
- logger.info(version)
- else:
- raise PapiError('No reply received for show_version API command on '
- 'host {host}'.format(host=node['host']))
+
+ with PapiExecutor(node) as papi_exec:
+ papi_resp = papi_exec.add('show_version').execute_should_pass()
+ data = papi_resp.reply[0]['api_reply']['show_version_reply']
+ version = ('VPP version: {ver}\n'.
+ format(ver=data['version'].rstrip('\0x00')))
+ if verbose:
+ version += ('Compile date: {date}\n'
+ 'Compile location: {loc}\n '.
+ format(date=data['build_date'].rstrip('\0x00'),
+ loc=data['build_directory'].rstrip('\0x00')))
+ logger.info(version)
@staticmethod
def vpp_show_version_verbose(node):
@@ -326,27 +302,8 @@ class VPPUtil(object):
:type node: dict
:returns: VPP thread data.
:rtype: list
- :raises RuntimeError: If failed to run command on host.
- :raises PapiError: If no API reply received.
"""
- api_data = list()
- api = dict(api_name='show_threads')
- api_args = dict()
- api['api_args'] = api_args
- api_data.append(api)
-
- with PapiExecutor(node) as papi_executor:
- papi_executor.execute_papi(api_data)
- try:
- papi_executor.papi_should_have_passed()
- api_reply = papi_executor.get_papi_reply()
- except AssertionError:
- raise RuntimeError('Failed to run {api_name} on host '
- '{host}!'.format(host=node['host'], **api))
-
- if api_reply:
- return \
- api_reply[0]['api_reply']['show_threads_reply']['thread_data']
- else:
- raise PapiError('No reply received for {api_name} on host {host}!'.
- format(host=node['host'], **api))
+
+ with PapiExecutor(node) as papi_exec:
+ resp = papi_exec.add('show_threads').execute_should_pass()
+ return resp.reply[0]['api_reply']['show_threads_reply']['thread_data']