bugfix
This commit is contained in:
parent
dbfe00df59
commit
afe9005137
@ -12,11 +12,15 @@ class SSHNode:
|
||||
username='root',
|
||||
port=22,
|
||||
password=None,
|
||||
client_keys=[],
|
||||
passphrase=None,
|
||||
jumpers=[]):
|
||||
self.server2 = {
|
||||
"host":host,
|
||||
"username":username,
|
||||
"password":password,
|
||||
"client_keys":client_keys,
|
||||
"passphrase":passphrase,
|
||||
"port":port
|
||||
}
|
||||
print(self.server2)
|
||||
@ -40,47 +44,72 @@ class SSHNode:
|
||||
def set_jumpers(self, jumpers):
|
||||
self.jumpers = jumpers
|
||||
|
||||
async def _connect(self, **kw):
|
||||
refconn = kw['refconn']
|
||||
host = kw['host']
|
||||
username = kw.get('username', 'root')
|
||||
port = kw.get('port',22)
|
||||
password= kw.get('password', None)
|
||||
client_keys = kw.get('client_keys', [])
|
||||
passphrase = kw.get('passphrase', None)
|
||||
conn = None
|
||||
if refconn:
|
||||
if password:
|
||||
conn = await refconn.connect_ssh(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
password=password,
|
||||
port=port)
|
||||
elif client_keys != []:
|
||||
conn = await refconn.connect_ssh(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
client_keys=client_keys,
|
||||
passphrase=passphrase,
|
||||
port=port)
|
||||
else:
|
||||
conn = await refconn.connect_ssh(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
port=port)
|
||||
|
||||
else:
|
||||
if password:
|
||||
conn = await asyncssh.connect(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
password=password,
|
||||
port=port)
|
||||
elif client_keys:
|
||||
conn = await asyncssh.connect(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
client_keys=client_keys,
|
||||
passphrase=passphrase,
|
||||
port=port)
|
||||
else:
|
||||
conn = await asyncssh.connect(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
port=port)
|
||||
return conn
|
||||
|
||||
async def connect(self):
|
||||
refconn = None
|
||||
for j in self.jumpers:
|
||||
host = j['host']
|
||||
username = j.get('username', 'root')
|
||||
port = j.get('port',22)
|
||||
password= j.get('password', None)
|
||||
if refconn:
|
||||
refconn = await refconn.connect_ssh(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
password=password,
|
||||
port=port)
|
||||
else:
|
||||
refconn = await asyncssh.connect(host,
|
||||
username=username,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
password=password,
|
||||
port=port)
|
||||
self.jumper_conns.append(refconn)
|
||||
for jj in self.jumpers:
|
||||
j = jj.copy()
|
||||
j['refconn'] = refconn
|
||||
refconn = await self._connect(**j)
|
||||
|
||||
host = self.server2['host']
|
||||
username = self.server2.get('username', 'root')
|
||||
port = self.server2.get('port',22)
|
||||
password = self.server2.get('password', None)
|
||||
if refconn:
|
||||
self.conn = await refconn.connect_ssh(host,
|
||||
username=username,
|
||||
port=port,
|
||||
password=password,
|
||||
keepalive_interval=60,
|
||||
known_hosts=None)
|
||||
else:
|
||||
self.conn = await asyncssh.connect(host,
|
||||
username=username,
|
||||
password=password,
|
||||
known_hosts=None,
|
||||
keepalive_interval=60,
|
||||
port=port)
|
||||
j = self.server2.copy()
|
||||
j['refconn'] = refconn
|
||||
self.conn = await self._connect(**j)
|
||||
|
||||
def close(self):
|
||||
self.conn.close()
|
||||
@ -113,7 +142,6 @@ class SSHNode:
|
||||
show_input=None,
|
||||
show_stdout=None):
|
||||
proc = await self._process(cmd, term_type='xterm',
|
||||
|
||||
term_size=(80,24),
|
||||
encoding='utf-8'
|
||||
)
|
||||
|
@ -17,5 +17,6 @@ requests
|
||||
jinja2
|
||||
pyzmq
|
||||
cryptography
|
||||
asyncssh==2.13.2
|
||||
bcrypt
|
||||
asyncssh
|
||||
eventpy
|
||||
|
Loading…
Reference in New Issue
Block a user