From 3c96bd3eab8b75282248aefb4c2b14bfb2c10773 Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Tue, 12 Sep 2023 09:07:39 +0200 Subject: [PATCH] [WIP] consider sea device when initializing FrappyNode --- devices.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/devices.py b/devices.py index e9d4cdb..66f22fa 100644 --- a/devices.py +++ b/devices.py @@ -297,11 +297,13 @@ class FrappyNode(SecNodeDevice, Moveable): code, text = status.DISABLED, 'disabled' SecNodeDevice._set_status(self, code, text) - def restart(self, cfg=None, restart=True): + def restart(self, cfg=None, forced=True): """restart frappy server :param cfg: config for frappy server, if not given, restart with the same config - :param restart: when false, do not restart when already running with same cfg + :param forced: True: restart anyway, force using cfg + False: try to get cfg (1) from sea, (2) from running frappy server, (3) from given cfg + when cfg has not changed, do not restart """ if cfg is None: cfg = self._cfgvalue @@ -310,10 +312,18 @@ class FrappyNode(SecNodeDevice, Moveable): cfginfo = {} self._service_manager.get_procs(cfginfo=cfginfo) running_cfg = cfginfo.get((ins, self.service), '') - if cfg == running_cfg: - if not restart: - return - else: + if not forced: + sea_cfg = self._service_manager.cfg_from_sea(ins).get(self.service) + if sea_cfg == '?': + self.log.warning('undefined sea device') + cfg = '' # stop server + elif sea_cfg: + cfg = sea_cfg + elif running_cfg: + return + if cfg == running_cfg: + return + if cfg != running_cfg: self.disable() if running_cfg: self._disconnect()