def should_launch_updater()

in launcher/sdw_updater/Updater.py [0:0]


def should_launch_updater(interval):
    status = read_dom0_update_flag_from_disk(with_timestamp=True)

    if _valid_status(status):
        if _interval_expired(interval, status):
            sdlog.info("Update interval expired: launching updater.")
            return True
        if status["status"] == UpdateStatus.UPDATES_OK.value:
            sdlog.info("Updates OK and interval not expired, launching client.")
            return False
        if status["status"] == UpdateStatus.REBOOT_REQUIRED.value:
            if last_required_reboot_performed():
                sdlog.info("Required reboot performed, updating status and launching client.")
                _write_updates_status_flag_to_disk(UpdateStatus.UPDATES_OK)
                return False

            sdlog.info("Required reboot pending, launching updater")
            return True
        if status["status"] == UpdateStatus.UPDATES_REQUIRED.value:
            sdlog.info("Updates are required, launching updater.")
            return True
        if status["status"] == UpdateStatus.UPDATES_FAILED.value:
            sdlog.info("Preceding update failed, launching updater.")
            return True

        sdlog.info("Update status is unknown, launching updater.")
        return True

    sdlog.info("Update status not available, launching updater.")
    return True