# Copyright (C) 2005-2025 Splunk Inc. All Rights Reserved. from ITOA.setup_logging import InstrumentCall, logger class Precheck: # Abstract class for precheck scenarios def precheck_result(self): pass def auto_remediation(self): pass def get_precheck_details(self): pass def get_auto_remediation_details(self): pass @InstrumentCall(logger) def get_logging_details(self, itsi_muh, remediation_results): # precheck details which needs to be logged logger.info("Starting get_logging_details for class: %s", self.__class__.__name__) precheck_id = itsi_muh.dict_for_mapping_precheck_ids[self.__class__.__name__] category = itsi_muh.dict_for_mapping_category[precheck_id] failure_severity = itsi_muh.precheck_failure_severity[precheck_id] block_upgrade = False # if severity is Major, then it will block the upgrade else will not if failure_severity == 'Major': block_upgrade = True logger.info("Failure severity is Major, upgrade will be blocked.") logging_details = itsi_muh.make_logging_details( precheck_id, len(remediation_results), failure_severity, category, block_upgrade) logger.info("Logging details created: precheck_id=%s, category=%s," "failure_severity=%s, block_upgrade=%s", precheck_id, category, failure_severity, block_upgrade) logger.debug("Remediation results count: %d", len(remediation_results)) logger.info("Finished get_logging_details for class: %s", self.__class__.__name__) return logging_details