Example #1
0
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
Example #2
0
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