Coverage for /Users/buh/.pyenv/versions/3.12.9/envs/es-testbed/lib/python3.12/site-packages/es_testbed/entities/entity.py: 100%
23 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-04-17 22:23 -0600
« prev ^ index » next coverage.py v7.6.12, created at 2025-04-17 22:23 -0600
1"""Entity Parent Class"""
3# pylint: disable=R0903
4import typing as t
5from ..debug import debug, begin_end
6from ..es_api import find_write_index, get_ds_current, resolver
8if t.TYPE_CHECKING:
9 from elasticsearch8 import Elasticsearch
12class Entity:
13 """Entity Parent Class"""
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
23 @property
24 @begin_end()
25 def am_i_write_idx(self) -> bool:
26 """
27 Determine if self.name is the write index for either a rollover alias or a
28 data_stream
29 """
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.lv5(f'Return value = {retval}')
41 return retval