Coverage for /Users/buh/.pyenv/versions/3.12.2/envs/es-testbed/lib/python3.12/site-packages/es_testbed/mgrs/component.py: 96%
27 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-03 15:56 -0600
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-03 15:56 -0600
1"""Component Template Entity Manager Class"""
3import typing as t
4import logging
5from es_testbed.exceptions import ResultNotExpected
6from es_testbed.helpers.es_api import exists, put_comp_tmpl
7from es_testbed.helpers.utils import mapping_component, prettystr, setting_component
8from es_testbed.mgrs.entity import EntityMgr
10if t.TYPE_CHECKING:
11 from elasticsearch8 import Elasticsearch
12 from dotmap import DotMap
14logger = logging.getLogger(__name__)
17class ComponentMgr(EntityMgr):
18 """Component Template Entity Manager Class"""
20 kind = 'component'
21 listname = 'component_templates'
23 def __init__(
24 self,
25 client: t.Union['Elasticsearch', None] = None,
26 plan: t.Union['DotMap', None] = None,
27 ):
28 super().__init__(client=client, plan=plan)
30 @property
31 def components(self) -> t.Sequence[t.Dict]:
32 """Return a list of component template dictionaries"""
33 retval = []
34 kw = {
35 'ilm_policy': self.plan.ilm_policies[-1],
36 'rollover_alias': self.plan.rollover_alias,
37 }
38 retval.append(setting_component(**kw))
39 retval.append(mapping_component())
40 return retval
42 def setup(self) -> None:
43 """Setup the entity manager"""
44 for component in self.components:
45 put_comp_tmpl(self.client, self.name, component)
46 if not exists(self.client, self.kind, self.name):
47 raise ResultNotExpected(
48 f'Unable to verify creation of component template {self.name}'
49 )
50 self.appender(self.name)
51 logger.info(
52 'Successfully created all component templates: %s',
53 prettystr(self.entity_list),
54 )