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))
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
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)
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)