Example #1
0
 def test_get_all_doc_ids_for_domain_grouped_by_db(self):
     self.assertEqual(
         {key.uri: list(value) for key, value in
          get_all_doc_ids_for_domain_grouped_by_db(self.domain)},
         {get_db(None).uri: ['main_db_doc'],
          get_db('users').uri: ['users_db_doc'],
          get_db('fixtures').uri: []}
     )
Example #2
0
    def _pre_delete(self):
        from corehq.apps.domain.deletion import apply_deletion_operations

        # delete SQL models first because UCR tables are indexed by configs in couch
        apply_deletion_operations(self.name)

        # delete couch docs
        for db, related_doc_ids in get_all_doc_ids_for_domain_grouped_by_db(self.name):
            iter_bulk_delete(db, related_doc_ids, chunksize=500)
Example #3
0
 def test_get_all_doc_ids_for_domain_grouped_by_db(self):
     self.assertEqual(
         {key.uri: list(value) for key, value in
          get_all_doc_ids_for_domain_grouped_by_db(self.domain1)},
         {get_db(None).uri: ['main_db_doc_all-docs-domain1'],
          get_db('users').uri: ['users_db_doc_all-docs-domain1'],
          get_db('meta').uri: [],
          get_db('fixtures').uri: [],
          get_db('domains').uri: [],
          get_db('apps').uri: []}
     )
Example #4
0
    def delete(self):
        from corehq.apps.domain.signals import commcare_domain_pre_delete

        results = commcare_domain_pre_delete.send_robust(sender='domain', domain=self)
        for result in results:
            if result[1]:
                raise DomainDeleteException(
                    u"Error occurred during domain pre_delete {}: {}".format(self.name, str(result[1]))
                )
        # delete all associated objects
        for db, related_doc_ids in get_all_doc_ids_for_domain_grouped_by_db(self.name):
            iter_bulk_delete(db, related_doc_ids, chunksize=500)
        self._delete_web_users_from_domain()
        self._delete_sql_objects()
        super(Domain, self).delete()
        Domain.get_by_name.clear(Domain, self.name)  # clear the domain cache
Example #5
0
    def _pre_delete(self):
        from corehq.apps.domain.signals import commcare_domain_pre_delete
        from corehq.apps.domain.deletion import apply_deletion_operations

        dynamic_deletion_operations = []
        results = commcare_domain_pre_delete.send_robust(sender='domain', domain=self)
        for result in results:
            response = result[1]
            if isinstance(response, Exception):
                raise DomainDeleteException(u"Error occurred during domain pre_delete {}: {}".format(self.name, str(response)))
            elif response:
                assert isinstance(response, list)
                dynamic_deletion_operations.extend(response)

        # delete all associated objects
        for db, related_doc_ids in get_all_doc_ids_for_domain_grouped_by_db(self.name):
            iter_bulk_delete(db, related_doc_ids, chunksize=500)

        apply_deletion_operations(self.name, dynamic_deletion_operations)
Example #6
0
    def _pre_delete(self):
        from corehq.apps.domain.signals import commcare_domain_pre_delete
        from corehq.apps.domain.deletion import apply_deletion_operations

        dynamic_deletion_operations = []
        results = commcare_domain_pre_delete.send_robust(sender='domain', domain=self)
        for result in results:
            response = result[1]
            if isinstance(response, Exception):
                raise DomainDeleteException(u"Error occurred during domain pre_delete {}: {}".format(self.name, str(response)))
            elif response:
                assert isinstance(response, list)
                dynamic_deletion_operations.extend(response)

        # delete all associated objects
        for db, related_doc_ids in get_all_doc_ids_for_domain_grouped_by_db(self.name):
            iter_bulk_delete(db, related_doc_ids, chunksize=500)

        apply_deletion_operations(self.name, dynamic_deletion_operations)