Coverage for /Users/buh/.pyenv/versions/3.12.2/envs/es-testbed/lib/python3.12/site-packages/es_testbed/defaults.py: 100%
32 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-03 15:52 -0600
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-03 15:52 -0600
1"""Default values and constants"""
3import typing as t
5EPILOG: str = 'Learn more at https://github.com/untergeek/es-testbed'
7HELP_OPTIONS: dict = {'help_option_names': ['-h', '--help']}
9ARGSCLASSES: list = ['IlmBuilder', 'IlmExplain', 'TestPlan']
11COLD_PREFIX: str = 'restored-'
12FROZEN_PREFIX: str = 'partial-'
14SS_PREFIX: t.Dict[str, str] = {'cold': COLD_PREFIX, 'frozen': FROZEN_PREFIX}
16MAPPING: dict = {
17 'properties': {
18 '@timestamp': {'type': 'date'},
19 'message': {'type': 'keyword'},
20 'number': {'type': 'long'},
21 'nested': {'properties': {'key': {'type': 'keyword'}}},
22 'deep': {
23 'properties': {
24 'l1': {
25 'properties': {'l2': {'properties': {'l3': {'type': 'keyword'}}}}
26 }
27 }
28 },
29 }
30}
32NAMEMAPPER: t.Dict[str, str] = {
33 'index': 'idx',
34 'data_stream': 'ds',
35 'component': 'cmp',
36 'ilm': 'ilm',
37 'template': 'tmpl',
38 'snapshot': 'snp',
39}
41PAUSE_DEFAULT: str = '0.25'
42PAUSE_ENVVAR: str = 'ES_TESTBED_PAUSE'
44PLURALMAP: t.Dict[str, str] = {
45 'ilm': 'ILM Policie',
46 'index': 'indice',
47}
49TESTPLAN: dict = {
50 'type': 'indices',
51 'prefix': 'es-testbed',
52 'repository': None,
53 'rollover_alias': None,
54 'ilm': {
55 'enabled': False,
56 'tiers': ['hot', 'delete'],
57 'forcemerge': False,
58 'max_num_segments': 1,
59 },
60 'defaults': {
61 'entity_count': 3,
62 'docs': 10,
63 'match': True,
64 'searchable': None,
65 },
66 'entities': [],
67}
69TIER: dict = {
70 'hot': {'pref': 'data_hot,data_content'},
71 'warm': {'pref': 'data_warm,data_hot,data_content'},
72 'cold': {
73 'pref': 'data_cold,data_warm,data_hot,data_content',
74 'prefix': 'restored',
75 'storage': 'full_copy',
76 },
77 'frozen': {
78 'pref': 'data_frozen',
79 'prefix': 'partial',
80 'storage': 'shared_cache',
81 },
82}
84TIMEOUT_DEFAULT: str = '30'
85TIMEOUT_ENVVAR: str = 'ES_TESTBED_TIMEOUT'
87IlmPhase: t.TypeAlias = t.Dict[
88 str, t.Union[str, t.Dict[str, str], t.Dict[str, t.Dict[str, t.Dict[str, str]]]]
89]
92def ilmhot() -> IlmPhase:
93 """Return a default hot ILM phase"""
94 return {'actions': {'rollover': {'max_primary_shard_size': '1gb', 'max_age': '1d'}}}
97def ilmwarm() -> IlmPhase:
98 """Return a default warm ILM phase"""
99 return {'min_age': '2d', 'actions': {}}
102def ilmcold() -> IlmPhase:
103 """Return a default cold ILM phase"""
104 return {'min_age': '3d', 'actions': {}}
107def ilmfrozen() -> IlmPhase:
108 """Return a default frozen ILM phase"""
109 return {'min_age': '4d', 'actions': {}}
112def ilmdelete() -> IlmPhase:
113 """Return a default delete ILM phase"""
114 return {'min_age': '5d', 'actions': {'delete': {}}}
117def ilm_phase(tier):
118 """Return the default phase step based on 'tier'"""
119 phase_map = {
120 'hot': ilmhot(),
121 'warm': ilmwarm(),
122 'cold': ilmcold(),
123 'frozen': ilmfrozen(),
124 'delete': ilmdelete(),
125 }
126 return {tier: phase_map[tier]}
129def ilm_force_merge(max_num_segments=1):
130 """Return an ILM policy force merge action block using max_num_segments"""
131 return {'forcemerge': {'max_num_segments': max_num_segments}}