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

1"""Alias Entity Class""" 

2 

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 

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 def rollover(self) -> None: 

29 """Rollover the alias""" 

30 debug.lv2('Starting method...') 

31 rollover(self.client, self.name) 

32 debug.lv3('Exiting method') 

33 

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