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-17 22:23 -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