def do_commit(request, submits, user, repo_user, repo_pass, message=''): if deferredhandler.deferred_enabled: deferredhandler.add_submits(submits, user, repo_user, repo_pass, message) msg = ungettext('File added to the queue for further processing.', 'Files added to the queue for further processing.', len(submits)) messages.info(request, message=msg) else: args = {'files': submits, 'current_user': user, 'user': repo_user, 'pword': repo_pass, 'message': message} if getattr(settings, 'SUBMIT_OFFLINE', False) is True: t = threading.Thread(target=__perform_commit, name="commit_%s" % user.username, kwargs=args) t.start() msg = ungettext("The file is being processed. You'll be notified once completed.", "The files are being processed. You'll be notified once completed.", len(submits)) messages.info(request, message=msg) else: args['request'] = request return __perform_commit(args) return True
def __perform_commit(**kw): request = kw.pop('request',None) c = SubmitClient(**kw) try: c.run() msg = ungettext('File submitted.', 'Files submitted.', len(submits)) if request is not None: messages.success(request, message=msg) except SubmitException, se: logger.error(se) if request is not None: messages.error(request, message=_("Submit failed. Reason: %s") % smart_unicode(e)) else: if len(se.files) > 0 and deferredhandler.deferred_running: logger.info("%d files added to deferred handler because they were locked at this moment" % len(se.files)) deferredhandler.add_submits(se.files, user, repo_user, repo_pass, message) else: kw['user'].email_user("Submit failed", message=smart_unicode(e)) return False