From 51fe236a639306b37a700f0e426b8404992a4d12 Mon Sep 17 00:00:00 2001 From: Alexander Zaft Date: Fri, 18 Oct 2024 12:52:31 +0200 Subject: [PATCH] server: show interfaces as custom property Change-Id: I129be1228b8a04386db5fe370ebdc2ec6ce8050a Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/34838 Reviewed-by: Georg Brandl Reviewed-by: Enrico Faulhaber Tested-by: Jenkins Automated Tests --- frappy/secnode.py | 8 ++++++-- frappy/server.py | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/frappy/secnode.py b/frappy/secnode.py index c0ae1bc4..71e87189 100644 --- a/frappy/secnode.py +++ b/frappy/secnode.py @@ -36,6 +36,7 @@ class SecNode: - get_module(modulename) returns the requested module or None if there is no suitable configuration on the server """ + def __init__(self, name, logger, options, srv): self.equipment_id = options.pop('equipment_id', name) self.nodeprops = {} @@ -54,6 +55,9 @@ class SecNode: self.traceback_counter = 0 self.name = name + def add_secnode_property(self, prop, value): + self.nodeprops[prop] = value + def get_module(self, modulename): """ Returns a fully initialized module. Or None, if something went wrong during instatiating/initializing the module.""" @@ -219,9 +223,9 @@ class SecNode: result['equipment_id'] = self.equipment_id result['firmware'] = 'FRAPPY ' + get_version() result['description'] = self.nodeprops['description'] - for prop in self.nodeprops: + for prop, propvalue in self.nodeprops.items(): if prop.startswith('_'): - result[prop] = self.nodeprops[prop] + result[prop] = propvalue else: raise NoSuchModuleError(f'Module {modname!r} does not exist') return result diff --git a/frappy/server.py b/frappy/server.py index 089ca0ca..271669de 100644 --- a/frappy/server.py +++ b/frappy/server.py @@ -192,6 +192,7 @@ class Server: if not self.interfaces: self.log.error('no interface started') return + self.secnode.add_secnode_property('_interfaces', list(self.interfaces.keys())) self.log.info('startup done with interface(s) %s' % ', '.join(self.interfaces)) if systemd: systemd.daemon.notify("READY=1\nSTATUS=accepting requests")