Exemple #1
0
def report_run(domain, strict=True):
    last_successful_run = ReportRun.last_success(domain)

    last_run = ReportRun.last_run(domain)

    start_date = get_start_date(last_successful_run)
    end_date = datetime.utcnow()

    if last_run and last_run.has_error:
        run = last_run
        run.complete = False
        run.save()
    else:
        if start_date == end_date:
            return
        # start new run
        run = ReportRun.objects.create(start=start_date,
                                       end=end_date,
                                       start_run=datetime.utcnow(),
                                       domain=domain)
    has_error = True
    try:
        populate_report_data(run.start, run.end, domain, run, strict=strict)
        has_error = False
    except Exception, e:
        # just in case something funky happened in the DB
        if isinstance(e, DatabaseError):
            try:
                transaction.rollback()
            except:
                pass
        has_error = True
        raise
Exemple #2
0
def report_run(domain, strict=True):
    last_successful_run = ReportRun.last_success(domain)

    last_run = ReportRun.last_run(domain)

    start_date = get_start_date(last_successful_run)
    end_date = datetime.utcnow()

    if last_run and last_run.has_error:
        run = last_run
        run.complete = False
        run.save()
    else:
        if start_date == end_date:
            return
        # start new run
        run = ReportRun.objects.create(start=start_date, end=end_date,
                                       start_run=datetime.utcnow(), domain=domain)
    has_error = True
    try:
        populate_report_data(run.start, run.end, domain, run, strict=strict)
        has_error = False
    except Exception, e:
        # just in case something funky happened in the DB
        if isinstance(e, DatabaseError):
            try:
                transaction.rollback()
            except:
                pass
        has_error = True
        raise
Exemple #3
0
def report_run(domain):
    last_successful_run = ReportRun.last_success(domain)
    last_run = ReportRun.last_run(domain)
    start_date = (datetime.min if not last_successful_run else last_successful_run.end)
    end_date = datetime.utcnow()

    running = ReportRun.objects.filter(complete=False, domain=domain)
    if running.count() > 0:
        raise Exception("Warehouse already running, will do nothing...")

    if last_run and last_run.has_error:
        run = last_run
        run.complete = False
        run.save()
    else:
        # start new run
        run = ReportRun.objects.create(start=start_date, end=end_date,
                                       start_run=datetime.utcnow(), domain=domain)
    try:
        run.has_error = True
        populate_report_data(start_date, end_date, domain, run)
        run.has_error = False
    except Exception, e:
        # just in case something funky happened in the DB
        if isinstance(e, DatabaseError):
            try:
                transaction.rollback()
            except:
                pass
        run.has_error = True
        raise
Exemple #4
0
def report_run(domain, strict=True):
    last_successful_run = ReportRun.last_success(domain)

    last_run = ReportRun.last_run(domain)

    start_date = get_start_date(last_successful_run)
    end_date = datetime.utcnow()

    if last_run and last_run.has_error:
        run = last_run
        run.complete = False
        run.save()
    else:
        if start_date == end_date:
            return
        # start new run
        run = ReportRun.objects.create(start=start_date,
                                       end=end_date,
                                       start_run=datetime.utcnow(),
                                       domain=domain)
    has_error = True
    try:
        populate_report_data(run.start, run.end, domain, run, strict=strict)
        has_error = False
    except Exception as e:
        # just in case something funky happened in the DB
        if isinstance(e, DatabaseError):
            try:
                transaction.rollback()
            except:
                pass
        has_error = True
        raise
    finally:
        # complete run
        run = ReportRun.objects.get(pk=run.id)
        run.has_error = has_error
        run.end_run = datetime.utcnow()
        run.complete = True
        run.save()
        logging.info("ILSGateway report runner end time: %s" %
                     datetime.utcnow())
        if not has_error:
            recalculation_on_location_change.delay(domain, last_successful_run)
Exemple #5
0
def report_run(domain, locations=None, strict=True):
    last_successful_run = ReportRun.last_success(domain)
    recalculation_on_location_change(domain, last_successful_run)

    last_run = ReportRun.last_run(domain)
    start_date = (datetime.min if not last_successful_run else last_successful_run.end)

    stock_data_checkpoint = StockDataCheckpoint.objects.get(domain=domain)
    # TODO Change this to datetime.utcnow() when project goes live
    end_date = stock_data_checkpoint.date
    running = ReportRun.objects.filter(complete=False, domain=domain)
    if running.count() > 0:
        raise Exception("Warehouse already running, will do nothing...")

    if last_run and last_run.has_error:
        run = last_run
        run.complete = False
        run.save()
    else:
        if start_date == end_date:
            return
        # start new run
        run = ReportRun.objects.create(start=start_date, end=end_date,
                                       start_run=datetime.utcnow(), domain=domain)
    has_error = True
    try:
        populate_report_data(run.start, run.end, domain, run, locations, strict=strict)
        has_error = False
    except Exception, e:
        # just in case something funky happened in the DB
        if isinstance(e, DatabaseError):
            try:
                transaction.rollback()
            except:
                pass
        has_error = True
        raise
Exemple #6
0
def change_runner_date_to_last_migration(request, domain):
    checkpoint = StockDataCheckpoint.objects.get(domain=domain)
    last_run = ReportRun.last_success(domain)
    last_run.end = checkpoint.date
    last_run.save()
    return HttpResponse('OK')
Exemple #7
0
def change_runner_date_to_last_migration(request, domain):
    checkpoint = StockDataCheckpoint.objects.get(domain=domain)
    last_run = ReportRun.last_success(domain)
    last_run.end = checkpoint.date
    last_run.save()
    return HttpResponse('OK')