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

26 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-31 13:12 -0600

1"""Entity Parent Class""" 

2 

3# pylint: disable=R0903 

4import typing as t 

5import tiered_debug as debug 

6from es_testbed.helpers.es_api import find_write_index, get_ds_current, resolver 

7 

8if t.TYPE_CHECKING: 

9 from elasticsearch8 import Elasticsearch 

10 

11 

12class Entity: 

13 """Entity Parent Class""" 

14 

15 def __init__( 

16 self, 

17 client: 'Elasticsearch', 

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

19 ): 

20 self.client = client 

21 self.name = name # This will change with entity name changes 

22 

23 @property 

24 def am_i_write_idx(self) -> bool: 

25 """ 

26 Determine if self.name is the write index for either a rollover alias or a 

27 data_stream 

28 """ 

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

30 if self.name.startswith('.ds-'): # Datastream 

31 debug.lv2('Datastream detected') 

32 ds = resolver(self.client, self.name)['indices'][0]['data_stream'] 

33 debug.lv5(f'resolver response: {ds}') 

34 retval = bool(self.name == get_ds_current(self.client, ds)) 

35 debug.lv3('Exiting method, returning value') 

36 debug.lv5(f'Value = {retval}') 

37 return retval 

38 debug.lv2('Rollover alias detected') 

39 retval = bool(self.name == find_write_index(self.client, self.name)) 

40 debug.lv3('Exiting method, returning value') 

41 debug.lv5(f'Value = {retval}') 

42 return retval 

43 

44 def set_debug_tier(self, tier: int) -> None: 

45 """ 

46 Set the debug tier globally for this module 

47 """ 

48 debug.set_level(tier)