Coverage for /Users/buh/.pyenv/versions/3.12.2/envs/es-testbed/lib/python3.12/site-packages/es_testbed/presets/searchable_test/scenarios.py: 100%
27 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-08-21 12:05 -0600
« prev ^ index » next coverage.py v7.4.4, created at 2024-08-21 12:05 -0600
1"""
2Searchable Snapshot Test Scenarios
4We use deepcopy to ensure that other scenarios changes don't propagate. We can't use
5constants as the values need to be changed, so deepcopy has us covered.
7The repository should be configurable at runtime, so we make it use the TEST_ES_REPO
8env var.
9"""
11from os import environ
12from copy import deepcopy
14REPOSITORY = environ.get('TEST_ES_REPO', 'found-snapshots')
16# default values = {
17# 'type': 'indices',
18# 'rollover_alias': False,
19# 'repository': REPOSITORY,
20# 'ilm': {
21# 'enabled': False,
22# 'phases': ['hot', 'delete'],
23# 'readonly': None,
24# 'max_num_segments': 1,
25# 'forcemerge': False,
26# },
27# }
29bl = [
30 {
31 'options': {
32 'count': 10,
33 'start_at': 0,
34 'match': True,
35 },
36 'target_tier': 'frozen',
37 },
38 {
39 'options': {
40 'count': 10,
41 'start_at': 10,
42 'match': True,
43 },
44 'target_tier': 'frozen',
45 },
46 {
47 'options': {
48 'count': 10,
49 'start_at': 20,
50 'match': True,
51 },
52 'target_tier': 'hot',
53 },
54]
56# #####################
57# ### Hot Scenarios ###
58# #####################
60hot = {} # The default
61hot_rollover = {'rollover_alias': True}
62hot_ds = {'type': 'data_stream'}
64# ######################
65# ### Cold Scenarios ###
66# ######################
68# Define the basic cold scenario
69cold = {'repository': REPOSITORY, 'index_buildlist': deepcopy(bl)}
70cold['index_buildlist'][0]['target_tier'] = 'cold'
71cold['index_buildlist'][1]['target_tier'] = 'cold'
72cold['index_buildlist'][2]['target_tier'] = 'cold'
74# Define the rollover_alias cold scenario
75cold_rollover = deepcopy(cold)
76cold_rollover['index_buildlist'][2]['target_tier'] = 'hot'
77cold_rollover['rollover_alias'] = True
79# Define the cold ILM scenario
80cold_ilm = {
81 'repository': REPOSITORY,
82 'rollover_alias': True,
83 'ilm': {'enabled': True, 'phases': ['hot', 'cold', 'delete']},
84}
86# Define the cold data_stream scenario
87cold_ds = deepcopy(cold_ilm)
88cold_ds['type'] = 'data_stream'
90# ########################
91# ### Frozen Scenarios ###
92# ########################
94# Define the basic frozen scenario
95frozen = {'repository': REPOSITORY, 'index_buildlist': deepcopy(bl)}
96frozen['index_buildlist'][0]['target_tier'] = 'frozen'
97frozen['index_buildlist'][1]['target_tier'] = 'frozen'
98frozen['index_buildlist'][2]['target_tier'] = 'frozen'
100# Define the rollover_alias frozen scenario
101frozen_rollover = deepcopy(frozen)
102frozen_rollover['index_buildlist'][2]['target_tier'] = 'hot'
103frozen_rollover['rollover_alias'] = True
105# Define the frozen ILM scenario
106frozen_ilm = {
107 'repository': REPOSITORY,
108 'rollover_alias': True,
109 'ilm': {'enabled': True, 'phases': ['hot', 'frozen', 'delete']},
110}
112# Define the frozen data_stream scenario
113frozen_ds = deepcopy(frozen_ilm)
114frozen_ds['type'] = 'data_stream'