From eb3a90e4407991c03762d184fd38de69763aa079 Mon Sep 17 00:00:00 2001 From: David Trattnig <david.trattnig@o94.at> Date: Tue, 25 Feb 2020 17:16:36 +0100 Subject: [PATCH] Moved mailer package and added docs. --- .../communication/liquidsoap/communicator.py | 2 +- modules/communication/{mail => }/mail.py | 42 +++++++++++++++++-- modules/communication/redis/messenger.py | 2 +- modules/monitoring/diskspace_watcher.py | 2 +- 4 files changed, 42 insertions(+), 6 deletions(-) rename modules/communication/{mail => }/mail.py (78%) diff --git a/modules/communication/liquidsoap/communicator.py b/modules/communication/liquidsoap/communicator.py index ddd1ee53..83696219 100644 --- a/modules/communication/liquidsoap/communicator.py +++ b/modules/communication/liquidsoap/communicator.py @@ -29,7 +29,7 @@ import json from modules.communication.liquidsoap.playerclient import LiquidSoapPlayerClient # from modules.communication.liquidsoap.recorderclient import LiquidSoapRecorderClient from modules.communication.liquidsoap.initthread import LiquidSoapInitThread -from modules.communication.mail.mail import AuraMailer +from modules.communication.mail import AuraMailer from libraries.enum.auraenumerations import TerminalColors, ScheduleEntryType from libraries.exceptions.auraexceptions import LQConnectionError diff --git a/modules/communication/mail/mail.py b/modules/communication/mail.py similarity index 78% rename from modules/communication/mail/mail.py rename to modules/communication/mail.py index 9e0072f6..4f6e9375 100644 --- a/modules/communication/mail/mail.py +++ b/modules/communication/mail.py @@ -28,22 +28,58 @@ from libraries.exceptions.auraexceptions import MailingException class AuraMailer(): + """ + Service to send emails to Aura administrators. + """ config = None - # ------------------------------------------------------------------------------------------ # + + def __init__(self, config): + """ + Constructor to initialize service with Aura `config`. + + Args: + config (AuraConfig): The configuration with the mail server details + """ self.config = config self.admin_mails = config.get("admin_mail") - # ------------------------------------------------------------------------------------------ # + + + # + # PUBLIC METHODS + # + + def send_admin_mail(self, subject, body): + """ + Sends an email to the administrator as defined in the configuration. + + Args: + subject (String): The email's subject + body (String): The email's body text + """ admin_mails = self.admin_mails.split() for mail_to in admin_mails: self.__send(mail_to, subject, body) - # ------------------------------------------------------------------------------------------ # + + + # + # PRIVATE METHODS + # + + def __send(self, mail_to, subject, body): + """ + Sends an email to the given address. + + Args: + subject (String): The email's subject + body (String): The email's body text + """ # read config mail_server = self.config.get("mail_server") mail_port = self.config.get("mail_server_port") diff --git a/modules/communication/redis/messenger.py b/modules/communication/redis/messenger.py index d489205d..793cccae 100644 --- a/modules/communication/redis/messenger.py +++ b/modules/communication/redis/messenger.py @@ -27,7 +27,7 @@ import logging import datetime from libraries.database.statestore import RedisStateStore -from modules.communication.mail.mail import AuraMailer +from modules.communication.mail import AuraMailer from libraries.exceptions.auraexceptions import PlaylistException from libraries.enum.auraenumerations import RedisChannel from libraries.base.logger import AuraLogger diff --git a/modules/monitoring/diskspace_watcher.py b/modules/monitoring/diskspace_watcher.py index 1644bfc6..f655a8c5 100644 --- a/modules/monitoring/diskspace_watcher.py +++ b/modules/monitoring/diskspace_watcher.py @@ -27,7 +27,7 @@ import datetime import threading from collections import namedtuple -from modules.communication.mail.mail import AuraMailer +from modules.communication.mail import AuraMailer from libraries.exceptions.auraexceptions import MailingException from libraries.exceptions.auraexceptions import DiskSpaceException -- GitLab