starting multiple nodes with frappy cli
This commit is contained in:
parent
02ca6de3ec
commit
e5f7aded92
71
frappyman.py
71
frappyman.py
@ -103,57 +103,46 @@ class FrappyManager(ServiceManager):
|
|||||||
cfgs = {i for i, s in cfginfo if s == service or service is None}
|
cfgs = {i for i, s in cfginfo if s == service or service is None}
|
||||||
return [i for i in ins_list if i in cfgs]
|
return [i for i in ins_list if i in cfgs]
|
||||||
|
|
||||||
def check_server(self, ins='', service='main'):
|
def get_nodes(self, ins='', service=None):
|
||||||
start_dir, env = self.prepare_start(ins, service)
|
start_dir = ServiceManager.prepare_start(self, ins, None)[0]
|
||||||
sys.path.insert(0, start_dir)
|
if start_dir not in sys.path:
|
||||||
try:
|
sys.path.insert(0, start_dir)
|
||||||
self.check_running(ins, service)
|
nodes = []
|
||||||
except ServiceDown as e:
|
services = self.services if service is None else [service]
|
||||||
raise UsageError('frappy %s %s is not running' % (ins, service))
|
for service in services:
|
||||||
return
|
try:
|
||||||
except KeyError:
|
self.check_running(ins, service)
|
||||||
if not ins:
|
nodes.append('localhost:%d' % self.info[ins][service])
|
||||||
|
except ServiceDown:
|
||||||
|
if len(services) == 1:
|
||||||
|
raise UsageError('frappy %s %s is not running' % (ins, service))
|
||||||
|
except KeyError:
|
||||||
|
if ins:
|
||||||
|
raise UsageError('unknown instance %s' % ins)
|
||||||
raise UsageError('missing instance')
|
raise UsageError('missing instance')
|
||||||
raise UsageError('unknown instance %s' % ins)
|
if not nodes:
|
||||||
|
raise UsageError(f"frappy {ins}: none of {'/'.join(services)} is running")
|
||||||
|
return nodes
|
||||||
|
|
||||||
def do_gui(self, ins='', service='main'):
|
def do_gui(self, ins='', service=None):
|
||||||
self.check_server(ins, service)
|
print(f'starting frappy gui {ins} {service or ""}')
|
||||||
|
nodes = self.get_nodes(ins, service)
|
||||||
|
|
||||||
print('starting frappy gui %s' % ins)
|
import logging
|
||||||
|
|
||||||
import mlzlog
|
|
||||||
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.qt import QApplication
|
||||||
from frappy.gui.mainwindow import MainWindow
|
from frappy.gui.mainwindow import MainWindow
|
||||||
|
|
||||||
mlzlog.initLogging('gui', 'info')
|
|
||||||
|
|
||||||
app = QApplication([])
|
app = QApplication([])
|
||||||
win = MainWindow(['localhost:%d' % self.info[ins][service]])
|
win = MainWindow(nodes, logging.getLogger('gui'))
|
||||||
win.show()
|
win.show()
|
||||||
|
|
||||||
return app.exec_()
|
return app.exec_()
|
||||||
|
|
||||||
def do_cli(self, ins='', service='main'):
|
def do_cli(self, ins='', service=None):
|
||||||
self.check_server(ins, service)
|
nodes = self.get_nodes(ins, service)
|
||||||
import code
|
print(f"PP {os.environ['PYTHONPATH']} {sys.path}")
|
||||||
if exists(join(self.env[ins].get('FRAPPY_ROOT'), 'frappy')):
|
from frappy.client.interactive import init, interact
|
||||||
import frappy
|
init(*nodes)
|
||||||
else:
|
interact()
|
||||||
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):
|
def all_cfg(self, ins, service, by_dir=False):
|
||||||
result = {}
|
result = {}
|
||||||
|
12
nicosman.py
12
nicosman.py
@ -100,13 +100,13 @@ class NicosManager(ServiceManager):
|
|||||||
nicos_conf = join(base, 'nicos.conf')
|
nicos_conf = join(base, 'nicos.conf')
|
||||||
content = {
|
content = {
|
||||||
'nicos': {
|
'nicos': {
|
||||||
'setup_subdirs': '%s, common, frappy' % ins,
|
'setup_subdirs': '["%s", "common", "frappy_sinq"]' % ins,
|
||||||
'logging_path': '%s/%s' % (env['NICOS_LOG'], ins),
|
'logging_path': '"%s/%s"' % (env['NICOS_LOG'], ins),
|
||||||
'pid_path': '%s/%s' % (env['NICOS_LOG'], ins),
|
'pid_path': '"%s/%s"' % (env['NICOS_LOG'], ins),
|
||||||
},
|
},
|
||||||
'environment': {
|
# 'environment': {
|
||||||
key: env[key] for key in env if key in ENV_KEYS
|
# key: f'"{env[key]}"' for key in env if key in ENV_KEYS
|
||||||
}
|
#}
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
cp = ConfigParser()
|
cp = ConfigParser()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user