Features/FirstAidKit

= First Aid Kit =

Summary
Firstaidkit is an automated recovery tool that brings together common recovery processes and applies them to a system. The way that Firstaidkit handles the recovery processes is by means of plugins. The idea being that a plugin will focus on a particular issue in the system, like grub, init scripts or Xserver. Firstaidkit is designed to automatically fix problems while focusing on maintaining user data integrity. In other words, Firstaidkit will try its best to fix your system while giving you the possibility to revert the changes.

Owner

 * Name: MartinSivak / JoelGranados

Current status

 * Included since Fedora 10
 * Last updated: 2009-07-17 (version 0.2.3-4 is in rawhide)
 * Percentage of completion:  100% .

Detailed Description
For a long time, people have asked for a task based approach to rescuing their systems. Rescue mode is an okay start, but we can do a lot better by automating simple and common recovery tasks. Obvious things would be
 * dmraid rebuild and recovery
 * reinstall bootloader
 * recreate the initrd
 * reinstall some "base" packages

Implementing these as individual pieces rather than entirely tying them to anaconda would be the most beneficial way to do it. Then we can tie them together with a relatively simple "Fix my System" menu and also make use of them from a graphical version of the same on the LiveCD.

See the upstream project at https://fedorahosted.org/firstaidkit/

Benefit to Fedora
Makes it easier for users to rescue their systems in case of problems

Scope

 * FirstAidKit is planned as a package. It will be a pluggable application that can house all kinds of plugins.  Each plugin will be one automated recovery task.

Test Plan
Testing Finding out that the plugins actually work in a running system, liveCD and rescue mode is probably the best plan.

Steps to test:


 * Pick a plugin to test
 * Intentionally break the subsystem that the plugin is targeted at.
 * Run firstaidkit to try to fix that subsystem
 * Report any strangeness in the behavior of the execution and/or the fix itself.
 * Repeat for liveCD, rescue mode and running system.

User Experience
In case of any mishaps with the user's system. He/she should be able to run the rescue environment or livecd and use the FirstAidKit environment. Either by running an automated "Fix whatever is wrong with my system" process, or specific tasks from specific plugins for the more advanced user.

Dependencies
Firstaidkit (The backend) does not depend on any packages. The plugins however do need some deps to make things work. Without being to thorough, here is a list of some deps.

xserver plugin : rhpl, rhpxl grub plugin : pyparted, grub, dbus-python mdadmconf plugin : mdadm rpm plugin : rpm, rpm-python

Contingency Plan
Does not apply. Nothing depends on firstaidkit.

Documentation

 * We have man pages that come with the package.
 * We have cool figures that explain firstaidkit internals and ideas
 * Architecture Overview
 * Default Flow
 * Presentations
 * FUDCon Brno 2008
 * We have a wiki that maps the man pages.
 * FirstaidkitDoc
 * FirstaidkitPluginDoc
 * FirstaidkitFlagsDoc
 * FirstaidkitBackupDoc
 * FirstaidkitReporting
 * We have an article that describes the firstaidkit idea.
 * FirstAidKit Explained

Release Notes
Firstaidkit is a fully automated recovery application that will make subsystem recovery easier on the non-technical user. Firstaidkit is designed to automatically fix problems while focusing on maintaining user data integrity. It will be available in rescue mode, liveCD and on runnin systems.

Comments and Discussion

 * See Talk:Features/FirstAidKit