예제 #1
0
def alerts_delete():
    alert_id = request.form.get("alert-id")
    alert = Alert.query.get(alert_id)
    if not alert:
        return error_response("Alert could not be found!")
    session.delete(alert)
    session.commit()

    return jsonify(success=True, message="Alert has been deleted successfully")
예제 #2
0
def alerts_delete():
    alert_id = request.form.get("alert-id")
    alert = Alert.query.get(alert_id)
    if not alert:
        return error_response("Alert could not be found!")
    session.delete(alert)
    session.commit()

    return jsonify(success=True, message="Alert has been deleted successfully")
예제 #3
0
def services_edit():
    name = request.form.get("name")
    description = request.form.get("description")
    service_id = request.form.get("service-id")
    try:
        dependencies = json.loads(request.form.get("dependencies"))
    except ValueError:
        return error_response("Could not understand format of request sent")

    if not name.strip():
        return error_response("You must specify a name")

    try:
        service = Service.query.get(service_id)
        if not service:
            return error_response("Service could not be found")
        service.name = name
        service.description = description

        gs = RedundancyGroup.query.filter(RedundancyGroup.service_id == service.id)
        for g in gs:
            session.delete(g)

        ds = ServiceDependency.query.filter(ServiceDependency.service_id == service.id)
        for d in ds:
            session.delete(d)

        for dependency in dependencies["dependencies"]:
            if dependency["type"] == "host":
                sd = ServiceDependency(service_id=service.id, host_id=dependency["id"])
            else:
                sd = ServiceDependency(service_id=service.id, host_group_id=dependency["id"])
            session.add(sd)

        for redundancy_group in dependencies["redundancyGroups"]:
            rg = RedundancyGroup(service_id=service.id)
            session.add(rg)
            session.flush()
            sd = ServiceDependency(service_id=service.id, redundancy_group_id=rg.id)
            session.add(sd)
            for item in redundancy_group["items"]:
                if item["type"] == "host":
                    rgc = RedundancyGroupComponent(redundancy_group_id=rg.id, host_id=item["id"])
                else:
                    rgc = RedundancyGroupComponent(redundancy_group_id=rg.id, host_group_id=item["id"])
                session.add(rgc)

        session.commit()
    except ValueError:
        session.rollback()
        return error_response(
            "The data sent to the server could not be " "understood.  Please refresh the page and try again."
        )

    return jsonify(success=True, message="Service has been saved successfully")
예제 #4
0
def hosts_delete():
    host_id = request.form.get("host-id")

    h = Host.query.get(host_id)
    if not h:
        return error_response("Host could not be found!")

    session.delete(h)
    session.commit()

    return jsonify(success=True, message="Host has been deleted successfully")
예제 #5
0
def services_delete():
    service_id = request.form.get("service-id")
    s = Service.query.get(service_id)

    if not s:
        return error_response("The service you are trying to delete could not " "be found")

    session.delete(s)
    session.commit()

    return jsonify(success=True, message="Service has been deleted successfully")
예제 #6
0
def users_delete():
    user_id = request.form.get("user-id")

    u = User.query.get(user_id)
    if not u:
        return error_response("The user you are trying to delete does not exist")

    session.delete(u)
    session.commit()

    return jsonify(success=True, message="User has been deleted successfully!")
예제 #7
0
def checks_delete():
    check_id = request.form.get("check-id")
    check = Check.query.get(check_id)

    if not check:
        return error_response("The check you are trying to delete could not " "be found")

    session.delete(check)
    session.commit()

    return jsonify(success=True, message="Check has been deleted successfully!")
예제 #8
0
def scheduling_delete():
    schedule_id = request.form.get("schedule-id")

    s = Schedule.query.get(schedule_id)
    if not s:
        return error_response("The schedule you are trying to delete does " "not exist")

    session.delete(s)
    session.commit()

    return jsonify(success=True, message="Schedule has been deleted " "successfully!")
예제 #9
0
def host_groups_delete():
    host_group_id = request.form.get("host-group-id")

    g = HostGroup.query.get(host_group_id)
    if not g:
        return error_response("Host Group could not be found!")

    session.delete(g)
    session.commit()

    return jsonify(success=True, message="Host Group has been deleted successfully")
예제 #10
0
def hosts_delete():
    host_id = request.form.get("host-id")

    h = Host.query.get(host_id)
    if not h:
        return error_response("Host could not be found!")

    session.delete(h)
    session.commit()

    return jsonify(success=True, message="Host has been deleted successfully")
