From 54ef381ec92148015cbd743a1b30771cca22f80b Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 11 Oct 2022 16:00:28 -0400 Subject: kuksa-val: Upgrade to latest Changes: - Upgrade kuksa-val and kuksa-viss-client to a commit that includes the 0.2.5 release tag and some fixes past it. The patches for each have been updated against the newer version, with backported ones dropped. - The affected recipes have been updated to include some new gRPC tooling dependencies, and a recipe for a new jsonpath-ng dependency has been added. - Rework the kuksa-dbc-feeder recipe for the splitting out of the example feeders from the main kuksa-val repository. - Rework our local kuksa-dbc-feeder patches against the newer version, as upstream has made several improvements. Also drop the duplicate filtering feature patch, as it seems likely we will not need it going forward. - Update the kuksa-dbc-feeder configuration files to work with the new version. Notable is a change in the engine speed signal naming in VSS 3.0, which is the new default for VSS schema. - The kuksa-val and kuksa-val-feeders trees have changed their licensing from EPL-1.0 to Apache-2.0, update the recipes accordingly. Bug-AGL: SPEC-4587 Signed-off-by: Scott Murray Change-Id: Ibc990767219f79af95929e86361e66beda2d0c9e --- ...-kuksa-viss-client-to-support-Python-3.10.patch | 57 ----------- ...a_viss_client-Update-cmd2-completer-usage.patch | 105 +++++++++++++++++++++ ...a_viss_client-Update-cmd2-completer-usage.patch | 104 -------------------- 3 files changed, 105 insertions(+), 161 deletions(-) delete mode 100644 recipes-connectivity/kuksa-val/kuksa-viss-client/0001-Update-kuksa-viss-client-to-support-Python-3.10.patch create mode 100644 recipes-connectivity/kuksa-val/kuksa-viss-client/0001-kuksa_viss_client-Update-cmd2-completer-usage.patch delete mode 100644 recipes-connectivity/kuksa-val/kuksa-viss-client/0002-kuksa_viss_client-Update-cmd2-completer-usage.patch (limited to 'recipes-connectivity/kuksa-val/kuksa-viss-client') diff --git a/recipes-connectivity/kuksa-val/kuksa-viss-client/0001-Update-kuksa-viss-client-to-support-Python-3.10.patch b/recipes-connectivity/kuksa-val/kuksa-viss-client/0001-Update-kuksa-viss-client-to-support-Python-3.10.patch deleted file mode 100644 index f1813e58..00000000 --- a/recipes-connectivity/kuksa-val/kuksa-viss-client/0001-Update-kuksa-viss-client-to-support-Python-3.10.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 9c0d93ef3b7266037a1c8fe7e49790f9119dae28 Mon Sep 17 00:00:00 2001 -From: Erik Jaegervall -Date: Wed, 31 Aug 2022 14:41:07 +0200 -Subject: [PATCH] Update kuksa-viss-client to support Python 3.10 - -SSH checks in Python 3.10 are stricter. -Using current version with Python 3.10 gives the following error: - -Disconnected!! Cannot create a client socket with a PROTOCOL_TLS_SERVER context (_ssl.c:801) - -Changing to default context (i.e. implictly Purpose.SERVER_AUTH) -Also ignoring hostname check as certificate does not include correct hostname -Updating Docker build to use Python 3.10 - -Signed-off-by: Erik Jaegervall - -Upstream-Status: Backport [https://github.com/eclipse/kuksa.val/commit/9c0d93ef3b7266037a1c8fe7e49790f9119dae28] -Signed-off-by: Scott Murray ---- - kuksa_viss_client/Dockerfile | 2 +- - kuksa_viss_client/__init__.py | 5 ++++- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/kuksa_viss_client/Dockerfile b/kuksa_viss_client/Dockerfile -index ae62e50..bf0f49e 100644 ---- a/kuksa_viss_client/Dockerfile -+++ b/kuksa_viss_client/Dockerfile -@@ -18,7 +18,7 @@ RUN python -m build - RUN mkdir /kuksa_viss_client - RUN pip install --target /kuksa_viss_client --no-cache-dir dist/*.whl - --FROM python:3.8-alpine -+FROM python:3.10-alpine - - COPY --from=build /kuksa_viss_client /kuksa_viss_client - ENV PYTHONUNBUFFERED=yes -diff --git a/kuksa_viss_client/__init__.py b/kuksa_viss_client/__init__.py -index 69cc996..ab29fb9 100644 ---- a/kuksa_viss_client/__init__.py -+++ b/kuksa_viss_client/__init__.py -@@ -227,9 +227,12 @@ class KuksaClientThread(threading.Thread): - - async def mainLoop(self): - if not self.insecure: -- context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) -+ context = ssl.create_default_context() - context.load_cert_chain(certfile=self.certificate, keyfile=self.keyfile) - context.load_verify_locations(cafile=self.cacertificate) -+ # Certificates in ../kuksa_certificates does not contain the IP address used for -+ # connection to server so hostname check must be disabled -+ context.check_hostname = False - try: - print("connect to wss://"+self.serverIP+":"+str(self.serverPort)) - async with websockets.connect("wss://"+self.serverIP+":"+str(self.serverPort), ssl=context) as ws: --- -2.34.1 - diff --git a/recipes-connectivity/kuksa-val/kuksa-viss-client/0001-kuksa_viss_client-Update-cmd2-completer-usage.patch b/recipes-connectivity/kuksa-val/kuksa-viss-client/0001-kuksa_viss_client-Update-cmd2-completer-usage.patch new file mode 100644 index 00000000..acd41691 --- /dev/null +++ b/recipes-connectivity/kuksa-val/kuksa-viss-client/0001-kuksa_viss_client-Update-cmd2-completer-usage.patch @@ -0,0 +1,105 @@ +From 1da7b980d05706c8d4e9bcb0d12965258a4fc709 Mon Sep 17 00:00:00 2001 +From: Scott Murray +Date: Thu, 6 Oct 2022 16:07:00 -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 | 26 +++++++++++++------------- + 1 file changed, 13 insertions(+), 13 deletions(-) + +diff --git a/kuksa_viss_client/__main__.py b/kuksa_viss_client/__main__.py +index 5e595f8..e5798b8 100755 +--- a/kuksa_viss_client/__main__.py ++++ b/kuksa_viss_client/__main__.py +@@ -23,7 +23,7 @@ from typing import Dict, List + import queue, time, os, threading + 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 +@@ -103,7 +103,7 @@ class TestClient(Cmd): + if 'children' in child: + 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): + self.subscribeFileDesc[(path,attr)].write(resp + "\n") +@@ -113,7 +113,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" +@@ -126,45 +126,45 @@ 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 Port', default=DEFAULT_SERVER_PORT) + ap_setServerAddr.add_argument('-p', "--protocol", help='VISS Server Communication Protocol (ws or grpc)', default=DEFAULT_SERVER_PROTOCOL) + + 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("-a", "--attribute", help="Attribute to be set", default="value") + + 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("-a", "--attribute", help="Attribute to be get", default="value") + + 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("Path", help="Path to be subscribed", completer=path_completer) + ap_subscribe.add_argument("-a", "--attribute", help="Attribute to be subscribed", default="value") + + 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 + def __init__(self): +-- +2.37.3 + 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 deleted file mode 100644 index 944d8bb1..00000000 --- a/recipes-connectivity/kuksa-val/kuksa-viss-client/0002-kuksa_viss_client-Update-cmd2-completer-usage.patch +++ /dev/null @@ -1,104 +0,0 @@ -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 - -- cgit 1.2.3-korg