Coverage for /Users/buh/.pyenv/versions/3.12.9/envs/es-testbed/lib/python3.12/site-packages/es_testbed/entities/alias.py: 100%
24 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-17 19:30 -0600
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-17 19:30 -0600
1"""Alias Entity Class"""
3import typing as t
4import logging
5from es_testbed.entities.entity import Entity
6from es_testbed.helpers.es_api import resolver, rollover
7from es_testbed.helpers.utils import prettystr
9if t.TYPE_CHECKING:
10 from elasticsearch8 import Elasticsearch
12logger = logging.getLogger(__name__)
14# pylint: disable=missing-docstring,too-many-arguments
17class Alias(Entity):
19 def __init__(
20 self,
21 client: 'Elasticsearch',
22 name: t.Union[str, None] = None,
23 ):
24 super().__init__(client=client, name=name)
26 def rollover(self) -> None:
27 """Rollover the alias"""
28 rollover(self.client, self.name)
30 def verify(self, index_list: t.Sequence[str]) -> bool:
31 retval = False
32 res = resolver(self.client, self.name)
33 for idx, alias in enumerate(res['aliases']):
34 if alias['name'] == self.name:
35 logger.debug(
36 f'Confirm list index position [{idx}] match of alias '
37 f'{prettystr(alias)}'
38 )
39 else:
40 continue
41 if alias['indices'] == index_list:
42 logger.debug(f'Confirm match of indices backed by alias {self.name}')
43 retval = True
44 break
45 return retval