Merge branch 'master' of git.kaiyuancloud.cn:yumoqing/ahserver

This commit is contained in:
yumoqing 2025-01-23 14:13:21 +08:00
commit 2d154db0f0
2 changed files with 11 additions and 10 deletions

View File

@ -76,7 +76,7 @@ class BaseProcessor:
kw = await self.run_ns['request2ns']() kw = await self.run_ns['request2ns']()
kw.update(params) kw.update(params)
self.run_ns['params_kw'] = kw 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['ref_real_path'] = self.real_path
self.run_ns['processor'] = self self.run_ns['processor'] = self
self.env_set = True self.env_set = True

View File

@ -38,7 +38,12 @@ class XtermProcessor(PythonScriptProcessor):
# it must return a DictObject with sshnode information # it must return a DictObject with sshnode information
# parameters: nodeid # 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() ws = web.WebSocketResponse()
await ws.prepare(request) await ws.prepare(request)
await self.create_process(login_info) await self.create_process(login_info)
@ -49,21 +54,17 @@ class XtermProcessor(PythonScriptProcessor):
self.retResponse = ws self.retResponse = ws
return ws return ws
async def get_login_info(self): async def create_process(self, login_info):
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):
# id = lenv['params_kw'].get('termid') # id = lenv['params_kw'].get('termid')
host = login_info['host'] host = login_info['host']
port = login_info.get('port', 22) port = login_info.get('port', 22)
username = login_info.get('username', 'root') username = login_info.get('username', 'root')
password = login_info.get('password',None) password = login_info.get('password',None)
jumpers = login_info.get('jumpers', [])
self.sshnode = SSHNode(host, username=username, self.sshnode = SSHNode(host, username=username,
password=password, password=password,
port=port) port=port,
jumpers=jumpers)
await self.sshnode.connect() await self.sshnode.connect()
self.p_obj = await self.sshnode._process('bash', self.p_obj = await self.sshnode._process('bash',
term_type='vt100', term_type='vt100',