in src/handlers/rules_handler.py [0:0]
def write(self, wsh: Worksheet, wb: Workbook):
bold = wb.add_format({'bold': True})
red = wb.add_format({'bg_color': '#da9694'})
green = wb.add_format({'bg_color': '#92d051'})
def status_color(st: bool):
if st:
return green
return red
remapped = {}
for item in self._it:
remapped.setdefault(item['policy'], []).append(item)
# sorts buy the total number of failed resources per rule
# across all the regions
data = dict(sorted(
remapped.items(),
key=lambda p: sum(i.get('failed_resources') or 0 for i in p[1]),
reverse=True
))
table = Table()
table.new_row()
for h in self.head:
table.add_cells(CellContent(h, bold))
for rule, items in data.items():
table.new_row()
table.add_cells(CellContent(rule))
items = sorted(
items,
key=lambda i: i.get('failed_resources') or 0,
reverse=True
)
table.add_cells(*[
CellContent(item['region']) for item in items
])
table.add_cells(*[
CellContent(str(item['succeeded']).lower(),
status_color(item['succeeded']))
for item in items
])
table.add_cells(*[
CellContent(item['execution_time']) for item in items
])
table.add_cells(*[
CellContent(item.get('failed_resources') or
self.status_empty(item['succeeded']))
for item in items
])
writer = XlsxRowsWriter()
writer.write(wsh, table)