IDE: Enhancements in PSK management.
- move secret reading code from eRPC connector to PSK management
- fix browser window not showing last connection date properly
--- a/PSKManagement.py Fri Feb 28 16:43:36 2025 +0100
+++ b/PSKManagement.py Fri Feb 28 16:48:28 2025 +0100
@@ -104,13 +104,21 @@
dataForID[COL_URI] = URI
# FIXME : could store time instead os a string and use DVC model's cmp
# then date display could be smarter, etc - sortable sting hack for now
- dataForID[COL_LAST] = time.strftime('%y/%M/%d-%H:%M:%S')
+ dataForID[COL_LAST] = time.strftime('%y/%m/%d-%H:%M:%S')
if _is_new_ID:
data.append(dataForID)
SaveData(project_path, data)
+def GetSecret(project_path, ID):
+ # load PSK from project
+ secpath = os.path.join(project_path, 'psk', ID + '.secret')
+ if not os.path.exists(secpath):
+ raise ValueError(
+ 'Error: Pre-Shared-Key Secret in %s is missing!\n' % secpath)
+ secret = open(secpath).read().partition(':')[2].rstrip('\n\r')
+ return secret
def ExportIDs(project_path, export_zip):
with ZipFile(export_zip, 'w') as zf:
--- a/connectors/ERPC/__init__.py Fri Feb 28 16:43:36 2025 +0100
+++ b/connectors/ERPC/__init__.py Fri Feb 28 16:48:28 2025 +0100
@@ -152,15 +152,9 @@
try:
if ID:
# load PSK from project
- secpath = os.path.join(confnodesroot.ProjectPath, 'psk', ID + '.secret')
- if not os.path.exists(secpath):
- confnodesroot.logger.write_error(
- 'Error: Pre-Shared-Key Secret in %s is missing!\n' % secpath)
- return None
- secret = open(secpath).read().partition(':')[2].rstrip('\n\r').encode()
- transport = SSLPSKClientTransport(host, port, (secret, ID.encode())) # type: ignore
+ secret = PSK.GetSecret(confnodesroot.ProjectPath, ID)
+ transport = SSLPSKClientTransport(host, port, (secret.encode(), ID.encode()))
else:
-
transport = erpc.transport.TCPTransport(host, port, False)
clientManager = erpc.client.ClientManager(transport, erpc.basic_codec.BasicCodec)
--- a/controls/IDBrowser.py Fri Feb 28 16:43:36 2025 +0100
+++ b/controls/IDBrowser.py Fri Feb 28 16:48:28 2025 +0100
@@ -12,12 +12,12 @@
from dialogs.IDMergeDialog import IDMergeDialog
-class IDBrowserModel(dv.PyDataViewIndexListModel):
+class IDBrowserModel(dv.DataViewIndexListModel):
def __init__(self, project_path, columncount):
self.project_path = project_path
self.columncount = columncount
self.data = PSK.GetData(project_path)
- dv.PyDataViewIndexListModel.__init__(self, len(self.data))
+ dv.DataViewIndexListModel.__init__(self, len(self.data))
def _saveData(self):
PSK.SaveData(self.project_path, self.data)