def notify_by_email(general_report: BaseReport,
                    detailed_report: DetailedReport = None,
                    recipients: list = None,
                    group_str=""):
    def rand(string_to_manipulate):
        letters = [[
            'o', '0', '\u022f', '\u1ecd', '\u1ecf', '\u01a1', '\u00f6',
            '\u00f3', '\u00f2'
        ], ['s', '\u0282'], ['r', '\u0393'],
                   ['e', '\u1eb9', '\u0117', '\u0117', '\u00e9', '\u00e8'],
                   ["g", "\u0121"],
                   ["u", "\u057d", "\u00fc", "\u00fa", "\u00f9"]]

        manipulated_string = string_to_manipulate
        for charlist in letters:
            manipulated_string = manipulated_string.replace(
                charlist[0], random.choice(charlist))
        return manipulated_string

    email_client = Email()
    LOGGER.info("Sending email to '%s'", recipients)
    subject = f"Cloud resources: {group_str} usage report - {datetime.now()}"
    random_subject = rand(string_to_manipulate=subject)
    email_client.send(
        subject=random_subject,
        content=general_report.to_html(),
        recipients=recipients,
        html=True,
        files=[detailed_report.to_file()] if detailed_report else [])
Exemple #2
0
def cloud_report(mail_to):
    cloud_instances = CloudInstances()
    static_ips = StaticIPs(cloud_instances)
    notify_by_email(
        general_report=GeneralReport(cloud_instances=cloud_instances,
                                     static_ips=static_ips),
        detailed_report=DetailedReport(cloud_instances=cloud_instances,
                                       static_ips=static_ips),
        recipients=mail_to)
def notify_by_email(general_report: GeneralReport, detailed_report: DetailedReport, recipients: list):
    email_client = Email()
    LOGGER.info("Sending email to '%s'", recipients)
    email_client.send(subject="Cloud resources report - {}".format(datetime.now()),
                      content=general_report.to_html(),
                      recipients=recipients,
                      html=True,
                      files=[detailed_report.to_file()]
                      )
Exemple #4
0
def notify_by_email(general_report: BaseReport,
                    detailed_report: DetailedReport = None,
                    recipients: list = None,
                    group_str=""):
    email_client = Email()
    LOGGER.info("Sending email to '%s'", recipients)
    email_client.send(subject=f"Cloud resources: {group_str} usage report - {datetime.now()}",
                      content=general_report.to_html(),
                      recipients=recipients,
                      html=True,
                      files=[detailed_report.to_file()] if detailed_report else []
                      )
Exemple #5
0
def notify_qa_by_email(general_report: GeneralReport,
                       detailed_report: DetailedReport = None,
                       recipients: list = None):
    email_client = Email()
    if not recipients:
        recipients = ["*****@*****.**"]
    attaching_files = [detailed_report.to_file()] if detailed_report else []
    LOGGER.info("Sending email to '%s'", recipients)
    email_client.send(
        subject="Cloud resources: QA only usage report - {}".format(
            datetime.now()),
        content=general_report.to_html(),
        recipients=recipients,
        html=True,
        files=attaching_files)
def cloud_report(mail_to):
    cloud_instances = CloudInstances()
    notify_by_email(general_report=GeneralReport(cloud_instances),
                    detailed_report=DetailedReport(cloud_instances),
                    recipients=mail_to)