Merge branch 'master' of gitlab.psi.ch:samenv/servicemanager

This commit is contained in:
l_samenv
2022-04-26 09:54:32 +02:00

View File

@ -23,7 +23,7 @@
import sys
import os
from glob import glob
from os.path import join, isdir, basename
from os.path import join, isdir, basename, expanduser
from configparser import ConfigParser
from servicemanager.base import ServiceManager, ServiceDown, UsageError
@ -49,23 +49,24 @@ class FrappyManager(ServiceManager):
cfgpaths = []
cfgparser = ConfigParser()
cfgparser.optionxform = str
cfgparser.read(self.env[ins]['FRAPPY_CONFIG_FILE'])
for cfgpath in cfgparser['confdir'].split(os.pathsep):
cfgfile = self.env[ins]['FRAPPY_CONFIG_FILE'].replace('<SERV>', service)
cfgparser.read(cfgfile)
for cfgpath in cfgparser['FRAPPY']['confdir'].split(os.pathsep):
if cfgpath.endswith('<SERV>'):
cfgpaths.append(cfgpath[:-4] + service)
cfgpaths.append(cfgpath[:-6] + service)
else:
scfg = join(cfgpath, service)
if isdir(scfg):
cfgpaths.append(scfg)
cfgpaths.append(cfgpath)
cfgpaths.append(expanduser(cfgpath))
return cfgpaths
def prepare_start(self, ins, service, cfg=''):
start_dir, env = super().prepare_start(ins, service)
for key, value in env.items():
if key.startswith('FRAPPY_') and '<SERV>' in value:
env[key] = value.replace('<SERV>', service)
os.environ[key] = env[key]
if '<SERV>' in value:
env[key] = value.replace('<SERV>', service)
os.environ[key] = env[key]
cfgpaths = self.config_dirs(ins, service)
if cfgpaths:
env['FRAPPY_CONFDIR'] = os.pathsep.join(cfgpaths)