Coverage for /Users/buh/.pyenv/versions/3.12.9/envs/es-testbed/lib/python3.12/site-packages/es_testbed/entities/alias.py: 100%
33 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-31 13:12 -0600
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-31 13:12 -0600
1"""Alias Entity Class"""
3# pylint: disable=C0115,C0116,R0902,R0904,R0913,R0917
4import typing as t
5import logging
6import tiered_debug as debug
7from es_testbed.entities.entity import Entity
8from es_testbed.helpers.es_api import resolver, rollover
9from es_testbed.helpers.utils import prettystr
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 def rollover(self) -> None:
29 """Rollover the alias"""
30 debug.lv2('Starting method...')
31 rollover(self.client, self.name)
32 debug.lv3('Exiting method')
34 def verify(self, index_list: t.Sequence[str]) -> bool:
35 debug.lv2('Starting method...')
36 retval = False
37 res = resolver(self.client, self.name)
38 debug.lv5(f'resolver response: {prettystr(res)}')
39 for idx, alias in enumerate(res['aliases']):
40 if alias['name'] == self.name:
41 debug.lv3(
42 f'Confirm list index position [{idx}] match of alias '
43 f'{prettystr(alias)}'
44 )
45 else:
46 continue
47 if alias['indices'] == index_list:
48 debug.lv3(f'Confirm match of indices backed by alias {self.name}')
49 retval = True
50 break
51 debug.lv3('Exiting method, returning value')
52 debug.lv5(f'Value = {retval}')
53 return retval