Coverage for /Users/buh/.pyenv/versions/3.12.2/envs/es-testbed/lib/python3.12/site-packages/es_testbed/entities/alias.py: 46%

24 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-08-30 20:56 -0600

1"""Alias Entity Class""" 

2 

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 

8 

9if t.TYPE_CHECKING: 

10 from elasticsearch8 import Elasticsearch 

11 

12logger = logging.getLogger(__name__) 

13 

14# pylint: disable=missing-docstring,too-many-arguments 

15 

16 

17class Alias(Entity): 

18 

19 def __init__( 

20 self, 

21 client: 'Elasticsearch', 

22 name: t.Union[str, None] = None, 

23 ): 

24 super().__init__(client=client, name=name) 

25 

26 def rollover(self) -> None: 

27 rollover(self.client, self.name) 

28 

29 def verify(self, index_list: t.Sequence[str]) -> bool: 

30 retval = False 

31 res = resolver(self.client, self.name) 

32 for idx, alias in enumerate(res['aliases']): 

33 if alias['name'] == self.name: 

34 logger.debug( 

35 'Confirm list index position [%s] match of alias %s', 

36 idx, 

37 prettystr(alias), 

38 ) 

39 else: 

40 continue 

41 if alias['indices'] == index_list: 

42 logger.debug('Confirm match of indices backed by alias %s', self.name) 

43 retval = True 

44 break 

45 return retval