예제 #11
0
def host_groups_delete():
    host_group_id = request.form.get("host-group-id")

    g = HostGroup.query.get(host_group_id)
    if not g:
        return error_response("Host Group could not be found!")

    session.delete(g)
    session.commit()

    return jsonify(success=True,
        message="Host Group has been deleted successfully")
예제 #12
0
def users_delete():
    user_id = request.form.get("user-id")

    u = User.query.get(user_id)
    if not u:
        return error_response(
            "The user you are trying to delete does not exist")

    session.delete(u)
    session.commit()

    return jsonify(success=True, message="User has been deleted successfully!")
예제 #13
0
def services_delete():
    service_id = request.form.get("service-id")
    s = Service.query.get(service_id)

    if not s:
        return error_response("The service you are trying to delete could not "
            "be found")

    session.delete(s)
    session.commit()

    return jsonify(success=True,
        message="Service has been deleted successfully")
예제 #14
0
def checks_delete():
    check_id = request.form.get("check-id")
    check = Check.query.get(check_id)

    if not check:
        return error_response("The check you are trying to delete could not "
            "be found")

    session.delete(check)
    session.commit()

    return jsonify(success=True,
        message="Check has been deleted successfully!")
예제 #15
0
def scheduling_delete():
    schedule_id = request.form.get("schedule-id")

    s = Schedule.query.get(schedule_id)
    if not s:
        return error_response("The schedule you are trying to delete does "
            "not exist")

    session.delete(s)
    session.commit()

    return jsonify(success=True, message="Schedule has been deleted "
        "successfully!")
예제 #16
0
def plugins_delete():
    plugin_id = request.form.get("plugin-id")

    p = Plugin.query.get(plugin_id)
    if not p:
        return error_response("Plugin does not exist")

    plugin_repo = get_config_value(config, "plugin_repo")
    try:
        os.remove(os.path.join(plugin_repo, p.archive_file))
        if p.signature_file:
            os.remove(os.path.join(plugin_repo, p.signature_file))
    except FileNotFoundError:
        # We are deleting so we don't care if the file doesn't exist
        pass

    session.delete(p)
    session.commit()

    return jsonify(success=True, message="Plugin has been deleted successfully")
예제 #17
0
def plugins_delete():
    plugin_id = request.form.get("plugin-id")

    p = Plugin.query.get(plugin_id)
    if not p:
        return error_response("Plugin does not exist")

    plugin_repo = get_config_value(config, "plugin_repo")
    try:
        os.remove(os.path.join(plugin_repo, p.archive_file))
        if p.signature_file:
            os.remove(os.path.join(plugin_repo, p.signature_file))
    except FileNotFoundError:
        # We are deleting so we don't care if the file doesn't exist
        pass

    session.delete(p)
    session.commit()

    return jsonify(success=True,
        message="Plugin has been deleted successfully")
예제 #18
0
def services_edit():
    name = request.form.get("name")
    description = request.form.get("description")
    service_id = request.form.get("service-id")
    try:
        dependencies = json.loads(request.form.get("dependencies"))
    except ValueError:
        return error_response("Could not understand format of request sent")

    if not name.strip():
        return error_response("You must specify a name")

    try:
        service = Service.query.get(service_id)
        if not service:
            return error_response("Service could not be found")
        service.name = name
        service.description = description

        gs = RedundancyGroup.query.filter(
            RedundancyGroup.service_id==service.id)
        for g in gs:
            session.delete(g)

        ds = ServiceDependency.query.filter(
            ServiceDependency.service_id==service.id)
        for d in ds:
            session.delete(d)

        for dependency in dependencies["dependencies"]:
            if dependency["type"] == "host":
                sd = ServiceDependency(service_id=service.id,
                    host_id=dependency["id"])
            else:
                sd = ServiceDependency(service_id=service.id,
                    host_group_id=dependency["id"])
            session.add(sd)

        for redundancy_group in dependencies["redundancyGroups"]:
            rg = RedundancyGroup(service_id=service.id)
            session.add(rg)
            session.flush()
            sd = ServiceDependency(service_id=service.id,
                redundancy_group_id=rg.id)
            session.add(sd)
            for item in redundancy_group["items"]:
                if item["type"] == "host":
                    rgc = RedundancyGroupComponent(redundancy_group_id=rg.id,
                        host_id=item["id"])
                else:
                    rgc = RedundancyGroupComponent(redundancy_group_id=rg.id,
                        host_group_id=item["id"])
                session.add(rgc)

        session.commit()
    except ValueError:
        session.rollback()
        return error_response("The data sent to the server could not be "
            "understood.  Please refresh the page and try again.")

    return jsonify(success=True, message="Service has been saved successfully")