Skip to content

Commit 617dde0

Browse files
committed
Merge branch 'main' of github.com:polixir/RLAssistant into dev
2 parents 5df5259 + a2b8ee3 commit 617dde0

2 files changed

Lines changed: 17 additions & 10 deletions

File tree

RLA/auto_ftp.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,21 @@
99
import pysftp
1010

1111

12-
def ftp_factory(name, server, username, password, ignore=None):
12+
def ftp_factory(name, server, username, password, port, ignore=None):
1313
if name == FTP_PROTOCOL_NAME.FTP:
14-
return FTPHandler(ftp_server=server, username=username,password=password, ignore=ignore)
14+
return FTPHandler(ftp_server=server, username=username,password=password, port=port, ignore=ignore)
1515
elif name == FTP_PROTOCOL_NAME.SFTP:
16-
return SFTPHandler(sftp_server=server, username=username, password=password, ignore=ignore)
16+
return SFTPHandler(sftp_server=server, username=username, password=password, port=port, ignore=ignore)
1717
else:
1818
raise NotImplementedError
1919

2020
class FTPHandler(object):
2121

22-
def __init__(self, ftp_server, username, password, ignore=None):
22+
def __init__(self, ftp_server, username, password, port, ignore=None):
2323
self.ftp_server = ftp_server
2424
self.username = username
2525
self.password = password
26+
self.port=port
2627
self.ftp = self.ftpconnect()
2728
logger.info("login success.")
2829
self.ignore = ignore
@@ -53,7 +54,7 @@ def ignore_match(self, files):
5354
def ftpconnect(self):
5455
ftp = FTP()
5556
ftp.set_debuglevel(0)
56-
ftp.connect(self.ftp_server, 21, timeout=60)
57+
ftp.connect(self.ftp_server, int(self.port), timeout=60)
5758
ftp.login(self.username, self.password)
5859
logger.warn("login succeed")
5960
return ftp
@@ -140,10 +141,11 @@ def close(self):
140141

141142
class SFTPHandler(FTPHandler):
142143

143-
def __init__(self, sftp_server, username, password, ignore=None):
144+
def __init__(self, sftp_server, username, password, port, ignore=None):
144145
self.sftp_server = sftp_server
145146
self.username = username
146147
self.password = password
148+
self.port = port
147149
self.sftp = self.sftpconnect()
148150
logger.info("login success.")
149151
self.ignore = ignore
@@ -152,7 +154,9 @@ def __init__(self, sftp_server, username, password, ignore=None):
152154
self.__init_gitignore()
153155

154156
def sftpconnect(self):
155-
sftp = pysftp.Connection(self.sftp_server, username=self.username, password=self.password)
157+
cnopts = pysftp.CnOpts()
158+
cnopts.hostkeys = None
159+
sftp = pysftp.Connection(self.sftp_server, username=self.username, port = int(self.port), password=self.password, cnopts=cnopts)
156160
logger.warn("login succeed")
157161
return sftp
158162

RLA/easy_log/tester.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,8 @@ def sync_log_file(self, skip_error=False):
354354
"""
355355
syn_log_file is an automatic synchronization function.
356356
It will send all log files (e.g., code/**, checkpoint/**, log/**, etc.) to your target server via the FTP protocol.
357-
To run this function, you should add some configuration on SRG.private_config.py
357+
To run this function, you should add some configuration on rla_config.yaml.
358+
We transfer files in SFTP by setting cnopts.hostkeys=None for convenience which is not safe.
358359
359360
SEND_LOG_FILE: boolean. denotes synchronization or not.
360361
ftp_server: target server ip address
@@ -393,7 +394,8 @@ def send_data(ftp_obj):
393394
ftp = ftp_factory(name=self.private_config["REMOTE_SETTING"]['file_transfer_protocol'],
394395
server=self.private_config["REMOTE_SETTING"]["ftp_server"],
395396
username=self.private_config["REMOTE_SETTING"]["username"],
396-
password=self.private_config["REMOTE_SETTING"]["password"])
397+
password=self.private_config["REMOTE_SETTING"]["password"],
398+
port=self.private_config["REMOTE_SETTING"]["port"])
397399
if self.private_config["REMOTE_SETTING"]['file_transfer_protocol'] == 'ftp':
398400
alternative_protocol = 'sftp'
399401
else:
@@ -407,7 +409,8 @@ def send_data(ftp_obj):
407409
ftp = ftp_factory(name=alternative_protocol,
408410
server=self.private_config["REMOTE_SETTING"]["ftp_server"],
409411
username=self.private_config["REMOTE_SETTING"]["username"],
410-
password=self.private_config["REMOTE_SETTING"]["password"])
412+
password=self.private_config["REMOTE_SETTING"]["password"],
413+
port=self.private_config["REMOTE_SETTING"]["port"])
411414
send_data(ftp_obj=ftp)
412415
logger.warn("sync: send success!")
413416
except Exception as e:

0 commit comments

Comments
 (0)