From cc4da8b14896739ac2966ecad0a5c82ab1de025c Mon Sep 17 00:00:00 2001
From: Scott Murray <scott.murray@konsulko.com>
Date: Sat, 5 Aug 2023 13:26:55 -0400
Subject: [PATCH 1/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 <scott.murray@konsulko.com>
---
 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 948cf56..fceca41 100755
--- a/kuksa-client/kuksa_client/__main__.py
+++ b/kuksa-client/kuksa_client/__main__.py
@@ -35,7 +35,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
@@ -126,7 +125,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:
@@ -136,7 +135,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"
@@ -153,7 +152,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)
@@ -168,7 +167,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", nargs='+', help="Value to be set")
     ap_setValue.add_argument(
         "-a", "--attribute", help="Attribute to be set", default="value")
@@ -185,19 +184,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()
@@ -210,35 +209,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"
@@ -249,7 +248,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, request names after protocol to avoid errors
     def __init__(self, server_ip=None, server_port=None, server_protocol=None, *, insecure=False, token_or_tokenfile=None,
-- 
2.41.0