diff options
Diffstat (limited to 'python/citco_submission.py')
| -rw-r--r-- | python/citco_submission.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/python/citco_submission.py b/python/citco_submission.py index 6ded8224..629d0626 100644 --- a/python/citco_submission.py +++ b/python/citco_submission.py @@ -8,13 +8,15 @@ from report_ops.status import CitcoSubmission logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) +fund_sftp = {"ISOSEL": ("citco", "/outgoing/notifications")} -def close_and_reconnect(): + +def close_and_reconnect(creds, folder): retries = 5 for i in range(retries): try: CitcoSubmission._client.client.close() - CitcoSubmission.init_client("citco", folder="/outgoing/notifications") + CitcoSubmission.init_client(creds, folder=folder) except (SSHException, OSError) as e: if i == retries - 1: raise e @@ -25,20 +27,19 @@ def close_and_reconnect(): def run(): - CitcoSubmission.init_client("citco", folder="/outgoing/notifications") while True: - try: - for f in CitcoSubmission._client.client.listdir_iter( - "/outgoing/notifications" - ): - if S_ISREG(f.st_mode): - try: - CitcoSubmission.process(f.filename) - except ValueError as e: - logger.info(e) - except (SSHException, OSError) as e: - logger.info(e) - close_and_reconnect() + for fund, (creds, folder) in fund_sftp.items(): + CitcoSubmission.init_client(creds, folder=folder) + try: + for f in CitcoSubmission._client.client.listdir_iter(folder): + if S_ISREG(f.st_mode): + try: + CitcoSubmission.process(f.filename) + except ValueError as e: + logger.info(f"{fund}: {e}") + except (SSHException, OSError) as e: + logger.info(e) + close_and_reconnect(creds, folder) time.sleep(60) CitcoSubmission.check_cache() |
