in launcher/sdw_updater/Updater.py [0:0]
def last_required_reboot_performed():
"""
Checks if the dom0 flag file indicates that a reboot is required, and
if so, will check current uptime with the data at which the reboot
was requested. This will be used by the _write_updates_status_flag_to_disk
function to preserve the status UPDATES_REQUIRED instead of updating.
"""
flag_contents = read_dom0_update_flag_from_disk(with_timestamp=True)
# No flag exists on disk (yet)
if flag_contents is None:
return True
if int(flag_contents["status"]) == int(UpdateStatus.REBOOT_REQUIRED.value):
reboot_time = datetime.strptime(flag_contents["last_status_update"], DATE_FORMAT)
boot_time = datetime.now() - _get_uptime()
# The session was started *before* the reboot was requested by
# the updater, system was not rebooted after previous run
if boot_time < reboot_time:
return False
# system was rebooted after flag was written to disk
return True
# previous run did not require reboot
return True