Beispiel #1
0
def compare_cases(domain, doc_type, startdate, enddate):
    hundred_thousand = 100000
    case_count = get_es_case_counts(domain, doc_type, startdate, enddate)
    if case_count < hundred_thousand:
        # small enough domain, so lookup diffs in one go
        return _get_diffs(
            get_primary_db_case_ids(domain, doc_type, startdate, enddate),
            get_es_case_ids(domain, doc_type, startdate, enddate)
        )
    # large domain, so break up by month
    startdate, enddate = get_es_case_range(domain)
    primary_count, es_count, primary_ids, es_ids = 0, 0, set(), set()
    months = (enddate - startdate).days / 30 + 1
    for month in range(0, months):
        enddate = (startdate + timedelta(days=(month + 1) * 30)).date()
        startdate = (startdate + timedelta(days=month * 30)).date()
        pc1, esc1, p1, es1 = _get_diffs(
            get_primary_db_case_ids(domain, doc_type, startdate, enddate),
            get_es_case_ids(domain, doc_type, startdate, enddate)
        )
        primary_count = primary_count + pc1
        es_count = es_count + esc1
        primary_ids = primary_ids.union(p1)
        es_ids = es_ids.union(es1)
    return primary_count, es_count, primary_ids, es_ids
Beispiel #2
0
def compare_cases(domain, doc_type, startdate, enddate):
    hundred_thousand = 100000
    case_count = get_es_case_counts(domain, doc_type, startdate, enddate)
    if case_count < hundred_thousand:
        # small enough domain, so lookup diffs in one go
        return _get_diffs(
            get_primary_db_case_ids(domain, doc_type, startdate, enddate),
            get_es_case_ids(domain, doc_type, startdate, enddate))
    # large domain, so break up by month
    startdate, enddate = get_es_case_range(domain)
    primary_count, es_count, primary_ids, es_ids = 0, 0, set(), set()
    months = (enddate - startdate).days / 30 + 1
    for month in range(0, months):
        enddate = (startdate + timedelta(days=(month + 1) * 30)).date()
        startdate = (startdate + timedelta(days=month * 30)).date()
        pc1, esc1, p1, es1 = _get_diffs(
            get_primary_db_case_ids(domain, doc_type, startdate, enddate),
            get_es_case_ids(domain, doc_type, startdate, enddate))
        primary_count = primary_count + pc1
        es_count = es_count + esc1
        primary_ids = primary_ids.union(p1)
        es_ids = es_ids.union(es1)
    return primary_count, es_count, primary_ids, es_ids
Beispiel #3
0
def compare_cases(domain, doc_type, startdate, enddate):
    hundred_thousand = 100000
    case_count = get_es_case_counts(domain, doc_type, startdate, enddate)
    if case_count < hundred_thousand:
        # small enough domain, so lookup diffs in one go
        return _get_diffs(
            get_primary_db_case_ids(domain, doc_type, startdate, enddate),
            get_es_case_ids(domain, doc_type, startdate, enddate))
    # large domain, so break up by month
    startdate, enddate = get_es_case_range(domain)
    primary_count, es_count, primary_ids, es_ids = 0, 0, set(), set()
    while startdate <= enddate:
        batch_enddate = (startdate + relativedelta(months=1))
        pc1, esc1, p1, es1 = _get_diffs(
            get_primary_db_case_ids(domain, doc_type, startdate,
                                    batch_enddate),
            get_es_case_ids(domain, doc_type, startdate, batch_enddate))
        primary_count = primary_count + pc1
        es_count = es_count + esc1
        primary_ids = primary_ids.union(p1)
        es_ids = es_ids.union(es1)
        startdate = batch_enddate
    return primary_count, es_count, primary_ids, es_ids
def _compare_cases(domain, doc_type):
    return _get_diffs(get_primary_db_case_ids(domain, doc_type),
                      get_es_case_ids(domain, doc_type))