aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--resources/libraries/python/PapiExecutor.py2
-rwxr-xr-xresources/tools/papi/vpp_papi_provider.py18
2 files changed, 7 insertions, 13 deletions
diff --git a/resources/libraries/python/PapiExecutor.py b/resources/libraries/python/PapiExecutor.py
index 76d7daf3ed..7bfc8614a5 100644
--- a/resources/libraries/python/PapiExecutor.py
+++ b/resources/libraries/python/PapiExecutor.py
@@ -872,6 +872,8 @@ class PapiExecutor:
is "stats".
- the second parameter must be 'path' as it is used by PapiExecutor
method 'add'.
+ - even if the parameter contains multiple paths, there is only one
+ reply item (for each .add).
"""
def __init__(self, node):
diff --git a/resources/tools/papi/vpp_papi_provider.py b/resources/tools/papi/vpp_papi_provider.py
index c9a43447f9..ff52de501b 100755
--- a/resources/tools/papi/vpp_papi_provider.py
+++ b/resources/tools/papi/vpp_papi_provider.py
@@ -209,6 +209,8 @@ def process_json_request(args):
def process_stats(args):
"""Process the VPP Stats.
+ The reply contains single item covering all paths.
+
:param args: Command line arguments passed to VPP PAPI Provider.
:type args: ArgumentParser
:returns: JSON formatted string.
@@ -221,19 +223,9 @@ def process_stats(args):
except Exception as err:
raise RuntimeError(f"PAPI init failed:\n{err!r}")
- json_data = json.loads(args.data)
-
- reply = list()
-
- for path in json_data:
- # The ls method can match multiple patterns,
- # but we feed it one path at a time anyway, because the caller
- # expect results in a list, one item per path.
- # Most VPP versions understand a string is a single pattern,
- # but some blindly iterate (as if it was a list of chars).
- directory = stats.ls([path])
- data = stats.dump(directory)
- reply.append(data)
+ paths = json.loads(args.data)
+ directory = stats.ls(paths)
+ reply = [stats.dump(directory)]
try:
return json.dumps(reply)