From 957a5f0b2ccd7d1141a4361165fe7b1989f33767 Mon Sep 17 00:00:00 2001 From: dmc Date: Thu, 14 Sep 2023 14:09:08 +0200 Subject: [PATCH] fix bug when restarting all frappy services - return a copy of the modified env dict instread of modifiying in place --- frappyman.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frappyman.py b/frappyman.py index d87f5f7..5a65fc6 100644 --- a/frappyman.py +++ b/frappyman.py @@ -83,21 +83,22 @@ class FrappyManager(ServiceManager): def prepare_start(self, ins, service, cfg=''): start_dir, env = super().prepare_start(ins, service) + env_update = {} for key, value in env.items(): if '' in value: - env[key] = value.replace('', service) + env_update[key] = value.replace('', service) os.environ[key] = env[key] cfgpaths = self.config_dirs(ins, service) if cfgpaths: - env['FRAPPY_CONFDIR'] = os.pathsep.join(cfgpaths) + env_update['FRAPPY_CONFDIR'] = os.pathsep.join(cfgpaths) # merge PYTHONPATH from servicemanager.cfg with the one from environment pypathlist = [] for pypath in env.get('PYTHONPATH'), os.environ.get('PYTHONPATH'): if pypath is not None: pypathlist.extend(p for p in pypath.split(':') if p not in pypathlist) if pypathlist: - env['PYTHONPATH'] = os.environ['PYTHONPATH'] = ':'.join(pypathlist) - return start_dir, env + env_update['PYTHONPATH'] = os.environ['PYTHONPATH'] = ':'.join(pypathlist) + return start_dir, dict(env, **env_update) def do_start(self, ins, service=None, cfg='', restart=False, wait=False, logger=None): if self.wildcard(ins) is not None: