def do_render_availability(what, av_rawdata, av_data, av_mode, av_object, avoptions): if av_mode == "timeline": render_availability_timelines(what, av_data, avoptions) else: availability_tables = availability.compute_availability_groups(what, av_data, avoptions) render_availability_tables(availability_tables, what, avoptions) annotations = availability.load_annotations() show_annotations(annotations, av_rawdata, what, avoptions, omit_service=av_object is not None)
def do_render_availability(what: AVObjectType, av_rawdata: AVRawData, av_data: AVData, av_mode: AVMode, av_object: AVObjectSpec, avoptions: AVOptions) -> None: if av_mode == "timeline": render_availability_timelines(what, av_data, avoptions) else: availability_tables = availability.compute_availability_groups(what, av_data, avoptions) render_availability_tables(availability_tables, what, avoptions) annotations = availability.load_annotations() show_annotations(annotations, av_rawdata, what, avoptions, omit_service=av_object is not None)
def _output_availability_csv(what, av_data, avoptions): # type: (AVObjectType, AVData, AVOptions) -> None def cells_from_row(table, group_titles, group_cells, object_titles, cell_titles, row_object, row_cells): # type: (Table, List[Text], List[Text], List[Text], List[Text], AVObjectCells, AVRowCells) -> None for column_title, group_title in zip(group_titles, group_cells): table.cell(column_title, group_title) for title, (name, _url) in zip(object_titles, row_object): table.cell(title, name) for (title, _help), (text, _css) in zip(cell_titles, row_cells): table.cell(title, text) _av_output_set_content_disposition("Checkmk-Availability") availability_tables = availability.compute_availability_groups( what, av_data, avoptions) with table_element("av_items", output_format="csv") as table: for group_title, availability_table in availability_tables: av_table = availability.layout_availability_table( what, group_title, availability_table, avoptions) pad = 0 if group_title: group_titles, group_cells = [_("Group")], [group_title] else: group_titles, group_cells = [], [] for row in av_table["rows"]: table.row() cells_from_row( table, group_titles, group_cells, av_table["object_titles"], av_table["cell_titles"], row["object"], row["cells"], ) # presumably all rows have the same width pad = len(row["object"]) - 1 table.row() if "summary" in av_table: row_object = [(_("Summary"), "")] # type: AVObjectCells row_object += [(u"", "")] * pad cells_from_row( table, group_titles, group_cells, av_table["object_titles"], av_table["cell_titles"], row_object, av_table["summary"], )