本文整理汇总了Python中socorro.external.es.index_creator.IndexCreator.create_socorro_index方法的典型用法代码示例。如果您正苦于以下问题:Python IndexCreator.create_socorro_index方法的具体用法?Python IndexCreator.create_socorro_index怎么用?Python IndexCreator.create_socorro_index使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类socorro.external.es.index_creator.IndexCreator
的用法示例。
在下文中一共展示了IndexCreator.create_socorro_index方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _submit_crash_to_elasticsearch
# 需要导入模块: from socorro.external.es.index_creator import IndexCreator [as 别名]
# 或者: from socorro.external.es.index_creator.IndexCreator import create_socorro_index [as 别名]
def _submit_crash_to_elasticsearch(self, queue, crash_document):
# Massage the crash such that the date_processed field is formatted
# in the fashion of our established mapping.
# First create a datetime object from the string in the crash
# report.
self.reconstitute_datetimes(crash_document['processed_crash'])
# Obtain the index name.
es_index = self.get_index_for_crash(
crash_document['processed_crash']['date_processed']
)
es_doctype = self.config.elasticsearch.elasticsearch_doctype
crash_id = crash_document['crash_id']
# Attempt to create the index; it's OK if it already exists.
if es_index not in self.indices_cache:
index_creator = IndexCreator(config=self.config)
index_creator.create_socorro_index(es_index)
action = {
'_index': es_index,
'_type': es_doctype,
'_id': crash_id,
'_source': crash_document,
}
queue.put(action)
示例2: test_create_socorro_index
# 需要导入模块: from socorro.external.es.index_creator import IndexCreator [as 别名]
# 或者: from socorro.external.es.index_creator.IndexCreator import create_socorro_index [as 别名]
def test_create_socorro_index(self):
index_creator = IndexCreator(config=self.config)
index_creator.create_socorro_index(
self.config.elasticsearch.elasticsearch_index
)
assert self.index_client.exists(
self.config.elasticsearch.elasticsearch_index
)
示例3: test_create_socorro_index
# 需要导入模块: from socorro.external.es.index_creator import IndexCreator [as 别名]
# 或者: from socorro.external.es.index_creator.IndexCreator import create_socorro_index [as 别名]
def test_create_socorro_index(self):
index_creator = IndexCreator(config=self.config)
index_creator.create_socorro_index(
self.config.elasticsearch.elasticsearch_index
)
ok_(
index_creator.get_index_client().exists(
self.config.elasticsearch.elasticsearch_index
)
)
示例4: _submit_crash_to_elasticsearch
# 需要导入模块: from socorro.external.es.index_creator import IndexCreator [as 别名]
# 或者: from socorro.external.es.index_creator.IndexCreator import create_socorro_index [as 别名]
def _submit_crash_to_elasticsearch(self, connection, crash_document):
"""Submit a crash report to elasticsearch.
"""
# Massage the crash such that the date_processed field is formatted
# in the fashion of our established mapping.
# First create a datetime object from the string in the crash report.
crash_date = datetimeutil.string_to_datetime(
crash_document['processed_crash']['date_processed']
)
# Then convert it back to a string with the expected formatting.
crash_date_with_t = datetimeutil.date_to_string(crash_date)
# Finally, re-insert that string back into the report for indexing.
crash_document['processed_crash']['date_processed'] = crash_date_with_t
# Obtain the index name.
es_index = self.get_index_for_crash(crash_date)
es_doctype = self.config.elasticsearch.elasticsearch_doctype
crash_id = crash_document['crash_id']
# Attempt to create the index; it's OK if it already exists.
if es_index not in self.indices_cache:
index_creator = IndexCreator(config=self.config)
index_creator.create_socorro_index(es_index)
# Submit the crash for indexing.
try:
connection.index(
index=es_index,
doc_type=es_doctype,
body=crash_document,
id=crash_id
)
except elasticsearch.exceptions.ElasticsearchException as e:
self.config.logger.critical(
'Submission to Elasticsearch failed for %s (%s)',
crash_id,
e,
exc_info=True
)
raise
示例5: ElasticsearchTestCase
# 需要导入模块: from socorro.external.es.index_creator import IndexCreator [as 别名]
# 或者: from socorro.external.es.index_creator.IndexCreator import create_socorro_index [as 别名]
class ElasticsearchTestCase(TestCase):
"""Base class for Elastic Search related unit tests. """
def __init__(self, *args, **kwargs):
super(ElasticsearchTestCase, self).__init__(*args, **kwargs)
self.config = self.get_base_config()
es_context = self.config.elasticsearch.elasticsearch_class(
config=self.config.elasticsearch
)
creator_config = self.get_tuned_config(IndexCreator)
self.index_creator = IndexCreator(creator_config)
self.index_client = self.index_creator.get_index_client()
with es_context() as conn:
self.connection = conn
def setUp(self):
# Create the supersearch fields.
self.index_super_search_fields()
self.index_creator.create_socorro_index(
self.config.elasticsearch.elasticsearch_index
)
super(ElasticsearchTestCase, self).setUp()
def tearDown(self):
# Clear the test indices.
self.index_client.delete(
self.config.elasticsearch.elasticsearch_default_index
)
self.index_client.delete(
self.config.elasticsearch.elasticsearch_index
)
super(ElasticsearchTestCase, self).tearDown()
def get_tuned_config(self, sources, extra_values=None):
if not isinstance(sources, (list, tuple)):
sources = [sources]
mock_logging = mock.Mock()
config_definitions = []
for source in sources:
conf = source.get_required_config()
conf.add_option('logger', default=mock_logging)
config_definitions.append(conf)
values_source = DEFAULT_VALUES.copy()
values_source.update({'logger': mock_logging})
if extra_values:
values_source.update(extra_values)
config_manager = ConfigurationManager(
config_definitions,
app_name='testapp',
app_version='1.0',
app_description='Elasticsearch integration tests',
values_source_list=[environment, values_source],
argv_source=[],
)
return config_manager.get_config()
def get_base_config(self, es_index=None):
extra_values = None
if es_index:
extra_values = {
'resource.elasticsearch.elasticsearch_index': es_index
}
return self.get_tuned_config(
ElasticsearchConfig,
extra_values=extra_values
)
def index_super_search_fields(self, fields=None):
if fields is None:
fields = SUPERSEARCH_FIELDS
es_index = self.config.elasticsearch.elasticsearch_default_index
actions = []
for name, field in fields.iteritems():
action = {
'_index': es_index,
'_type': 'supersearch_fields',
'_id': name,
'_source': field,
}
actions.append(action)
bulk(
client=self.connection,
actions=actions,
)
#.........这里部分代码省略.........
示例6: ElasticsearchTestCase
# 需要导入模块: from socorro.external.es.index_creator import IndexCreator [as 别名]
# 或者: from socorro.external.es.index_creator.IndexCreator import create_socorro_index [as 别名]
class ElasticsearchTestCase(TestCaseWithConfig):
"""Base class for Elastic Search related unit tests"""
def __init__(self, *args, **kwargs):
super(ElasticsearchTestCase, self).__init__(*args, **kwargs)
self.config = self.get_base_config()
es_context = self.config.elasticsearch.elasticsearch_class(
config=self.config.elasticsearch
)
creator_config = self.get_tuned_config(IndexCreator)
self.index_creator = IndexCreator(creator_config)
self.index_client = self.index_creator.get_index_client()
with es_context() as conn:
self.connection = conn
def setUp(self):
super(ElasticsearchTestCase, self).setUp()
self.index_creator.create_socorro_index(self.config.elasticsearch.elasticsearch_index)
def tearDown(self):
# Clear the test indices.
self.index_client.delete(
self.config.elasticsearch.elasticsearch_index
)
super(ElasticsearchTestCase, self).tearDown()
def health_check(self):
self.connection.cluster.health(
wait_for_status='yellow',
request_timeout=5
)
def get_url(self):
"""Returns the first url in the elasticsearch_urls list"""
return self.config.elasticsearch.elasticsearch_urls[0]
def get_tuned_config(self, sources, extra_values=None):
values_source = DEFAULT_VALUES.copy()
if extra_values:
values_source.update(extra_values)
return super(ElasticsearchTestCase, self).get_tuned_config(
sources, values_source
)
def get_base_config(self, es_index=None):
extra_values = None
if es_index:
extra_values = {
'resource.elasticsearch.elasticsearch_index': es_index
}
return self.get_tuned_config(
ElasticsearchConfig,
extra_values=extra_values
)
def index_crash(self, processed_crash=None, raw_crash=None, crash_id=None):
if crash_id is None:
crash_id = str(uuid.UUID(int=random.getrandbits(128)))
raw_crash = raw_crash or {}
processed_crash = processed_crash or {}
doc = {
'crash_id': crash_id,
'processed_crash': processed_crash,
'raw_crash': raw_crash,
}
res = self.connection.index(
index=self.config.elasticsearch.elasticsearch_index,
doc_type=self.config.elasticsearch.elasticsearch_doctype,
id=crash_id,
body=doc,
)
return res['_id']
def index_many_crashes(
self, number, processed_crash=None, raw_crash=None, loop_field=None
):
processed_crash = processed_crash or {}
raw_crash = raw_crash or {}
actions = []
for i in range(number):
crash_id = str(uuid.UUID(int=random.getrandbits(128)))
if loop_field is not None:
processed_copy = processed_crash.copy()
processed_copy[loop_field] = processed_crash[loop_field] % i
else:
processed_copy = processed_crash
doc = {
'crash_id': crash_id,
#.........这里部分代码省略.........