Library to help with building and tearing down indices, data streams, repositories and snapshots
Project description
es-testbed
A way to create indices, datastreams, and snapshots to facilitate testing.
Preliminary Documentation
1. Create a TestPlan
from es_testbed import TestPlan
plan = {
'type': 'indices',
'prefix': 'es-testbed',
'uniq': 'mytest',
'ilm': {
'enabled': False,
'tiers': ['hot', 'delete'],
'forcemerge': False,
'max_num_segments': 1,
},
'defaults': {
'entity_count': 3,
'docs': 10,
'match': True,
'searchable': None,
}
}
tp = TestPlan(settings=plan)
Note: If ilm['enabled'] == False
, the other subkeys will be ignored. In fact, ilm: False
is also acceptable.
Save this for step 2.
2. Create a TestBed
Must have an Elasticsearch client established to proceed
from es_testbed import TestBed
tb = TestBed(client, plan=tp)
2.1 Index Template creation (behind the scenes)
Based on the settings in step 1, you will have 2 component templates and one index template that references them:
Component Template 1
es-testbed-cmp-mytest-000001
Settings:
{'index.number_of_replicas': 0}
If using a rollover_alias
or ILM Policy, then additional values will automatically be added.
Component Template 2
es-testbed-cmp-mytest-000002
Mappings:
{
'properties': {
'@timestamp': {'type': 'date'},
'message': {'type': 'keyword'},
'number': {'type': 'long'},
'nested': {'properties': {'key': {'type': 'keyword'}}},
'deep': {'properties': {'l1': {'properties': {'l2': {
'properties': {'l3': {'type': 'keyword'}}}}}}
}
}
}
Index Template
es-testbed-tmpl-mytest-000001
2.2 You have indices
Based on what was provided in step 1, you will have 3 indices with a basic mapping, and 10 documents each:
es-testbed-idx-mytest-000001
es-testbed-idx-mytest-000002
es-testbed-idx-mytest-000003
Documents will have been added per the TestPlan settings. The orthography for these documents is in
es_testbed.helpers.utils.doc_gen()
. Counts are preserved and continue to grow from one index to
the next.
3. Perform your tests.
This is where the testing can be performed.
4. Teardown
tb.teardown()
Barring anything unusual happening, all indices, data_streams, ILM policies, index & component
templates, and snapshots (if an index is promoted to searchable snapshots) will be deleted as part
of the teardown()
method.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for es_testbed-0.7.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 109226467ea4eab2e15a83e626d35e7fc40fc4ac6e4f4a82512fdc9de5308538 |
|
MD5 | 09a0eeb9dd86fcc5eba1c9869eac6fe0 |
|
BLAKE2b-256 | ced553660d1c51e75b5ec59f9b8e52883a99c06bc81d6e333a2dfc8dd507a1bd |