def __init__(self, **config): super(ElasticsearchProcessor, self).__init__(**config) es_config = docido_config.elasticsearch service = config['service'] fmt = {'service': service} self.__es_index = es_config.ES_INDEX.format(**fmt) self.__es_store_index = es_config.ES_STORE_INDEX.format(**fmt) self.__card_type = es_config.ES_CARD_TYPE.format(**fmt) self.__store_type = es_config.ES_STORE_TYPE.format(**fmt) self.__routing = config.get('elasticsearch', {}).get('routing') self.__es = _Elasticsearch(es_config.ES_HOST, **es_config.get('connection_params', {})) self.__es_store = _Elasticsearch( es_config.ES_HOST, **es_config.get('connection_params', {}))
def __init__(self, **config): super(ElasticsearchProcessor, self).__init__(**config) es_config = docido_config.elasticsearch service = config['service'] fmt = {'service': service} self.__es_index = es_config.ES_INDEX.format(**fmt) self.__es_store_index = es_config.ES_STORE_INDEX.format(**fmt) self.__card_type = es_config.ES_CARD_TYPE.format(**fmt) self.__store_type = es_config.ES_STORE_TYPE.format(**fmt) self.__routing = config.get('elasticsearch', {}).get('routing') self.__es = _Elasticsearch( es_config.ES_HOST, **es_config.get('connection_params', {}) ) self.__es_store = _Elasticsearch( es_config.ES_HOST, **es_config.get('connection_params', {}) )
def tearDownClass(cls): es_config = config.elasticsearch es = _Elasticsearch(es_config.ES_HOST) if es.indices.exists(es_config.ES_INDEX): try: es.indices.delete_mapping( index=es_config.ES_INDEX, doc_type=es_config.ES_CARD_TYPE ) except: pass es.indices.delete(es_config.ES_INDEX) config._pop()
def test_without_elasticsearch_mapping_config(self): try: mapping = config.elasticsearch.MAPPING config.elasticsearch.pop('MAPPING') es = _Elasticsearch(config.elasticsearch.ES_HOST) es_index = config.elasticsearch.ES_INDEX es_type = config.elasticsearch.ES_CARD_TYPE if es.indices.exists(es_index): es.indices.delete(es_index) ElasticsearchMappingProcessor(service='a_service') self.assertTrue(es.indices.exists(es_index)) mapping = es.indices.get_mapping(index=es_index, doc_type=es_type) self.assertFalse(es_index in mapping) finally: config.elasticsearch.MAPPING = mapping
def update_mapping(self, service): config = docido_config.elasticsearch es = _Elasticsearch( os.getenv('ELASTICSEARCH_HOST', config.ES_HOST), **config.get('connection_params', {}) ) to_update_mappings = [ (config.ES_INDEX, config.ES_CARD_TYPE), ] if config.get('ES_STORE_INDEX') and config.get('ES_STORE_TYPE'): to_update_mappings.append( (config.ES_STORE_INDEX, config.ES_STORE_TYPE) ) for (index, doc_type) in to_update_mappings: self.__update_index_mapping(es, service, index, doc_type)
def test_without_elasticsearch_index(self): es = _Elasticsearch(config.elasticsearch.ES_HOST) es_index = config.elasticsearch.ES_INDEX es_type = config.elasticsearch.ES_CARD_TYPE if es.indices.exists(es_index): es.indices.delete(es_index) self.assertFalse(es.indices.exists(es_index)) ElasticsearchMappingProcessor(service='a_service') self.assertTrue(es.indices.exists(es_index)) mapping = es.indices.get_mapping(index=es_index, doc_type=es_type) self.assertTrue(es_index in mapping) mappings = mapping[es_index]['mappings'] self.assertTrue(es_type in mappings) doc_type_mapping = mappings[es_type] self.assertIsNotNone(doc_type_mapping) self.assertNotEquals(doc_type_mapping, {})