support for connecting clients to remote servers

- define REMOTE_HOST and REMOTE_LOGIN in servicemanager.cfg
- added app argument to gui client main
This commit is contained in:
2021-04-12 18:08:14 +02:00
parent c7584d70b1
commit d73ec3ab9a
2 changed files with 14 additions and 7 deletions

View File

@@ -87,6 +87,7 @@ class ServiceManager:
def __init__(self):
self.env = {}
self.remote_hosts = {}
self.commands = {}
# self.revcmd = {}
self.info = {}
@@ -138,6 +139,8 @@ class ServiceManager:
section = dict(parser[ins])
if ins == 'MAIN':
ins = self.main_ins = basename(expanduser('~'))
if 'REMOTE_HOST' in section:
self.remote_hosts[ins] = section['REMOTE_HOST']
command = section.get('%s_command' % self.group)
self.revcmd[command] = self.group
nr = section.get(self.group)
@@ -205,6 +208,8 @@ class ServiceManager:
if ins not in self.info:
raise KeyError("don't know %r" % ins)
sp_ins = ' ' + ins if ins != self.main_ins else ''
if ins in self.remote_hosts:
return
if not self.get_procs().get(ins, {}).get(service):
startcmd = '%s start%s' % (self.group, sp_ins)
raise ServiceDown('%s%s is not running - please use %r' % (self.group, sp_ins, startcmd))
@@ -271,6 +276,8 @@ class ServiceManager:
service_ports = self.get_ins_info(ins)
except ValueError:
raise ValueError('do not know %r' % ins)
if ins in self.remote_hosts:
raise ValueError('can not start, %s is running on a remote host' % self.group)
services = list(service_ports) if service is None else [service]
if restart:
self.stop(ins, service)