You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
self.composite_logger.log_warning("Arc extension with sequence number {0} is currently running. Exiting autoassessment".format(str(arc_core_sequence['number'])))
51
-
self.update_core_sequence(completed=True) # forced-to-complete scenario | extension wrapper will be watching for this event
self.composite_logger.log_warning("Auto-assessment not started as newer sequence number detected. [Attempted={0}][DetectedExt={1}][DetectedCore={2}]".format(str(self.execution_config.sequence_number), str(extension_sequence['number']), str(core_sequence['number'])))
59
-
self.env_layer.exit(0)
60
-
61
-
# anomalous extension state encountered, do not run - this needs to be investigated if ever encountered
self.composite_logger.log_error("Auto-assessment not started as an extension state anomaly was detected. [Attempted={0}][DetectedExt={1}][DetectedCore={2}]".format(str(self.execution_config.sequence_number), str(extension_sequence['number']),str(core_sequence['number'])))
65
-
self.env_layer.exit(0)
66
-
67
-
# attempted sequence number is same as recorded core sequence - expected
self.composite_logger.log_warning("Auto-assessment NOT STARTED as newer sequence number detected. [Attempted={0}][DetectedExt={1}][DetectedCore={2}]".format(str(self.execution_config.sequence_number), str(extension_sequence['number']), str(core_sequence['number'])))
self.composite_logger.log_error("Auto-assessment NOT STARTED as an extension state anomaly was detected. [Attempted={0}][DetectedExt={1}][DetectedCore={2}]".format(str(self.execution_config.sequence_number), str(extension_sequence['number']), str(core_sequence['number'])))
63
+
self.composite_logger.file_logger.close()
64
+
self.env_layer.exit(0)
65
+
66
+
# DEFINITELY NOT SAFE TO START. ARC Assessment/Patch Operation is running. It is not required to start Auto-Assessment
self.composite_logger.log_error("Auto-assessment NOT STARTED as arc extension is running. [Attempted={0}][ARCSequenceNo={1}]".format(str(self.execution_config.sequence_number), str(arc_core_sequence['number'])))
69
+
self.composite_logger.file_logger.close()
70
+
self.env_layer.exit(0)
71
+
72
+
# DEFINITELY SAFE TO START. Correct sequence number marked as completed
69
73
ifcore_sequence['completed'].lower() =='true':
70
-
self.composite_logger.log_debug("Auto-assessment is safe to start. Existing sequence number marked as completed.")
71
-
self.update_core_sequence(completed=False) # signalling core restart with auto-assessment as its safe to do so
72
-
else:
73
-
self.composite_logger.log_debug("Auto-assessment may not be safe to start yet as core sequence is not marked completed.")
# Possible reasons: full core operation is in progress (okay), some previous auto-assessment is still running (bad scheduling, adhoc run, or process stalled)
77
-
self.composite_logger.log_warning("Auto-assessment is NOT safe to start yet. Existing core process(es) running. Exiting. [LastHeartbeat={0}][Operation={1}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action'])))
74
+
self.composite_logger.log("Auto-assessment is SAFE to start. Existing sequence number marked as COMPLETED.\n")
75
+
self.read_only_mode=False
76
+
break
77
+
78
+
# Check for active running processes if not completed
self.composite_logger.log("Auto-assessment is SAFE to start. Core sequence ownership is already established.\n")
82
+
self.read_only_mode=False
83
+
break
84
+
85
+
# DEFINITELY _NOT_ SAFE TO START. Possible reasons: full core operation is in progress (okay), some previous auto-assessment is still running (bad scheduling, adhoc run, or process stalled)
86
+
ifelapsed_time_in_minutes>Constants.MAX_AUTO_ASSESSMENT_WAIT_FOR_MAIN_CORE_EXEC_IN_MINUTES: # will wait up to the max allowed
87
+
self.composite_logger.log_warning("Auto-assessment is NOT safe to start yet.TIMED-OUT waiting to Core to complete. EXITING. [LastHeartbeat={0}][Operation={1}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action'])))
88
+
self.composite_logger.file_logger.close()
78
89
self.env_layer.exit(0)
79
90
else:
80
-
# MAY BE SAFE TO START
81
-
self.composite_logger.log_warning("Auto-assessment is LIKELY safe to start, BUT core sequence anomalies were detected. Evaluating further. [LastHeartbeat={0}][Operation={1}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action'])))
self.composite_logger.log_warning("Auto-assessment is NOT safe to start as core process(es) started running. Exiting. [LastHeartbeat={0}][Operation={1}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action'])))
90
-
self.env_layer.exit(0)
91
-
92
-
# If timed out without the main Core process starting, assume it's safe to proceed
self.composite_logger.log_debug("Auto-assessment is now considered safe to start since Core did not start after a reboot buffer wait period. [LastHeartbeat={0}][Operation={1}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action'])))
97
-
break
98
-
99
-
self.update_core_sequence(completed=False)# signalling core restart with auto-assessment as its safe to do so
91
+
self.composite_logger.file_logger.flush()
92
+
self.composite_logger.log_warning("Auto-assessment is NOT safe to start yet. Waiting to retry (up to set timeout). [LastHeartbeat={0}][Operation={1}][ElapsedTimeInMinutes={2}][TotalWaitRequiredInMinutes={3}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action']), str(elapsed_time_in_minutes), str(Constants.REBOOT_BUFFER_IN_MINUTES)))
93
+
self.composite_logger.file_logger.flush()
94
+
time.sleep(30)
95
+
continue
96
+
97
+
# MAYBE SAFE TO START. Safely timeout if wait for any core restart events (from a potential reboot) has exceeded the maximum reboot buffer
self.composite_logger.log_debug("Auto-assessment is now considered SAFE to start as Core timed-out in reporting completion mark. [LastHeartbeat={0}][Operation={1}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action'])))
100
+
self.read_only_mode=False
101
+
break
102
+
103
+
# Briefly pause execution to re-check all states (including reboot buffer) again
104
+
self.composite_logger.file_logger.flush()
105
+
self.composite_logger.log_debug("Auto-assessment is waiting for Core state completion mark (up to set timeout). [LastHeartbeat={0}][Operation={1}][ElapsedTimeInMinutes={2}][TotalWaitRequiredInMinutes={3}]".format(str(core_sequence['lastHeartbeat']), str(core_sequence['action']), str(elapsed_time_in_minutes), str(Constants.REBOOT_BUFFER_IN_MINUTES)))
106
+
self.composite_logger.file_logger.flush()
107
+
time.sleep(30)
108
+
109
+
# Signalling take-over of core state by auto-assessment after safety checks for any competing process
0 commit comments