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 [])
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()] )
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 [] )
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)