Example #1
0
    def build(self):
        """Returns a reindexer that will return either all domains with case search
        enabled, or a single domain if passed in
        """
        limit_to_db = self.options.pop('limit_to_db', None)
        domain = self.options.pop('domain', None)

        limit_db_aliases = [limit_to_db] if limit_to_db else None
        initialize_index_and_mapping(get_es_new(), CASE_SEARCH_INDEX_INFO)
        try:
            if domain is not None:
                if not domain_needs_search_index(domain):
                    raise CaseSearchNotEnabledException(
                        "{} does not have case search enabled".format(domain))
                domains = [domain]
            else:
                # return changes for all enabled domains
                domains = domains_needing_search_index()

            change_provider = get_domain_case_change_provider(
                domains=domains, limit_db_aliases=limit_db_aliases)
        except ProgrammingError:
            # The db hasn't been intialized yet, so skip this reindex and complain.
            return _fail_gracefully_and_tell_admins()
        else:
            return PillowChangeProviderReindexer(
                get_case_search_processor(),
                change_provider=change_provider,
            )
Example #2
0
    def build(self):
        """Returns a reindexer that will return either all domains with case search
        enabled, or a single domain if passed in
        """
        limit_to_db = self.options.pop('limit_to_db', None)
        domain = self.options.pop('domain', None)

        limit_db_aliases = [limit_to_db] if limit_to_db else None
        initialize_index_and_mapping(get_es_new(), CASE_SEARCH_INDEX_INFO)
        try:
            if domain is not None:
                if not domain_needs_search_index(domain):
                    raise CaseSearchNotEnabledException("{} does not have case search enabled".format(domain))
                domains = [domain]
            else:
                # return changes for all enabled domains
                domains = domains_needing_search_index()

            change_provider = get_domain_case_change_provider(domains=domains, limit_db_aliases=limit_db_aliases)
        except ProgrammingError:
            # The db hasn't been intialized yet, so skip this reindex and complain.
            return _fail_gracefully_and_tell_admins()
        else:
            return PillowChangeProviderReindexer(
                get_case_search_processor(),
                change_provider=change_provider,
            )
Example #3
0
def get_report_case_reindexer():
    """Returns a reindexer that will only reindex data from enabled domains
    """
    domains = getattr(settings, 'ES_CASE_FULL_INDEX_DOMAINS', [])
    change_provider = get_domain_case_change_provider(domains=domains)
    return ElasticPillowReindexer(
        pillow=get_report_case_to_elasticsearch_pillow(),
        change_provider=change_provider,
        elasticsearch=get_es_new(),
        index_info=REPORT_CASE_INDEX_INFO)
Example #4
0
def get_report_case_reindexer():
    """Returns a reindexer that will only reindex data from enabled domains
    """
    domains = getattr(settings, 'ES_CASE_FULL_INDEX_DOMAINS', [])
    change_provider = get_domain_case_change_provider(domains=domains)
    return ElasticPillowReindexer(
        pillow=get_report_case_to_elasticsearch_pillow(),
        change_provider=change_provider,
        elasticsearch=get_es_new(),
        index_info=REPORT_CASE_INDEX_INFO
    )
Example #5
0
def get_case_search_reindexer(domain=None):
    """Returns a reindexer that will return either all domains with case search
    enabled, or a single domain if passed in
    """
    initialize_index_and_mapping(get_es_new(), CASE_SEARCH_INDEX_INFO)
    try:
        if domain is not None:
            if not case_search_enabled_for_domain(domain):
                raise CaseSearchNotEnabledException(
                    "{} does not have case search enabled".format(domain))
            domains = [domain]
        else:
            # return changes for all enabled domains
            domains = case_search_enabled_domains()

        change_provider = get_domain_case_change_provider(domains=domains)
    except ProgrammingError:
        # The db hasn't been intialized yet, so skip this reindex and complain.
        return _fail_gracefully_and_tell_admins()
    else:
        return PillowChangeProviderReindexer(
            get_case_search_to_elasticsearch_pillow(),
            change_provider=change_provider)
Example #6
0
def get_case_search_reindexer(domain=None):
    """Returns a reindexer that will return either all domains with case search
    enabled, or a single domain if passed in
    """
    initialize_index_and_mapping(get_es_new(), CASE_SEARCH_INDEX_INFO)
    try:
        if domain is not None:
            if not case_search_enabled_for_domain(domain):
                raise CaseSearchNotEnabledException("{} does not have case search enabled".format(domain))
            domains = [domain]
        else:
            # return changes for all enabled domains
            domains = case_search_enabled_domains()

        change_provider = get_domain_case_change_provider(domains=domains)
    except ProgrammingError:
        # The db hasn't been intialized yet, so skip this reindex and complain.
        return _fail_gracefully_and_tell_admins()
    else:
        return PillowReindexer(
            get_case_search_to_elasticsearch_pillow(),
            change_provider=change_provider
        )