in src/core/src/service_interfaces/StatusHandler.py [0:0]
def add_error_to_status(self, message, error_code=Constants.PatchOperationErrorCodes.DEFAULT_ERROR, current_operation_override_for_error=Constants.DEFAULT_UNSPECIFIED_VALUE):
""" Add error to the respective error objects """
if not message or Constants.ERROR_ADDED_TO_STATUS in message:
return
# Compose error detail
error_detail = self.__set_error_detail(error_code, message)
# determine if a current operation override has been requested
current_operation = self.__current_operation if current_operation_override_for_error == Constants.DEFAULT_UNSPECIFIED_VALUE else current_operation_override_for_error
if current_operation == Constants.ASSESSMENT:
if self.__try_add_error(self.__assessment_errors, error_detail):
self.__assessment_total_error_count += 1
# retain previously set status and code for assessment substatus
if self.__assessment_substatus_json is not None:
self.set_assessment_substatus_json(status=self.__assessment_substatus_json["status"], code=self.__assessment_substatus_json["code"])
else:
self.set_assessment_substatus_json()
elif current_operation == Constants.INSTALLATION:
if self.__try_add_error(self.__installation_errors, error_detail):
self.__installation_total_error_count += 1
# retain previously set status and code for installation substatus
if self.__installation_substatus_json is not None:
self.set_installation_substatus_json(status=self.__installation_substatus_json["status"], code=self.__installation_substatus_json["code"])
else:
self.set_installation_substatus_json()
elif current_operation == Constants.CONFIGURE_PATCHING or current_operation == Constants.CONFIGURE_PATCHING_AUTO_ASSESSMENT:
if current_operation == Constants.CONFIGURE_PATCHING_AUTO_ASSESSMENT:
if self.__try_add_error(self.__configure_patching_auto_assessment_errors, error_detail):
self.__configure_patching_auto_assessment_error_count += 1
else:
if self.__try_add_error(self.__configure_patching_errors, error_detail):
self.__configure_patching_top_level_error_count += 1
# retain previously set status, code, patchMode and assessmentMode for configure patching substatus
if self.__configure_patching_substatus_json is not None:
automatic_os_patch_state = json.loads(self.__configure_patching_substatus_json["formattedMessage"]["message"])["automaticOSPatchState"]
auto_assessment_status = self.__json_try_get_key_value(self.__configure_patching_substatus_json["formattedMessage"]["message"],"autoAssessmentStatus","{}")
auto_assessment_state = self.__json_try_get_key_value(json.dumps(auto_assessment_status), "autoAssessmentState", Constants.AutoAssessmentStates.UNKNOWN)
self.set_configure_patching_substatus_json(status=self.__configure_patching_substatus_json["status"], code=self.__configure_patching_substatus_json["code"],
automatic_os_patch_state=automatic_os_patch_state, auto_assessment_state=auto_assessment_state)
else:
self.set_configure_patching_substatus_json()
else:
return