make new version of frappy work

- frappy instead of secop
- python cfg files
This commit is contained in:
l_samenv 2023-05-04 14:57:01 +02:00
parent 42125b9887
commit 02ca6de3ec
2 changed files with 31 additions and 10 deletions

View File

@ -438,6 +438,12 @@ class ServiceManager:
print('')
printTable(('inst', 'service', 'port', 'cfg'), rows, print)
def do_getports(self, ins):
"""machine readable list of services with port numbers"""
self.get_info()
procs = self.get_procs().get(ins, {})
print(' '.join('%s %s' % (k, self.info[ins][k]) for k in procs))
@staticmethod
def extra_info(ins):
"""provide extra info or None"""

View File

@ -51,7 +51,7 @@ class FrappyManager(ServiceManager):
cfgparser.optionxform = str
cfgfile = self.env[ins].get('FRAPPY_CONFIG_FILE')
confdir = self.env[ins].get('FRAPPY_CONFDIR')
if cfgfile is not None:
if cfgfile:
cfgfile = self.env[ins]['FRAPPY_CONFIG_FILE'].replace('<SERV>', service)
cfgparser.read(cfgfile)
try:
@ -122,9 +122,12 @@ class FrappyManager(ServiceManager):
print('starting frappy gui %s' % ins)
import mlzlog
from secop.gui.qt import QApplication
from secop.gui.mainwindow import MainWindow
if exists(join(self.env[ins].get('FRAPPY_ROOT'), 'frappy')):
import frappy
else:
import secop as frappy
from frappy.gui.qt import QApplication
from frappy.gui.mainwindow import MainWindow
mlzlog.initLogging('gui', 'info')
@ -136,11 +139,21 @@ class FrappyManager(ServiceManager):
def do_cli(self, ins='', service='main'):
self.check_server(ins, service)
from secop.client.interactive import Client
import code
client = Client('localhost:%d' % self.info[ins][service])
code.interact(banner='', local={'client': client})
if exists(join(self.env[ins].get('FRAPPY_ROOT'), 'frappy')):
import frappy
else:
print('secop!')
import secop as frappy
from frappy.client.interactive import Client
namespace = {}
try:
from frappy.client.interactive import watch
namespace['watch'] = watch
except ImportError:
pass
namespace['client'] = Client('localhost:%d' % self.info[ins][service])
code.interact(banner='', local=namespace)
def all_cfg(self, ins, service, by_dir=False):
result = {}
@ -150,7 +163,9 @@ class FrappyManager(ServiceManager):
for cfgdir in self.config_dirs(ins, service):
result.setdefault(cfgdir, {})
cfgs = result[cfgdir]
for cfgfile in glob(join(cfgdir, '*.cfg')):
root = self.env[ins].get('FRAPPY_ROOT')
cfg_pattern ='*_cfg.py' if exists(join(root, 'frappy')) else '*.cfg'
for cfgfile in glob(join(cfgdir, cfg_pattern)):
desc = ''
try:
parser = ConfigParser()
@ -161,7 +176,7 @@ class FrappyManager(ServiceManager):
break
except Exception:
pass
cfg = basename(cfgfile)[:-4]
cfg = basename(cfgfile)[:1-len(cfg_pattern)]
if cfg not in all_cfg:
all_cfg[cfg] = desc
cfgs[cfg] = desc