From a7da4638a9c7f86f6bd0be8ff08be55147bfd6a1 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 18 Apr 2023 16:11:47 -0400 Subject: kuksa-val: Update to 0.3.1 Changes: - Update kuksa-val to a commit that includes the 0.3.1 release and some other fixes past that. Our local patches have been updated. - Rework and rename the kuksa-viss-client recipe for the upstream switch to kuksa-client as the name. Our local patches have been updated. - Update kuksa-dbc-feeder to a commit that supports the kuksa-client library changes that come with 0.3.1. Our local patches have been updated, and a new local patch has been added to fix the token file configuration option behavior, this will be worked with upstream. Upstream changed the configuration file format, so our local one has also been updated to match. - Update the parsing of the DBC feeder configuration file in the can-dev-helper.sh script to work with the new format. - Update kuksa-val-agl recipe to not install AGL signals overlay for VSS, as that has been replaced with the use of the vss-agl package. - Add installation of vss-agl to packagegroup-agl-ivi-services so the AGL specific signals and DBC configuration will be available. Bug-AGL: SPEC-4761 Change-Id: I5933017a30f040a746f0a6a6eb2a3b68d1fc4bc1 Signed-off-by: Scott Murray (cherry picked from commit f6a2980917592000382d2a9af9ea4803e90f9f88) --- ...-kuksa-client-Update-cmd2-completer-usage.patch | 141 +++++++++++++++++++++ ...-client-Add-external-certificates-support.patch | 51 ++++++++ 2 files changed, 192 insertions(+) create mode 100644 recipes-connectivity/kuksa-val/kuksa-client/0001-kuksa-client-Update-cmd2-completer-usage.patch create mode 100644 recipes-connectivity/kuksa-val/kuksa-client/0002-kuksa-client-Add-external-certificates-support.patch (limited to 'recipes-connectivity/kuksa-val/kuksa-client') diff --git a/recipes-connectivity/kuksa-val/kuksa-client/0001-kuksa-client-Update-cmd2-completer-usage.patch b/recipes-connectivity/kuksa-val/kuksa-client/0001-kuksa-client-Update-cmd2-completer-usage.patch new file mode 100644 index 000000000..55e9cc2cb --- /dev/null +++ b/recipes-connectivity/kuksa-val/kuksa-client/0001-kuksa-client-Update-cmd2-completer-usage.patch @@ -0,0 +1,141 @@ +From ea0b48b9a900e9ce6d898fc5d17ae3238aadb289 Mon Sep 17 00:00:00 2001 +From: Scott Murray +Date: Tue, 2 May 2023 16:20:40 -0400 +Subject: [PATCH 2/2] 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-client/kuksa_client/__main__.py | 31 +++++++++++++-------------- + 1 file changed, 15 insertions(+), 16 deletions(-) + +diff --git a/kuksa-client/kuksa_client/__main__.py b/kuksa-client/kuksa_client/__main__.py +index c34f335..d386708 100755 +--- a/kuksa-client/kuksa_client/__main__.py ++++ b/kuksa-client/kuksa_client/__main__.py +@@ -34,7 +34,6 @@ from cmd2 import Cmd + from cmd2 import CompletionItem + from cmd2 import with_argparser + from cmd2 import with_category +-from cmd2.utils import basic_complete + + import kuksa_certificates + from kuksa_client import KuksaClientThread +@@ -122,7 +121,7 @@ class TestClient(Cmd): + "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, logPath, resp): + with logPath.open('a', encoding='utf-8') as logFile: +@@ -132,7 +131,7 @@ class TestClient(Cmd): + self.pathCompletionItems = [] + for sub_id in self.subscribeIds: + self.pathCompletionItems.append(CompletionItem(sub_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" + VSS_COMMANDS = "Kuksa Interaction Commands" +@@ -149,7 +148,7 @@ class TestClient(Cmd): + ap_authorize.add_argument( + 'token_or_tokenfile', + help='JWT(or the file storing the token) for authorizing the client.', +- completer_method=tokenfile_completer_method,) ++ completer=tokenfile_completer_method,) + ap_setServerAddr = argparse.ArgumentParser() + ap_setServerAddr.add_argument( + 'IP', help='VISS/gRPC Server IP Address', default=DEFAULT_SERVER_ADDR) +@@ -164,7 +163,7 @@ class TestClient(Cmd): + + ap_setValue = argparse.ArgumentParser() + ap_setValue.add_argument( +- "Path", help="Path to be set", completer_method=path_completer) ++ "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") +@@ -181,19 +180,19 @@ class TestClient(Cmd): + + ap_getValue = argparse.ArgumentParser() + ap_getValue.add_argument( +- "Path", help="Path to be read", completer_method=path_completer) ++ "Path", help="Path to be read", completer=path_completer) + ap_getValue.add_argument( + "-a", "--attribute", help="Attribute to be get", default="value") + + ap_getValues = argparse.ArgumentParser() + ap_getValues.add_argument( +- "Path", help="Path whose value is to be read", nargs='+', completer_method=path_completer) ++ "Path", help="Path whose value is to be read", nargs='+', completer=path_completer) + ap_getValues.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) ++ "Path", help="Path whose target value to be set", completer=path_completer) + ap_setTargetValue.add_argument("Value", help="Value to be set") + + ap_setTargetValues = argparse.ArgumentParser() +@@ -206,35 +205,35 @@ class TestClient(Cmd): + + ap_getTargetValue = argparse.ArgumentParser() + ap_getTargetValue.add_argument( +- "Path", help="Path whose target value is to be read", completer_method=path_completer) ++ "Path", help="Path whose target value is to be read", completer=path_completer) + + ap_getTargetValues = argparse.ArgumentParser() + ap_getTargetValues.add_argument( +- "Path", help="Path whose target value is to be read", nargs='+', completer_method=path_completer) ++ "Path", help="Path whose target value is to be read", nargs='+', completer=path_completer) + + ap_subscribe = argparse.ArgumentParser() + ap_subscribe.add_argument( +- "Path", help="Path to subscribe to", completer_method=path_completer) ++ "Path", help="Path to subscribe to", completer=path_completer) + ap_subscribe.add_argument( + "-a", "--attribute", help="Attribute to subscribe to", default="value") + + ap_subscribeMultiple = argparse.ArgumentParser() + ap_subscribeMultiple.add_argument( +- "Path", help="Path to subscribe to", nargs='+', completer_method=path_completer) ++ "Path", help="Path to subscribe to", nargs='+', completer=path_completer) + ap_subscribeMultiple.add_argument( + "-a", "--attribute", help="Attribute to subscribe to", default="value") + + ap_unsubscribe = argparse.ArgumentParser() + ap_unsubscribe.add_argument( +- "SubscribeId", help="Corresponding subscription Id", completer_method=subscriptionIdCompleter, ++ "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) ++ "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) ++ "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" +@@ -245,7 +244,7 @@ class TestClient(Cmd): + 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) ++ "Json", help="Json tree to update VSS", completer=jsonfile_completer_method) + + # Constructor + def __init__(self, server_ip=None, server_port=None, server_protocol=None, insecure=False, token_or_tokenfile=None): +-- +2.39.2 + diff --git a/recipes-connectivity/kuksa-val/kuksa-client/0002-kuksa-client-Add-external-certificates-support.patch b/recipes-connectivity/kuksa-val/kuksa-client/0002-kuksa-client-Add-external-certificates-support.patch new file mode 100644 index 000000000..229dda46a --- /dev/null +++ b/recipes-connectivity/kuksa-val/kuksa-client/0002-kuksa-client-Add-external-certificates-support.patch @@ -0,0 +1,51 @@ +From 3c9f74492153817dc4fa405c1724fbf22ce58c98 Mon Sep 17 00:00:00 2001 +From: Scott Murray +Date: Tue, 2 May 2023 16:19:55 -0400 +Subject: [PATCH 1/2] kuksa_viss_client: Add external certificates support + +Tweak the definition of __certificate_dir__ in the kuksa_certificates +package, and certificate location logic in the client library to allow +picking up alternative certificates from /etc/kuksa-certificates or +/etc/kuksa-val before falling back to the shipped defaults. The +intent is to allow packagers to more straighhtforwardly use their own +certificates with both the server and clients. + +Upstream-Status: pending + +Signed-off-by: Scott Murray +--- + kuksa-client/kuksa_client/cli_backend/__init__.py | 2 +- + kuksa_certificates/__init__.py | 7 ++++++- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/kuksa-client/kuksa_client/cli_backend/__init__.py b/kuksa-client/kuksa_client/cli_backend/__init__.py +index d282a0c..3052859 100644 +--- a/kuksa-client/kuksa_client/cli_backend/__init__.py ++++ b/kuksa-client/kuksa_client/cli_backend/__init__.py +@@ -29,7 +29,7 @@ class Backend: + self.insecure = config.getboolean('insecure', False) + except AttributeError: + self.insecure = config.get('insecure', False) +- self.default_cert_path = pathlib.Path(kuksa_certificates.__path__[0]) ++ self.default_cert_path = pathlib.Path(kuksa_certificates.__certificate_dir__) + self.cacertificate = config.get( + 'cacertificate', str(self.default_cert_path / 'CA.pem')) + self.certificate = config.get('certificate', str( +diff --git a/kuksa_certificates/__init__.py b/kuksa_certificates/__init__.py +index 22ccd3f..8323868 100644 +--- a/kuksa_certificates/__init__.py ++++ b/kuksa_certificates/__init__.py +@@ -2,4 +2,9 @@ import os + + from kuksa_client._metadata import * + +-__certificate_dir__= os.path.dirname(os.path.realpath(__file__)) ++if os.path.isdir("/etc/kuksa-certificates"): ++ __certificate_dir__= "/etc/kuksa-certificates" ++elif os.path.isdir("/etc/kuksa-val"): ++ __certificate_dir__= "/etc/kuksa-val" ++else: ++ __certificate_dir__= os.path.dirname(os.path.realpath(__file__)) +-- +2.39.2 + -- cgit 1.2.3-korg