diff options
author | Tibor Frank <tifrank@cisco.com> | 2019-06-03 12:55:55 +0200 |
---|---|---|
committer | Tibor Frank <tifrank@cisco.com> | 2019-06-19 13:54:08 +0000 |
commit | 3c863def2096b573832499985e3a12bbccf82ea8 (patch) | |
tree | 91aac8216465b211dbd4c7f8b1d7887aa9ba9c7f /resources/tools/papi/vpp_papi_provider.py | |
parent | 287ef8c6dc057220e403a1493cb23450dd8db2b2 (diff) |
VAT-to-PAPI: VPPCounters
Change-Id: I5954fdd61ead9b4143f8cc4e20294cf8e199e0af
Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'resources/tools/papi/vpp_papi_provider.py')
-rwxr-xr-x | resources/tools/papi/vpp_papi_provider.py | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/resources/tools/papi/vpp_papi_provider.py b/resources/tools/papi/vpp_papi_provider.py index ee0d538fba..ded3c3069e 100755 --- a/resources/tools/papi/vpp_papi_provider.py +++ b/resources/tools/papi/vpp_papi_provider.py @@ -214,6 +214,33 @@ def process_stats(args): reply=reply, exc=repr(err))) +def process_stats_request(args): + """Process the VPP Stats requests. + + :param args: Command line arguments passed to VPP PAPI Provider. + :type args: ArgumentParser + :returns: JSON formatted string. + :rtype: str + :raises RuntimeError: If PAPI command error occurs. + """ + + try: + stats = VPPStats(args.socket) + except Exception as err: + raise RuntimeError('PAPI init failed:\n{err}'.format(err=repr(err))) + + try: + json_data = json.loads(args.data) + except ValueError as err: + raise RuntimeError('Input json string is invalid:\n{err}'. + format(err=repr(err))) + + papi_fn = getattr(stats, json_data["api_name"]) + reply = papi_fn(**json_data.get("api_args", {})) + + return json.dumps(reply) + + def main(): """Main function for the Python API provider. """ @@ -222,7 +249,8 @@ def main(): process_request = dict( request=process_json_request, dump=process_json_request, - stats=process_stats + stats=process_stats, + stats_request=process_stats_request ) parser = argparse.ArgumentParser( |