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

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

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)