in src/core/src/service_interfaces/StatusHandler.py [0:0]
def __new_installation_summary_json(self, installation_packages_json):
""" Called by: set_installation_substatus_json
Purpose: This composes the message inside the patch installation summary substatus:
Root --> Status --> Substatus [name: "PatchInstallationSummary"] --> FormattedMessage --> **Message** """
# Calculate summary
not_selected_patch_count = 0
excluded_patch_count = 0
pending_patch_count = 0
installed_patch_count = 0
failed_patch_count = 0
for i in range(0, len(installation_packages_json)):
patch_installation_state = installation_packages_json[i]['patchInstallationState']
if patch_installation_state == Constants.NOT_SELECTED:
not_selected_patch_count += 1
elif patch_installation_state == Constants.EXCLUDED:
excluded_patch_count += 1
elif patch_installation_state == Constants.PENDING:
pending_patch_count += 1
elif patch_installation_state == Constants.INSTALLED:
installed_patch_count += 1
elif patch_installation_state == Constants.FAILED:
failed_patch_count += 1
else:
self.composite_logger.log_error("Unknown patch state recorded: {0}".format(str(patch_installation_state)))
# Reboot status refresh
self.__refresh_installation_reboot_status()
# Compose substatus message
return {
"installationActivityId": str(self.execution_config.activity_id),
"rebootStatus": str(self.__installation_reboot_status),
"maintenanceWindowExceeded": self.__maintenance_window_exceeded,
"notSelectedPatchCount": not_selected_patch_count,
"excludedPatchCount": excluded_patch_count,
"pendingPatchCount": pending_patch_count,
"installedPatchCount": installed_patch_count,
"failedPatchCount": failed_patch_count,
"patches": installation_packages_json,
"startTime": str(self.execution_config.start_time),
"lastModifiedTime": str(self.env_layer.datetime.timestamp()),
"maintenanceRunId": str(self.execution_config.maintenance_run_id) if self.execution_config.maintenance_run_id is not None else '',
"errors": self.__set_errors_json(self.__installation_total_error_count, self.__installation_errors)
}