Commit a9595cdd authored by JOSSOUD Olivier's avatar JOSSOUD Olivier
Browse files

FTP. Remove useless `ftp_` for ftp's functions name.

parent 7d500ea0
......@@ -5,14 +5,14 @@ import re
import wimcollect.common.logger as logger
def ftp_connect(ftp_config: dict, log: logger.Logger, object_id: str) -> ftplib.FTP:
"""Connect to FTP server according to parameters read from settings.ini file.
def connect(ftp_config: dict, log: logger.Logger, object_id: str) -> ftplib.FTP:
"""Connect to FTP server.
Parameters
----------
ftp_config: dict
Dict containing FTP connection information: `host`, `user` and `password`.
log: wimcollect.logger
log: wimcollect.common.logger.Logger
Logger to record debug/info/error messages.
object_id: str
Object identifier, used as marker for log messages.
......@@ -40,7 +40,7 @@ def ftp_connect(ftp_config: dict, log: logger.Logger, object_id: str) -> ftplib.
return session
def ftp_list_files(ftp_session: ftplib.FTP, distant_directory_path: str, log: logger.Logger, object_id: str) -> list:
def list_files(ftp_session: ftplib.FTP, distant_directory_path: str, log: logger.Logger, object_id: str) -> list:
"""List the files in the distant FTP directory.
Parameters
......@@ -49,7 +49,7 @@ def ftp_list_files(ftp_session: ftplib.FTP, distant_directory_path: str, log: lo
FTP session.
distant_directory_path: str
Full path of the directory whose content should be listed.
log: wimcollect.logger
log: wimcollect.common.logger.Logger
Logger to record debug/info/error messages.
object_id: str
Object identifier, used as marker for log messages.
......@@ -72,19 +72,19 @@ def ftp_list_files(ftp_session: ftplib.FTP, distant_directory_path: str, log: lo
return filepaths
def ftp_download_file(source_filepath: str, dest_filepath: str,
log: logger.Logger, object_id: str,
ftp_config: dict = None, ftp_session: ftplib.FTP = None,
delete_if_success: bool = False) -> bool:
def download_file(source_filepath: str, dest_filepath: str,
log: logger.Logger, object_id: str,
ftp_config: dict = None, ftp_session: ftplib.FTP = None,
delete_if_success: bool = False) -> bool:
"""Download a file from the FTP server.
Parameters
----------
source_filepath: str
Full path of the distant to-be_downloaded file.
Full path of the distant to-be-downloaded file.
dest_filepath: str
Full path where the downloaded file should be stored.
log: wimcollect.logger
log: wimcollect.common.logger.Logger
Logger to record debug/info/error messages.
object_id: str
Object identifier, used as marker for log messages.
......@@ -105,7 +105,7 @@ def ftp_download_file(source_filepath: str, dest_filepath: str,
# Open FTP session if missing
if ftp_session is None:
close_session = True
ftp_session = ftp_connect(ftp_config, log, object_id)
ftp_session = connect(ftp_config, log, object_id)
else:
close_session = False
......@@ -124,9 +124,10 @@ def ftp_download_file(source_filepath: str, dest_filepath: str,
ftp_session.delete(source_filepath)
log.write(object_id, "Done. Destination file: " + dest_filepath)
else:
log.write(object_id, "FAILED. Destination file: " + dest_filepath)
raise Exception("Failed to download [" + source_filepath + "] in [" + dest_filepath + "]."
" FTP response: [" + response + "]")
msg = "Failed to download [" + source_filepath + "] in [" + dest_filepath + "]."\
" FTP response: [" + response + "]"
log.write(object_id, msg)
raise Exception(msg)
# Close the FTP session if it has been opened at the beginning of this function.
if close_session:
......
......@@ -28,8 +28,8 @@ class Collector(utils.LogConfig):
dest_filepath = self.__get_dest_filepath__(yyyymm)
# Download
success = ftp.ftp_download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_config=self.config[self.object_id])
success = ftp.download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_config=self.config[self.object_id])
# Compress
if success:
......
......@@ -32,7 +32,7 @@ class Collector(utils.LogConfig):
"""
self.logger.write(self.object_id, "Download picarro data from " + site_id)
ftp_session = ftp.ftp_connect(self.config[self.object_id], self.logger, self.object_id)
ftp_session = ftp.connect(self.config[self.object_id], self.logger, self.object_id)
# Build source file path
source_dir = self.distant_base_dir + "/" + site_id + "/picarro/"
......@@ -40,15 +40,15 @@ class Collector(utils.LogConfig):
source_filepath = source_dir + source_filename
# Check that to-be-downloaded file exists
source_filepaths = ftp.ftp_list_files(ftp_session, source_dir, self.logger, self.object_id)
source_filepaths = ftp.list_files(ftp_session, source_dir, self.logger, self.object_id)
if source_filepath not in source_filepaths:
self.logger.write(self.object_id, "File not found: " + source_filepath)
raise FileNotFoundError(source_filepath)
# Download file
dest_filepath = self.__get_picarro_dest_filepath__(source_filepath)
success = ftp.ftp_download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_session=ftp_session)
success = ftp.download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_session=ftp_session)
ftp_session.quit()
......@@ -93,14 +93,14 @@ class Collector(utils.LogConfig):
"""
self.logger.write(self.object_id, "Download hobo data from " + site_id)
ftp_session = ftp.ftp_connect(self.config[self.object_id], self.logger, self.object_id)
ftp_session = ftp.connect(self.config[self.object_id], self.logger, self.object_id)
hobo_distant_path = self.distant_base_dir + "/" + site_id + "/hobo/"
source_filepaths = ftp.ftp_list_files(ftp_session, hobo_distant_path, self.logger, self.object_id)
source_filepaths = ftp.list_files(ftp_session, hobo_distant_path, self.logger, self.object_id)
for source_filepath in source_filepaths:
dest_filepath = self.__get_hobo_dest_filepath__(source_filepath)
ftp.ftp_download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_session=ftp_session)
ftp.download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_session=ftp_session)
ftp_session.quit()
......
......@@ -32,8 +32,8 @@ class Collector(utils.LogConfig):
dest_filepath = self.__get_dest_filepath__(day)
# Download
success = ftp.ftp_download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_config=self.config[self.object_id])
success = ftp.download_file(source_filepath, dest_filepath, self.logger, self.object_id,
ftp_config=self.config[self.object_id])
# Compress
if success:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment