Anaconda/Features/Rework dispatch

From FedoraProject

Jump to: navigation, search

Contents

Rework dispatch

Summary

The dispatch.py code in anaconda is unnecessarily obscured and tied with the UI interface classes. Its implementation doesn't allow us to easily track if a certain step is going to be taken or skipped. Because it does not act as a proper controller, it is unsuitable for a multithreaded UI implementation.

Owner

Current status

Some of the GUI/dispatch untangling has been done, the dispatcher API has been cleaned up. This work should progress together with the UI redesign from now on, it has also been suggested we could use the GLib loop to dispatch all events.

Detailed Description

Problems with the current implementation:

A solution suggested by msivak is to have every step at its start check it has all necessary information. If not raise an exception that mentions all steps that need to happen before this step in order to collect all needed information: those will be added before the current step in the queue and the queue is re-executed from the start.

Benefit to Fedora

Better maintainability of the installer code.

Scope

Anaconda.

Test Plan

User Experience

Dependencies

Contingency Plan

Documentation

Release Notes