def show_downtime(params): """Show downtime""" live = sites.live() downtime_id = params["downtime_id"] q = Query( columns=[ Downtimes.id, Downtimes.host_name, Downtimes.service_description, Downtimes.is_service, Downtimes.author, Downtimes.start_time, Downtimes.end_time, Downtimes.recurring, Downtimes.comment, ], filter_expr=Downtimes.id.op("=", downtime_id), ) try: downtime = q.fetchone(live) except ValueError: return problem( status=404, title="The requested downtime was not found", detail=f"The downtime id {downtime_id} did not match any downtime", ) return _serve_downtime(downtime)
def show_service(params): """Show the monitored service of a host""" service_description = params["service_description"] host_name = params["host_name"] live = sites.live() q = Query( [ Services.description, Services.host_name, Services.state_type, Services.state, Services.last_check, ], filter_expr=And(Services.host_name.op("=", params["host_name"]), Services.description.op("=", service_description)), ) try: service = q.fetchone(live) except ValueError: return problem( status=404, title="The requested service was not found", detail= f"The service description {service_description} did not match any service", ) return constructors.serve_json( constructors.domain_object( domain_type='service', identifier=f"{host_name}-{service_description}", title=f"Service {service_description}", extensions=service, links=[], editable=False, deletable=False))