예제 #1
0
def copr_delete(username, coprname):
    form = forms.CoprDeleteForm()
    copr = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname).first()

    if form.validate_on_submit() and copr:
        builds_query = builds_logic.BuildsLogic.get_multiple(
            flask.g.user, copr=copr)

        try:
            for build in builds_query:
                builds_logic.BuildsLogic.delete_build(flask.g.user, build)
            coprs_logic.CoprsLogic.delete(flask.g.user, copr)
        except (exceptions.ActionInProgressException,
                exceptions.InsufficientRightsException) as e:

            db.session.rollback()
            flask.flash(str(e))
            return flask.redirect(flask.url_for("coprs_ns.copr_detail",
                                                username=username,
                                                coprname=coprname))
        else:
            db.session.commit()
            flask.flash("Project was deleted successfully.")
            return flask.redirect(flask.url_for("coprs_ns.coprs_by_owner",
                                                username=username))
    else:
        if copr:
            return flask.render_template("coprs/detail/delete.html",
                                         form=form, copr=copr)
        else:
            return page_not_found("Project {0}/{1} does not exist"
                                  .format(username, coprname))
예제 #2
0
def api_copr_delete(username, coprname):
    """ Deletes selected user's project
    """
    form = forms.CoprDeleteForm(csrf_enabled=False)
    copr = coprs_logic.CoprsLogic.get(flask.g.user, username, coprname).first()
    httpcode = 200

    if form.validate_on_submit() and copr:
        builds_query = builds_logic.BuildsLogic.get_multiple(flask.g.user,
                                                             copr=copr)
        try:
            for build in builds_query:
                builds_logic.BuildsLogic.delete_build(flask.g.user, build)
            coprs_logic.CoprsLogic.delete(flask.g.user, copr)
        except (exceptions.ActionInProgressException,
                exceptions.InsufficientRightsException) as err:
            output = {"output": "notok", "error": err}
            httpcode = 500
            db.session.rollback()
        else:
            message = "Project {0} has been deleted.".format(coprname)
            output = {"output": "ok", "message": message}
            db.session.commit()
    else:
        output = {"output": "notok", "error": "Invalid request"}
        httpcode = 500

    jsonout = flask.jsonify(output)
    jsonout.status_code = httpcode
    return jsonout
예제 #3
0
def process_delete(copr, url_on_error, url_on_success):
    form = forms.CoprDeleteForm()
    if form.validate_on_submit():

        try:
            ComplexLogic.delete_copr(copr)
        except (exceptions.ActionInProgressException,
                exceptions.InsufficientRightsException) as e:

            db.session.rollback()
            flask.flash(str(e), "error")
            return flask.redirect(url_on_error)
        else:
            db.session.commit()
            flask.flash("Project has been deleted successfully.")
            return flask.redirect(url_on_success)
    else:
        return render_template("coprs/detail/settings/delete.html", form=form, copr=copr)
예제 #4
0
def api_copr_delete(copr):
    """ Deletes selected user's project
    """
    form = forms.CoprDeleteForm(meta={'csrf': False})
    httpcode = 200

    if form.validate_on_submit() and copr:
        try:
            ComplexLogic.delete_copr(copr)
        except (exceptions.ActionInProgressException,
                exceptions.InsufficientRightsException) as err:

            db.session.rollback()
            raise LegacyApiError(str(err))
        else:
            message = "Project {} has been deleted.".format(copr.name)
            output = {"output": "ok", "message": message}
            db.session.commit()
    else:
        raise LegacyApiError("Invalid request: {0}".format(form.errors))

    return flask.jsonify(output)