From d9043ccc5fac5d0e82871f1a7449feed36048fe0 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Wed, 21 Sep 2022 15:49:19 -0400 Subject: kuksa-viss-client: add patch to fix command-line tool Add a patch for kuksa-viss-client to fix the cmd2 Python module usage to work with newer versions of cmd2. Bug-AGL: SPEC-4552 Signed-off-by: Scott Murray Change-Id: I7599f2e07b4ad3d57796a06677d5fda170240229 --- ...a_viss_client-Update-cmd2-completer-usage.patch | 104 +++++++++++++++++++++ .../kuksa-val/kuksa-viss-client_git.bb | 4 +- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 recipes-connectivity/kuksa-val/kuksa-viss-client/0002-kuksa_viss_client-Update-cmd2-completer-usage.patch diff --git a/recipes-connectivity/kuksa-val/kuksa-viss-client/0002-kuksa_viss_client-Update-cmd2-completer-usage.patch b/recipes-connectivity/kuksa-val/kuksa-viss-client/0002-kuksa_viss_client-Update-cmd2-completer-usage.patch new file mode 100644 index 000000000..944d8bb1a --- /dev/null +++ b/recipes-connectivity/kuksa-val/kuksa-viss-client/0002-kuksa_viss_client-Update-cmd2-completer-usage.patch @@ -0,0 +1,104 @@ +From 525122ade01998e34eabce74cb24d1c427c4b48d Mon Sep 17 00:00:00 2001 +From: Scott Murray +Date: Wed, 21 Sep 2022 13:27:49 -0400 +Subject: [PATCH] kuksa_viss_client: Update cmd2 completer usage + +Update cmd2 usage to avoid using internal methods and fix breakage +with newer versions of the cmd2 module. + +Upstream-Status: pending +Signed-off-by: Scott Murray +--- + kuksa_viss_client/__main__.py | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/kuksa_viss_client/__main__.py b/kuksa_viss_client/__main__.py +index 4d61433..d0b1af3 100755 +--- a/kuksa_viss_client/__main__.py ++++ b/kuksa_viss_client/__main__.py +@@ -14,7 +14,7 @@ from typing import Dict, List + import queue, time, os + from pygments import highlight, lexers, formatters + from cmd2 import Cmd, with_argparser, with_category, Cmd2ArgumentParser, CompletionItem +-from cmd2.utils import CompletionError, basic_complete ++from cmd2.exceptions import CompletionError + import functools, subprocess + DEFAULT_SERVER_ADDR = "127.0.0.1" + DEFAULT_SERVER_PORT = 8090 +@@ -82,7 +82,7 @@ class TestClient(Cmd): + self.pathCompletionItems.append(CompletionItem(prefix + key+seperator, "Children of branch "+prefix+key)) + + +- return basic_complete(text, line, begidx, endidx, self.pathCompletionItems) ++ return Cmd.basic_complete(self, text, line, begidx, endidx, self.pathCompletionItems) + + def subscribeCallback(self, path, attr, resp): + print(path, attr) +@@ -93,7 +93,7 @@ class TestClient(Cmd): + self.pathCompletionItems = [] + for id in self.subscribeIdToPath.keys(): + self.pathCompletionItems.append(CompletionItem(id)) +- return basic_complete(text, line, begidx, endidx, self.pathCompletionItems) ++ return Cmd.basic_complete(self, text, line, begidx, endidx, self.pathCompletionItems) + + COMM_SETUP_COMMANDS = "Communication Set-up Commands" + VISS_COMMANDS = "Kuksa Interaction Commands" +@@ -106,44 +106,44 @@ class TestClient(Cmd): + ap_authorize = argparse.ArgumentParser() + tokenfile_completer_method = functools.partial(Cmd.path_complete, + path_filter=lambda path: (os.path.isdir(path) or path.endswith(".token"))) +- ap_authorize.add_argument('Token', help='JWT(or the file storing the token) for authorizing the client.', completer_method=tokenfile_completer_method) ++ ap_authorize.add_argument('Token', help='JWT(or the file storing the token) for authorizing the client.', completer=tokenfile_completer_method) + ap_setServerAddr = argparse.ArgumentParser() + ap_setServerAddr.add_argument('IP', help='VISS Server IP Address', default=DEFAULT_SERVER_ADDR) + ap_setServerAddr.add_argument('Port', type=int, help='VISS Server Websocket Port', default=DEFAULT_SERVER_PORT) + + ap_setValue = argparse.ArgumentParser() +- ap_setValue.add_argument("Path", help="Path to be set", completer_method=path_completer) ++ ap_setValue.add_argument("Path", help="Path to be set", completer=path_completer) + ap_setValue.add_argument("Value", help="Value to be set") + ap_setValue.add_argument("Attribute", help="Attribute to be set", default="value", nargs=(0,1)) + + ap_getValue = argparse.ArgumentParser() +- ap_getValue.add_argument("Path", help="Path to be read", completer_method=path_completer) ++ ap_getValue.add_argument("Path", help="Path to be read", completer=path_completer) + ap_getValue.add_argument("Attribute", help="Attribute to be get", default="value", nargs=(0,1)) + + ap_setTargetValue = argparse.ArgumentParser() +- ap_setTargetValue.add_argument("Path", help="Path whose target value to be set", completer_method=path_completer) ++ ap_setTargetValue.add_argument("Path", help="Path whose target value to be set", completer=path_completer) + ap_setTargetValue.add_argument("Value", help="Value to be set") + + ap_getTargetValue = argparse.ArgumentParser() +- ap_getTargetValue.add_argument("Path", help="Path whose target value to be read", completer_method=path_completer) ++ ap_getTargetValue.add_argument("Path", help="Path whose target value to be read", completer=path_completer) + + ap_subscribe = argparse.ArgumentParser() +- ap_subscribe.add_argument("Path", help="Path to be subscribed", completer_method=path_completer) +- ap_subscribe.add_argument("Attribute", help="Attribute to be subscribed", default="value", completer_method=path_completer, nargs=(0,1)) ++ ap_subscribe.add_argument("Path", help="Path to be subscribed", completer=path_completer) ++ ap_subscribe.add_argument("Attribute", help="Attribute to be subscribed", default="value", completer=path_completer, nargs=(0,1)) + + ap_unsubscribe = argparse.ArgumentParser() +- ap_unsubscribe.add_argument("SubscribeId", help="Corresponding subscription Id", completer_method=subscriptionIdCompleter) ++ ap_unsubscribe.add_argument("SubscribeId", help="Corresponding subscription Id", completer=subscriptionIdCompleter) + + ap_getMetaData = argparse.ArgumentParser() +- ap_getMetaData.add_argument("Path", help="Path whose metadata is to be read", completer_method=path_completer) ++ ap_getMetaData.add_argument("Path", help="Path whose metadata is to be read", completer=path_completer) + ap_updateMetaData = argparse.ArgumentParser() +- ap_updateMetaData.add_argument("Path", help="Path whose MetaData is to update", completer_method=path_completer) ++ ap_updateMetaData.add_argument("Path", help="Path whose MetaData is to update", completer=path_completer) + ap_updateMetaData.add_argument("Json", help="MetaData to update. Note, only attributes can be update, if update children or the whole vss tree, use `updateVSSTree` instead.") + + ap_updateVSSTree = argparse.ArgumentParser() + jsonfile_completer_method = functools.partial(Cmd.path_complete, + path_filter=lambda path: (os.path.isdir(path) or path.endswith(".json"))) +- ap_updateVSSTree.add_argument("Json", help="Json tree to update VSS", completer_method=jsonfile_completer_method) ++ ap_updateVSSTree.add_argument("Json", help="Json tree to update VSS", completer=jsonfile_completer_method) + + + # Constructor +-- +2.37.3 + diff --git a/recipes-connectivity/kuksa-val/kuksa-viss-client_git.bb b/recipes-connectivity/kuksa-val/kuksa-viss-client_git.bb index e2830a8c3..67f4af254 100644 --- a/recipes-connectivity/kuksa-val/kuksa-viss-client_git.bb +++ b/recipes-connectivity/kuksa-val/kuksa-viss-client_git.bb @@ -9,7 +9,9 @@ DEPENDS = "python3-setuptools-git-versioning-native" require kuksa-val.inc -SRC_URI += "file://0001-Update-kuksa-viss-client-to-support-Python-3.10.patch" +SRC_URI += "file://0001-Update-kuksa-viss-client-to-support-Python-3.10.patch \ + file://0002-kuksa_viss_client-Update-cmd2-completer-usage.patch \ +" inherit setuptools3 -- cgit 1.2.3-korg