Coverage for /Users/buh/.pyenv/versions/3.12.2/envs/es-testbed/lib/python3.12/site-packages/es_testbed/mgrs/componentmgr.py: 96%
27 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-02 13:22 -0600
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-02 13:22 -0600
1"""Component Template Entity Manager Class"""
3import typing as t
4from .entitymgr import EntityMgr
5from ..exceptions import ResultNotExpected
6from ..helpers.es_api import exists, put_comp_tmpl
7from ..helpers.utils import getlogger, mapping_component, prettystr, setting_component
9if t.TYPE_CHECKING:
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 ):
25 self.logger = getlogger('es_testbed.ComponentMgr')
26 super().__init__(client=client, plan=plan)
28 @property
29 def components(self) -> t.Sequence[t.Dict]:
30 """Return a list of component template dictionaries"""
31 retval = []
32 kw = {
33 'ilm_policy': self.plan.ilm_policies[-1],
34 'rollover_alias': self.plan.rollover_alias,
35 }
36 retval.append(setting_component(**kw))
37 retval.append(mapping_component())
38 return retval
40 def setup(self) -> None:
41 """Setup the entity manager"""
42 for component in self.components:
43 put_comp_tmpl(self.client, self.name, component)
44 if not exists(self.client, self.kind, self.name):
45 raise ResultNotExpected(
46 f'Unable to verify creation of component template {self.name}'
47 )
48 self.appender(self.name)
49 self.logger.info(
50 'Successfully created all component templates: %s',
51 prettystr(self.entity_list),
52 )
53 self.success = True