Esempio n. 1
0
def bulk_validate_file(result_id, **kw):
    res = ValidationResult.objects.get(pk=result_id)
    task_error = None
    validation = None
    try:
        file_base = os.path.basename(res.file.file_path)
        log.info('[1@None] Validating file %s (%s) for result_id %s'
                 % (res.file, file_base, res.id))
        target = res.validation_job.target_version
        ver = {target.application.guid: [target.version]}
        overrides = {"targetapp_maxVersion":
                                {target.application.guid: target.version}}
        validation = run_validator(res.file.file_path, for_appversions=ver,
                                   test_all_tiers=True, overrides=overrides)
    except:
        task_error = sys.exc_info()
        log.error(u"bulk_validate_file exception: %s: %s"
                  % (task_error[0], task_error[1]), exc_info=False)

    res.completed = datetime.now()
    if task_error:
        res.task_error = ''.join(traceback.format_exception(*task_error))
    else:
        res.apply_validation(validation)
        log.info('[1@None] File %s (%s) errors=%s'
                 % (res.file, file_base, res.errors))
    res.save()
    tally_job_results(res.validation_job.id)

    if task_error:
        etype, val, tb = task_error
        raise etype, val, tb
Esempio n. 2
0
def bulk_validate_file(result_id, **kw):
    res = ValidationResult.objects.get(pk=result_id)
    task_error = None
    validation = None
    file_base = os.path.basename(res.file.file_path)
    try:
        log.info('[1@None] Validating file %s (%s) for result_id %s' %
                 (res.file, file_base, res.id))
        target = res.validation_job.target_version
        guid = amo.APP_IDS[target.application].guid
        ver = {guid: [target.version]}
        # Set min/max so the validator only tests for compatibility with
        # the target version. Note that previously we explicitly checked
        # for compatibility with older versions. See bug 675306 for
        # the old behavior.
        overrides = {
            'targetapp_minVersion': {
                guid: target.version
            },
            'targetapp_maxVersion': {
                guid: target.version
            }
        }
        validation = run_validator(res.file.file_path,
                                   for_appversions=ver,
                                   test_all_tiers=True,
                                   overrides=overrides,
                                   compat=True)
    except:
        task_error = sys.exc_info()
        log.error(u"bulk_validate_file exception on file %s (%s): %s: %s" %
                  (res.file, file_base, task_error[0], task_error[1]),
                  exc_info=False)

    res.completed = datetime.now()
    if task_error:
        res.task_error = ''.join(traceback.format_exception(*task_error))
    else:
        res.apply_validation(validation)
        log.info('[1@None] File %s (%s) errors=%s' %
                 (res.file, file_base, res.errors))
        tally_validation_results.delay(res.validation_job.id, validation)
    res.save()
    tally_job_results(res.validation_job.id)

    if task_error:
        etype, val, tb = task_error
        raise etype, val, tb
Esempio n. 3
0
def bulk_validate_file(result_id, **kw):
    res = ValidationResult.objects.get(pk=result_id)
    task_error = None
    validation = None
    file_base = os.path.basename(res.file.file_path)
    try:
        log.info("[1@None] Validating file %s (%s) for result_id %s" % (res.file, file_base, res.id))
        target = res.validation_job.target_version
        ver = {target.application.guid: [target.version]}
        overrides = {"targetapp_maxVersion": {target.application.guid: target.version}}
        qs = res.file.version.apps.filter(application=target.application)
        if qs.count() == 1:
            # This addon version is already compatible with some version
            # of <app>. This tells the validator to ignore some
            # irrelevant tests
            minver = {target.application.guid: qs[0].max.version}
            overrides["targetapp_minVersion"] = minver
        else:
            log.info(
                "bulk_validate_file maxVersion not defined "
                "(or duplicated) for file %s (%s), application %s" % (res.file, file_base, target.application)
            )
        validation = run_validator(res.file.file_path, for_appversions=ver, test_all_tiers=True, overrides=overrides)
    except:
        task_error = sys.exc_info()
        log.error(
            u"bulk_validate_file exception on file %s (%s): %s: %s"
            % (res.file, file_base, task_error[0], task_error[1]),
            exc_info=False,
        )

    res.completed = datetime.now()
    if task_error:
        res.task_error = "".join(traceback.format_exception(*task_error))
    else:
        res.apply_validation(validation)
        log.info("[1@None] File %s (%s) errors=%s" % (res.file, file_base, res.errors))
        tally_validation_results.delay(res.validation_job.id, validation)
    res.save()
    tally_job_results(res.validation_job.id)

    if task_error:
        etype, val, tb = task_error
        raise etype, val, tb
Esempio n. 4
0
def bulk_validate_file(result_id, **kw):
    res = ValidationResult.objects.get(pk=result_id)
    task_error = None
    validation = None
    file_base = os.path.basename(res.file.file_path)
    try:
        log.info('[1@None] Validating file %s (%s) for result_id %s'
                 % (res.file, file_base, res.id))
        target = res.validation_job.target_version
        ver = {target.application.guid: [target.version]}
        # Set min/max so the validator only tests for compatibility with
        # the target version. Note that previously we explicitly checked
        # for compatibility with older versions. See bug 675306 for
        # the old behavior.
        overrides = {'targetapp_minVersion':
                                {target.application.guid: target.version},
                     'targetapp_maxVersion':
                                {target.application.guid: target.version}}
        validation = run_validator(res.file.file_path, for_appversions=ver,
                                   test_all_tiers=True, overrides=overrides,
                                   compat=True)
    except:
        task_error = sys.exc_info()
        log.error(u"bulk_validate_file exception on file %s (%s): %s: %s"
                  % (res.file, file_base,
                     task_error[0], task_error[1]), exc_info=False)

    res.completed = datetime.now()
    if task_error:
        res.task_error = ''.join(traceback.format_exception(*task_error))
    else:
        res.apply_validation(validation)
        log.info('[1@None] File %s (%s) errors=%s'
                 % (res.file, file_base, res.errors))
        tally_validation_results.delay(res.validation_job.id, validation)
    res.save()
    tally_job_results(res.validation_job.id)

    if task_error:
        etype, val, tb = task_error
        raise etype, val, tb
Esempio n. 5
0
def bulk_validate_file(result_id, **kw):
    res = ValidationResult.objects.get(pk=result_id)
    task_error = None
    validation = None
    try:
        file_base = os.path.basename(res.file.file_path)
        log.info('[1@None] Validating file %s (%s) for result_id %s' %
                 (res.file, file_base, res.id))
        target = res.validation_job.target_version
        ver = {target.application.guid: [target.version]}
        overrides = {
            "targetapp_maxVersion": {
                target.application.guid: target.version
            }
        }
        validation = run_validator(res.file.file_path,
                                   for_appversions=ver,
                                   test_all_tiers=True,
                                   overrides=overrides)
    except:
        task_error = sys.exc_info()
        log.error(u"bulk_validate_file exception: %s: %s" %
                  (task_error[0], task_error[1]),
                  exc_info=False)

    res.completed = datetime.now()
    if task_error:
        res.task_error = ''.join(traceback.format_exception(*task_error))
    else:
        res.apply_validation(validation)
        log.info('[1@None] File %s (%s) errors=%s' %
                 (res.file, file_base, res.errors))
    res.save()
    tally_job_results(res.validation_job.id)

    if task_error:
        etype, val, tb = task_error
        raise etype, val, tb