Example #1
0
    def _find_case_ids_with_invalid_phone_number(self):
        case_ids_with_invalid_phone_number = []

        start_date = date.today() - timedelta(days=100)
        reindex_accessor = CaseReindexAccessor(
            domain=DOMAIN,
            case_type='person',
            limit_db_aliases=[self.db_alias],
            start_date=start_date)

        filename = 'invalid_phone_numbers_with_91_part_%s_%s.csv' % (
            self.db_alias, datetime.utcnow())
        with open(filename, 'w') as output:
            cases_iterated = 0
            writer = csv.writer(output)
            writer.writerow(CSV_HEADERS)
            if self.log_progress:
                self.stdout.write('iterating now')
            for case in iter_all_rows(reindex_accessor):
                if self.log_progress and cases_iterated % CASE_ITERATION_COUNT == 0:
                    self.stdout.write("cases iterated: %s" % cases_iterated)
                cases_iterated += 1
                if self._case_needs_to_be_updated(case):
                    case_ids_with_invalid_phone_number.append(case.case_id)
                    writer.writerow([case.case_id])
Example #2
0
    def _find_case_ids_without_mother_name(self):
        start_date = date.today() - timedelta(days=100)
        reindex_accessor = CaseReindexAccessor(
            domain=DOMAIN,
            case_type=CASE_TYPE,
            limit_db_aliases=[self.db_alias],
            start_date=start_date)

        filename = 'cases_without_mother_name_part_%s_%s.csv' % (
            self.db_alias, datetime.utcnow())
        cases_with_no_mother_name_filename = 'cases_with_no_mother_name_part_%s_%s.csv' % (
            self.db_alias, datetime.utcnow())
        with open(filename, 'w') as output:
            with open(cases_with_no_mother_name_filename,
                      'w') as no_mother_name_file:
                cases_iterated = 0
                writer = csv.writer(output)
                writer.writerow(CSV_HEADERS)
                no_mother_name_writer = csv.writer(no_mother_name_file)
                no_mother_name_writer.writerow(['Case ID'])
                if self.log_progress:
                    print('iterating now')
                for case in iter_all_rows(reindex_accessor):
                    if self.log_progress and cases_iterated % CASE_ITERATION_COUNT == 0:
                        print("cases iterated: %s" % cases_iterated)
                    cases_iterated += 1
                    if self._case_needs_to_be_updated(case):
                        mother_case_id, mother_name = self._find_mother_case_id_and_name(
                            case)
                        if mother_case_id and mother_name:
                            writer.writerow(
                                [case.case_id, mother_case_id, mother_name])
                        else:
                            no_mother_name_writer.writerow([case.case_id])
Example #3
0
    def delete_all_v2_ledgers(domain=None):
        logger.debug("Deleting all V2 ledgers for domain %s", domain)

        def _delete_ledgers_for_case(case_id):
            transactions = LedgerAccessorSQL.get_ledger_transactions_for_case(case_id)
            form_ids = {tx.form_id for tx in transactions}
            for form_id in form_ids:
                LedgerAccessorSQL.delete_ledger_transactions_for_form([case_id], form_id)
            LedgerAccessorSQL.delete_ledger_values(case_id)

        if not domain:
            for ledger in iter_all_rows(LedgerReindexAccessor()):
                _delete_ledgers_for_case(ledger.case_id)
        else:
            for case_id in CaseAccessorSQL.get_case_ids_in_domain(domain):
                _delete_ledgers_for_case(case_id)
Example #4
0
    def delete_all_v2_ledgers(domain=None):
        logger.debug("Deleting all V2 ledgers for domain %s", domain)

        def _delete_ledgers_for_case(case_id):
            transactions = LedgerAccessorSQL.get_ledger_transactions_for_case(case_id)
            form_ids = {tx.form_id for tx in transactions}
            for form_id in form_ids:
                LedgerAccessorSQL.delete_ledger_transactions_for_form([case_id], form_id)
            LedgerAccessorSQL.delete_ledger_values(case_id)

        if not domain:
            for ledger in iter_all_rows(LedgerReindexAccessor()):
                _delete_ledgers_for_case(ledger.case_id)
        else:
            for case_id in CaseAccessorSQL.get_case_ids_in_domain(domain):
                _delete_ledgers_for_case(case_id)
Example #5
0
    def sync_cases(self, domain):
        db_aliases = get_db_aliases_for_partitioned_query()
        db_aliases.sort()

        if should_use_sql_backend(domain):
            case_accessor = CaseReindexAccessor(domain)
            case_ids = (case.case_id for case in iter_all_rows(case_accessor))
        else:
            changes = _get_case_iterator(domain).iter_all_changes()
            case_ids = (case.id for case in changes)

        next_event = time.time() + 10
        for i, case_id in enumerate(case_ids):
            sync_case_for_messaging.delay(domain, case_id)

            if time.time() > next_event:
                print("Queued %d cases for domain %s" % (i + 1, domain))
                next_event = time.time() + 10
Example #6
0
    def sync_cases(self, domain):
        db_aliases = get_db_aliases_for_partitioned_query()
        db_aliases.sort()

        if should_use_sql_backend(domain):
            case_accessor = CaseReindexAccessor(domain)
            case_ids = (case.case_id for case in iter_all_rows(case_accessor))
        else:
            changes = _iter_changes(domain, CASE_DOC_TYPES)
            case_ids = (case.id for case in changes)

        next_event = time.time() + 10
        for i, case_id in enumerate(case_ids):
            sync_case_for_messaging.delay(domain, case_id)

            if time.time() > next_event:
                print("Queued %d cases for domain %s" % (i + 1, domain))
                next_event = time.time() + 10
Example #7
0
 def iter_all_changes(self, start_from=None):
     accessor = CaseReindexAccessor(self.domain,
                                    limit_db_aliases=self.limit_db_aliases)
     for case in iter_all_rows(accessor):
         yield _sql_case_to_change(case)
Example #8
0
 def iter_all_changes(self, start_from=None):
     accessor = CaseReindexAccessor(self.domain, limit_db_aliases=self.limit_db_aliases)
     for case in iter_all_rows(accessor):
         yield _sql_case_to_change(case)