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-02 23:00 -0600

1"""Default values and constants""" 

2 

3import typing as t 

4 

5EPILOG: str = 'Learn more at https://github.com/untergeek/es-testbed' 

6 

7HELP_OPTIONS: dict = {'help_option_names': ['-h', '--help']} 

8 

9ARGSCLASSES: list = ['IlmBuilder', 'IlmExplain', 'TestPlan'] 

10 

11COLD_PREFIX: str = 'restored-' 

12FROZEN_PREFIX: str = 'partial-' 

13 

14SS_PREFIX: t.Dict[str, str] = {'cold': COLD_PREFIX, 'frozen': FROZEN_PREFIX} 

15 

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} 

31 

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} 

40 

41PAUSE_DEFAULT: str = '0.25' 

42PAUSE_ENVVAR: str = 'ES_TESTBED_PAUSE' 

43 

44PLURALMAP: t.Dict[str, str] = { 

45 'ilm': 'ILM Policie', 

46 'index': 'indice', 

47} 

48 

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} 

68 

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} 

83 

84TIMEOUT_DEFAULT: str = '30' 

85TIMEOUT_ENVVAR: str = 'ES_TESTBED_TIMEOUT' 

86 

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] 

90 

91 

92def ilmhot() -> IlmPhase: 

93 """Return a default hot ILM phase""" 

94 return {'actions': {'rollover': {'max_primary_shard_size': '1gb', 'max_age': '1d'}}} 

95 

96 

97def ilmwarm() -> IlmPhase: 

98 """Return a default warm ILM phase""" 

99 return {'min_age': '2d', 'actions': {}} 

100 

101 

102def ilmcold() -> IlmPhase: 

103 """Return a default cold ILM phase""" 

104 return {'min_age': '3d', 'actions': {}} 

105 

106 

107def ilmfrozen() -> IlmPhase: 

108 """Return a default frozen ILM phase""" 

109 return {'min_age': '4d', 'actions': {}} 

110 

111 

112def ilmdelete() -> IlmPhase: 

113 """Return a default delete ILM phase""" 

114 return {'min_age': '5d', 'actions': {'delete': {}}} 

115 

116 

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]} 

127 

128 

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}}