[gateway] Add property "use_ftp"

pull/24/head
remittor 1 year ago
parent 6c880cbb42
commit 1e0161f4c0

@ -164,12 +164,13 @@ if gw.use_ssh:
print("Running SSH server on port {}...".format(gw.ssh_port)) print("Running SSH server on port {}...".format(gw.ssh_port))
else: else:
print("Running TELNET and FTP servers...") print("Running TELNET and FTP servers...")
gw.use_ftp = True
requests.get(gw.apiurl + "xqnetdetect/netspeed") requests.get(gw.apiurl + "xqnetdetect/netspeed")
time.sleep(0.5) time.sleep(0.5)
gw.passw = 'root' gw.passw = 'root'
gw.ping(contimeout = 8) gw.ping(contimeout = 12)
print("") print("")
print("#### Connection to device {} is OK ####".format(gw.device_name)) print("#### Connection to device {} is OK ####".format(gw.device_name))

@ -58,6 +58,7 @@ def get_http_headers():
class Gateway(): class Gateway():
def __init_fields(self): def __init_fields(self):
self.use_ssh = True self.use_ssh = True
self.use_ftp = False
self.verbose = 2 self.verbose = 2
self.timeout = 4 self.timeout = 4
self.memcfg = None # shared memory "XMiR_12345" self.memcfg = None # shared memory "XMiR_12345"
@ -658,9 +659,10 @@ class Gateway():
tn = self.get_telnet(verbose) tn = self.get_telnet(verbose)
if not tn: if not tn:
return False return False
ftp = self.get_ftp(verbose) if self.use_ftp:
if not ftp: ftp = self.get_ftp(verbose)
return False if not ftp:
return False
return True return True
def run_cmd(self, cmd, msg = None, timeout = None, die_on_error = True): def run_cmd(self, cmd, msg = None, timeout = None, die_on_error = True):
@ -703,8 +705,8 @@ class Gateway():
if not ret: if not ret:
break break
else: else:
cmd = (cmd + '\n').encode('ascii') cmd += '\n'
tn.write(cmd) tn.write(cmd.encode('ascii'))
tn.read_until(tn.prompt, timeout = 4 if timeout is None else timeout) tn.read_until(tn.prompt, timeout = 4 if timeout is None else timeout)
if not self.use_ssh: if not self.use_ssh:
tn.write(b"exit\n") tn.write(b"exit\n")
@ -727,11 +729,13 @@ class Gateway():
else: else:
file.write(data) file.write(data)
read_size += size read_size += size
else: elif self.use_ftp:
ftp = self.get_ftp(self.verbose) ftp = self.get_ftp(self.verbose)
file = open(fn_local, 'wb') file = open(fn_local, 'wb')
ftp.retrbinary('RETR ' + fn_remote, file.write) ftp.retrbinary('RETR ' + fn_remote, file.write)
file.close() file.close()
else:
raise RuntimeError('FIXME')
return True return True
def upload(self, fn_local, fn_remote, verbose = 1): def upload(self, fn_local, fn_remote, verbose = 1):
@ -750,9 +754,11 @@ class Gateway():
channel.write(data) channel.write(data)
size = size + len(data) size = size + len(data)
#except ssh2.exceptions.SCPProtocolError as e: #except ssh2.exceptions.SCPProtocolError as e:
else: elif self.use_ftp:
ftp = self.get_ftp(self.verbose) ftp = self.get_ftp(self.verbose)
ftp.storbinary('STOR ' + fn_remote, file) ftp.storbinary('STOR ' + fn_remote, file)
else:
raise RuntimeError('FIXME')
file.close() file.close()
return True return True

Loading…
Cancel
Save