diff --git a/pagure/ui/fork.py b/pagure/ui/fork.py index 4a2fc85..d179eb3 100644 --- a/pagure/ui/fork.py +++ b/pagure/ui/fork.py @@ -541,7 +541,6 @@ def pull_request_add_comment( else: flask.flash(str(err), 'error') except filelock.Timeout as err: # pragma: no cover - is_js = False SESSION.rollback() APP.logger.exception(err) if is_js: @@ -705,8 +704,18 @@ def pull_request_edit_comment( LOG.error(err) if is_js: return 'error' - flask.flash( - 'Could not edit the comment: %s' % commentid, 'error') + else: + flask.flash( + 'Could not edit the comment: %s' % commentid, 'error') + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + if is_js: + return 'error' + else: + flask.flash( + 'We could not save all the info, please try again', + 'error') if is_js: return 'ok' @@ -854,6 +863,13 @@ def cancel_request_pull(repo, requestid, username=None, namespace=None): flask.flash( 'Could not update this pull-request in the database', 'error') + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'We could not save all the info, please try again', + 'error') + else: flask.flash('Invalid input submitted', 'error') @@ -911,6 +927,12 @@ def set_assignee_requests(repo, requestid, username=None, namespace=None): SESSION.rollback() APP.logger.exception(err) flask.flash(str(err), 'error') + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'We could not save all the info, please try again', + 'error') return flask.redirect(flask.url_for( 'request_pull', username=username, namespace=namespace, @@ -1079,6 +1101,12 @@ def new_request_pull( except SQLAlchemyError as err: # pragma: no cover SESSION.rollback() flask.flash(str(err), 'error') + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'We could not save all the info, please try again', + 'error') if not repo_admin: form = None diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index eb5196a..631f579 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -320,20 +320,17 @@ def update_issue(repo, issueid, username=None, namespace=None): except pagure.exceptions.PagureException as err: is_js = False SESSION.rollback() - if not is_js: - flask.flash(err.message, 'error') + flask.flash(err.message, 'error') except SQLAlchemyError as err: # pragma: no cover is_js = False SESSION.rollback() APP.logger.exception(err) - if not is_js: - flask.flash(str(err), 'error') + flask.flash(str(err), 'error') except filelock.Timeout as err: # pragma: no cover is_js = False SESSION.rollback() APP.logger.exception(err) - if not is_js: - flask.flash( + flask.flash( 'We could not save all the info, please try again', 'error') else: @@ -848,6 +845,12 @@ def new_issue(repo, username=None, namespace=None): except SQLAlchemyError as err: # pragma: no cover SESSION.rollback() flask.flash(str(err), 'error') + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'We could not save all the info, please try again', + 'error') types = None default = None @@ -1093,10 +1096,18 @@ def edit_issue(repo, issueid, username=None, namespace=None): repo=repo.name, issueid=issueid) return flask.redirect(url) except pagure.exceptions.PagureException as err: + SESSION.rollback() flask.flash(str(err), 'error') except SQLAlchemyError as err: # pragma: no cover SESSION.rollback() flask.flash(str(err), 'error') + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'We could not save all the info, please try again', + 'error') + elif flask.request.method == 'GET': form.title.data = issue.title form.issue_content.data = issue.content @@ -1147,14 +1158,22 @@ def upload_issue(repo, issueid, username=None, namespace=None): if form.validate_on_submit(): filestream = flask.request.files['filestream'] - new_filename = pagure.lib.git.add_file_to_git( - repo=repo, - issue=issue, - ticketfolder=APP.config['TICKETS_FOLDER'], - user=user_obj, - filename=filestream.filename, - filestream=filestream.stream, - ) + try: + new_filename = pagure.lib.git.add_file_to_git( + repo=repo, + issue=issue, + ticketfolder=APP.config['TICKETS_FOLDER'], + user=user_obj, + filename=filestream.filename, + filestream=filestream.stream, + ) + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'We could not save all the info, please try again', + 'error') + return flask.jsonify({ 'output': 'ok', 'filename': new_filename.split('-', 1)[1], @@ -1310,6 +1329,12 @@ def edit_comment_issue( return 'error' flask.flash( 'Could not edit the comment: %s' % commentid, 'error') + except filelock.Timeout as err: # pragma: no cover + SESSION.rollback() + APP.logger.exception(err) + flask.flash( + 'We could not save all the info, please try again', + 'error') if is_js: return 'ok'