diff --git a/ahserver/baseProcessor.py b/ahserver/baseProcessor.py index bcf1f13..8a716d8 100644 --- a/ahserver/baseProcessor.py +++ b/ahserver/baseProcessor.py @@ -76,7 +76,7 @@ class BaseProcessor: kw = await self.run_ns['request2ns']() kw.update(params) self.run_ns['params_kw'] = kw - self.run_ns.update(kw) + # self.run_ns.update(kw) self.run_ns['ref_real_path'] = self.real_path self.run_ns['processor'] = self self.env_set = True diff --git a/ahserver/websocketProcessor.py b/ahserver/websocketProcessor.py index ec4be55..ec28b67 100644 --- a/ahserver/websocketProcessor.py +++ b/ahserver/websocketProcessor.py @@ -38,7 +38,12 @@ class XtermProcessor(PythonScriptProcessor): # it must return a DictObject with sshnode information # parameters: nodeid # - login_info = super().path_call(request, params=params) + await self.set_run_env(request, params=params) + login_info = await super().path_call(request, params=params) + if login_info is None: + raise f'data error' + + debug(f'{login_info=}') ws = web.WebSocketResponse() await ws.prepare(request) await self.create_process(login_info) @@ -49,21 +54,17 @@ class XtermProcessor(PythonScriptProcessor): self.retResponse = ws return ws - async def get_login_info(self): - async with aiofiles.open(self.real_path, 'r', encoding='utf-8') as f: - txt = await f.read() - self.login_info = json.loads(txt) - # print(f'{self.login_info=}') - - async def create_process(self, lgoin_info): + async def create_process(self, login_info): # id = lenv['params_kw'].get('termid') host = login_info['host'] port = login_info.get('port', 22) username = login_info.get('username', 'root') password = login_info.get('password',None) + jumpers = login_info.get('jumpers', []) self.sshnode = SSHNode(host, username=username, password=password, - port=port) + port=port, + jumpers=jumpers) await self.sshnode.connect() self.p_obj = await self.sshnode._process('bash', term_type='vt100',