Coverage for /Users/buh/.pyenv/versions/3.12.2/envs/es-testbed/lib/python3.12/site-packages/es_testbed/classes/entitymgrs/componentmgr.py: 86%
33 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-27 20:59 -0600
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-27 20:59 -0600
1"""Component Template Entity Manager Class"""
3import typing as t
4from es_testbed.exceptions import ResultNotExpected
5from es_testbed.helpers import es_api
6from es_testbed.helpers.utils import getlogger, mapping_component, setting_component
7from .entitymgr import EntityMgr
9if t.TYPE_CHECKING: 9 ↛ 10line 9 didn't jump to line 10, because the condition on line 9 was never true
10 from elasticsearch8 import Elasticsearch
11 from dotmap import DotMap
13# pylint: disable=missing-docstring,too-many-arguments
16class ComponentMgr(EntityMgr):
17 kind = 'component'
18 listname = 'component_templates'
20 def __init__(
21 self,
22 client: t.Union['Elasticsearch', None] = None,
23 plan: t.Union['DotMap', None] = None,
24 autobuild: t.Optional[bool] = True,
25 ):
26 super().__init__(client=client, plan=plan, autobuild=autobuild)
27 self.logger = getlogger('es_testbed.ComponentMgr')
29 @property
30 def components(self) -> t.Sequence[t.Dict]:
31 """Return a list of component template dictionaries"""
32 retval = []
33 kw = {
34 'ilm_policy': self.plan.ilm_policies[-1],
35 'rollover_alias': self.plan.rollover_alias,
36 }
37 retval.append(setting_component(**kw))
38 retval.append(mapping_component())
39 return retval
41 @property
42 def logdisplay(self) -> str:
43 """Return a human readable representation of what is managed"""
44 return 'component template'
46 def setup(self) -> None:
47 """Setup the entity manager"""
48 for component in self.components:
49 es_api.put_comp_tmpl(self.client, self.name, component)
50 if not es_api.exists(self.client, self.kind, self.name): 50 ↛ 51line 50 didn't jump to line 51, because the condition on line 50 was never true
51 raise ResultNotExpected(
52 f'Unable to verify creation of component template {self.name}'
53 )
54 self.appender(self.name)
55 self.logger.info('Created component template: "%s"', self.last)
56 self.logger.info('Successfully created all component templates.')
57 self.success = True