Coverage for /Users/buh/.pyenv/versions/3.12.9/envs/es-testbed/lib/python3.12/site-packages/es_testbed/entities/data_stream.py: 100%

20 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-17 19:30 -0600

1"""data_stream Entity Class""" 

2 

3import typing as t 

4import logging 

5from es_testbed.entities.alias import Alias 

6from es_testbed.helpers.es_api import get_backing_indices 

7 

8if t.TYPE_CHECKING: 

9 from elasticsearch8 import Elasticsearch 

10 

11logger = logging.getLogger(__name__) 

12 

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

14 

15 

16class DataStream(Alias): 

17 """data_stream Entity Class""" 

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 self.index_tracker = [] 

26 self.alias = None 

27 

28 @property 

29 def backing_indices(self): 

30 """Return the list of backing indices for the data_stream""" 

31 return get_backing_indices(self.client, self.name) 

32 

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

34 """Verify that the backing indices match ``index_list``""" 

35 retval = False 

36 if self.backing_indices == index_list: 

37 logger.debug(f'Confirm match of data_stream "{self.name}" backing indices') 

38 retval = True 

39 return retval