# Copyright (C) 2005-2025 Splunk Inc. All Rights Reserved. import time from ITOA.setup_logging import logger from ITOA.itoa_object import ItoaObject from ITOA import itoa_common class ItsiEntityDiscoverySearch(ItoaObject): """ Implements KV store collection itsi_entity_discovery_search Fields in this collection are: _key - saved search name last_execution_time - last time search search was run entity_status_tracking - whether the search result is taken into account when determining the status of an entity If is_unstable_entity_ff is disabled eg: { '_key': VMware vCenter, 'last_execution_time': 1600517750.931288 } ... If is_unstable_entity_ff is enabled, latest_entity_status_tracking_flag is True/False, entity_status_tracking field is set eg: { '_key': VMware vCenter, 'last_execution_time': 1600517750.931288 'entity_status_tracking': True } """ def __init__(self, session_key, current_user_name='nobody'): self.collection_name = 'itsi_entity_discovery_search' self.session_key = session_key super(ItsiEntityDiscoverySearch, self).__init__(self.session_key, current_user_name, 'itsi_entity_discovery_search', collection_name=self.collection_name, title_validation_required=False) def set_search_execution(self, saved_search_name, latest_entity_status_tracking_flag=None): """ Creates or updates entry for a given saved search name (_key) @param saved_search_name: name of the saved search that acts as a _key """ current_time = time.time() existing_search = self.get(self.current_user_name, saved_search_name) search_data = {'_key': saved_search_name, 'last_execution_time': current_time} if latest_entity_status_tracking_flag is not None: search_data['entity_status_tracking'] = latest_entity_status_tracking_flag if existing_search: self.update(self.current_user_name, object_id=saved_search_name, data=search_data) logger.info('Updated itsi_entity_discovery_search entry for saved search: (%s)' % saved_search_name) else: self.create(self.current_user_name, data=search_data) logger.info('Created itsi_entity_discovery_search entry for saved search: (%s)' % saved_search_name)