Coverage for /Users/buh/.pyenv/versions/3.12.9/envs/es-testbed/lib/python3.12/site-packages/es_testbed/entities/alias.py: 100%
31 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-04-16 12:23 -0600
« prev ^ index » next coverage.py v7.6.12, created at 2025-04-16 12:23 -0600
1"""Alias Entity Class"""
3# pylint: disable=C0115,C0116,R0902,R0904,R0913,R0917
4import typing as t
5import logging
6from ..debug import debug, begin_end
7from ..es_api import resolver, rollover
8from ..utils import prettystr
9from .entity import Entity
11if t.TYPE_CHECKING:
12 from elasticsearch8 import Elasticsearch
14logger = logging.getLogger(__name__)
17class Alias(Entity):
19 def __init__(
20 self,
21 client: 'Elasticsearch',
22 name: t.Union[str, None] = None,
23 ):
24 debug.lv2('Initializing Alias entity object...')
25 super().__init__(client=client, name=name)
26 debug.lv3('Alias entity object initialized')
28 @begin_end()
29 def rollover(self) -> None:
30 """Rollover the alias"""
31 rollover(self.client, self.name)
33 @begin_end()
34 def verify(self, index_list: t.Sequence[str]) -> bool:
35 retval = False
36 res = resolver(self.client, self.name)
37 debug.lv5(f'resolver response: {prettystr(res)}')
38 for idx, alias in enumerate(res['aliases']):
39 if alias['name'] == self.name:
40 debug.lv3(
41 f'Confirm list index position [{idx}] match of alias '
42 f'{prettystr(alias)}'
43 )
44 else:
45 continue
46 if alias['indices'] == index_list:
47 debug.lv3(f'Confirm match of indices backed by alias {self.name}')
48 retval = True
49 break
50 debug.lv5(f'Return value = {retval}')
51 return retval