from checklist import * from lib import level_const, language import datetime def initialize_html(): return ''' ''' def write_header(): return ''' Report ''' def initialize_body(): return ''' ''' def write_report_base_info(account_id, datetime): html = '''

Security Baseline Self-Test Report


Account{account_id}
Generated At{datetime}
'''.format(account_id=account_id, datetime=str(datetime)) return html def write_overview(result): danger_count = str(len(result[level_const.danger])) warning_count = str(len(result[level_const.warning])) success_count = str(len(result[level_const.success])) error_count = str(len(result[level_const.error])) info_count = str(len(result[level_const.info])) html = '''
'''.format(number_of_danger=danger_count, number_of_warning=warning_count, number_of_success=success_count, number_of_info=info_count, number_of_error=error_count) return html def write_danger_result(result, item_number) -> tuple: if len(result[level_const.danger]) == 0: return item_number, '' else: html = '''
''' items = '' for result_detail in result[level_const.danger]: item_number += 1 title = result_detail.title msg = result_detail.msg cols = result_detail.result_cols rows = result_detail.result_rows table_html = '' if len(rows) == 0: pass else: table_html = '''''' for col in cols: table_html+=''''''.format(col=str(col)) for row in rows: table_html+='''''' for data in row: table_html+=''''''.format(data=str(data)) table_html+='''''' table_html+='''
{col}
{data}
''' items += '''

{table_html}
'''.format(item_number=str(item_number).zfill(2), title=title, msg=msg, table_html=table_html) html += items html += '''

''' return item_number, html def write_warning_result(result, item_number) -> tuple: if len(result[level_const.warning]) == 0: return item_number, '' else: html = '''
''' items = '' for result_detail in result[level_const.warning]: item_number += 1 title = result_detail.title msg = result_detail.msg cols = result_detail.result_cols rows = result_detail.result_rows table_html = '' if len(rows) == 0: pass else: table_html = '''''' for col in cols: table_html+=''''''.format(col=str(col)) for row in rows: table_html+='''''' for data in row: table_html+=''''''.format(data=str(data)) table_html+='''''' table_html+='''
{col}
{data}
''' items += '''

{table_html}
'''.format(item_number=str(item_number).zfill(2), title=title, msg=msg, table_html=table_html) html += items html += '''

''' return item_number, html def write_success_result(result, item_number) -> tuple: if len(result[level_const.success]) == 0: return item_number, '' else: html = '''
''' items = '' for result_detail in result[level_const.success]: item_number += 1 title = result_detail.title msg = result_detail.msg cols = result_detail.result_cols rows = result_detail.result_rows table_html = '' if len(rows) == 0: pass else: table_html = '''''' for col in cols: table_html+=''''''.format(col=str(col)) for row in rows: table_html+='''''' for data in row: table_html+=''''''.format(data=str(data)) table_html+='''''' table_html+='''
{col}
{data}
''' items += '''

{table_html}
'''.format(item_number=str(item_number).zfill(2), title=title, msg=msg, table_html=table_html) html += items html += '''

''' return item_number, html def write_info_result(result, item_number) -> tuple: if len(result[level_const.info]) == 0: return item_number, '' else: html = '''
''' items = '' for result_detail in result[level_const.info]: item_number += 1 title = result_detail.title msg = result_detail.msg cols = result_detail.result_cols rows = result_detail.result_rows table_html = '' if len(rows) == 0: pass else: table_html = '''''' for col in cols: table_html+=''''''.format(col=str(col)) for row in rows: table_html+='''''' for data in row: table_html+=''''''.format(data=str(data)) table_html+='''''' table_html+='''
{col}
{data}
''' items += '''

{table_html}
'''.format(item_number=str(item_number).zfill(2), title=title, msg=msg, table_html=table_html) html += items html += '''

''' return item_number, html def write_error_result(result, item_number) -> tuple: html = '''
''' items = '' if len(result[level_const.error]) == 0: items = '''

'''.format(item_number=str(item_number+1).zfill(2)) else: for result_detail in result[level_const.error]: item_number += 1 title = result_detail.title msg = result_detail.msg cols = result_detail.result_cols rows = result_detail.result_rows table_html = '' if len(rows) == 0: pass else: table_html = '''''' for col in cols: table_html+=''''''.format(col=str(col)) for row in rows: table_html+='''''' for data in row: table_html+=''''''.format(data=str(data)) table_html+='''''' table_html+='''
{col}
{data}
''' items += '''

{table_html}
'''.format(item_number=str(item_number).zfill(2), title=title, msg=msg, table_html=table_html) html += items html += '''

''' return item_number, html def finalize_html_korean(): return '''
''' def finalize_html_english(): return '''
''' def generate_html_report(account_id_str, result_sort_by_level, selected_language): generated_at = datetime.datetime.now().strftime("(UTC) %Y-%m-%d %H:%M:%S") html_report = initialize_html() html_report += write_header() html_report += initialize_body() html_report += write_report_base_info(account_id_str, generated_at) html_report += write_overview(result_sort_by_level) item_index = 0 item_index, danger_html = write_danger_result(result_sort_by_level, item_index) item_index, warning_html = write_warning_result(result_sort_by_level, item_index) item_index, success_html = write_success_result(result_sort_by_level, item_index) item_index, info_html = write_info_result(result_sort_by_level, item_index) item_index, error_html = write_error_result(result_sort_by_level, item_index) html_report += danger_html + warning_html + success_html + info_html + error_html if selected_language == language.LANGUAGE_CODE.ENGLISH.value: html_report += finalize_html_english() elif selected_language == language.LANGUAGE_CODE.KOREAN.value: html_report += finalize_html_korean() return html_report