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-21 21:08 -0600
« prev ^ index » next coverage.py v7.6.12, created at 2025-04-21 21:08 -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