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

1"""Alias Entity Class""" 

2 

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 

10 

11if t.TYPE_CHECKING: 

12 from elasticsearch8 import Elasticsearch 

13 

14logger = logging.getLogger(__name__) 

15 

16 

17class Alias(Entity): 

18 

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") 

27 

28 @begin_end() 

29 def rollover(self) -> None: 

30 """Rollover the alias""" 

31 rollover(self.client, self.name) 

32 

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