aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/papi/vpp_papi_provider.py
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2021-03-30 16:31:26 +0200
committerVratko Polak <vrpolak@cisco.com>2021-03-30 16:31:26 +0200
commit0d65bbb9619720ecc6bca1529acfb3a5239d9719 (patch)
tree32feba37ff8a9ea237b126d04b9f86eb2c4f8deb /resources/tools/papi/vpp_papi_provider.py
parent33f1fd4e8066802d596c2e59387a384788c21315 (diff)
PAPI stats: Use list as argument to ls
In the VPP PAPI stats code, the "ls" argument has always [0] been named "patterns", suggesting it expects a list of strings. In the CSIT utility we have always [1] been using it wrong (passing a single string), but it happened to work as VPP code had a workaround [2] for that. This workaround that got removed by accident in [3], and will be reintroduced in [4]. This change fixes occasional failures in CSIT (if merged sooner than [4]), mainly useful in aviding such failures during bisection. [0] https://gerrit.fd.io/r/c/vpp/+/14584/4/src/vpp-api/python/vpp_papi/vpp_stats.py#122 [1] https://gerrit.fd.io/r/c/csit/+/18419/13/resources/tools/papi/vpp_papi_provider.py#181 [2] https://gerrit.fd.io/r/c/vpp/+/14584/4/src/vpp-api/python/vpp_papi/vpp_stats.py#64 [3] https://gerrit.fd.io/r/c/vpp/+/31678 [4] https://gerrit.fd.io/r/c/vpp/+/31817 Change-Id: Ic0f9d906be064b386b67154ba738646c4362aa2b Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/tools/papi/vpp_papi_provider.py')
-rwxr-xr-xresources/tools/papi/vpp_papi_provider.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/resources/tools/papi/vpp_papi_provider.py b/resources/tools/papi/vpp_papi_provider.py
index bd333b1e87..c9a43447f9 100755
--- a/resources/tools/papi/vpp_papi_provider.py
+++ b/resources/tools/papi/vpp_papi_provider.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2020 Cisco and/or its affiliates.
+# Copyright (c) 2021 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -226,7 +226,12 @@ def process_stats(args):
reply = list()
for path in json_data:
- directory = stats.ls(path)
+ # 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)