def run_full_update()

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


    def run_full_update(self):
        # Pre-populate results with all available steps for early exits
        results = {
            "dom0": UpdateStatus.UPDATES_REQUIRED,
            "apply_dom0": UpdateStatus.UPDATES_REQUIRED,
            "apply_all": UpdateStatus.UPDATES_REQUIRED,
            "templates": UpdateStatus.UPDATES_REQUIRED,
        }

        # Update dom0 first, then apply dom0 state. If full state run
        # is required, the dom0 state will drop a flag.
        self.progress_signal.emit(5)
        results["dom0"] = Updater.apply_updates_dom0()
        if results["dom0"] == UpdateStatus.UPDATES_FAILED:
            return results  # Fail early

        # apply dom0 state
        self.progress_signal.emit(10)
        # add to results dict, if it fails it will show error message
        results["apply_dom0"] = Updater.apply_dom0_state()
        if results["apply_dom0"] == UpdateStatus.UPDATES_FAILED:
            return results  # Fail early

        self.progress_signal.emit(15)
        # rerun full config if dom0 checks determined it's required
        if Updater.migration_is_required():
            # Progress bar will freeze for ~15m during full state run
            self.progress_signal.emit(35)
            # add to results dict, if it fails it will show error message
            results["apply_all"] = Updater.run_full_install()
            if results["apply_all"] == UpdateStatus.UPDATES_FAILED:
                return results  # Fail early

            self.progress_signal.emit(75)

            templates_progress_callback = self.templates_progress_callback_factory(
                progress_start=75,
                progress_end=90,
            )
        else:
            results["apply_all"] = UpdateStatus.UPDATES_OK  # No updates
            templates_progress_callback = self.templates_progress_callback_factory(
                progress_start=15,
                progress_end=90,
            )

        results["templates"] = Updater.apply_updates_templates(
            current_templates,
            templates_progress_callback,
        )

        return results