YaST - rewrite of the storage module

Build Status Build Status Coverage Status Code
Climate Inline
Docs

yast2-storage-ng is a reimplementation of the YaST storage module (yast2-storage) based on the also reimplemented library for storage manager (libstorage-ng).

This module contains essentially three parts:

  • YaST Expert Partitioner: a powerful tool capable of actions such as creating partitions and filesystems or configuring LVM and software RAID.

  • Storage Proposal: Based on the existing storage setup of a system proposes a storage layout for a new installation. Useful in two cases:

    • During a normal installation, offering a user interface to influence and inspect the result before it's written to the disks.
    • During auto-installation honoring the partitioning section of the AutoYaST profile.
  • Code for the YaST installation workflow and support functions for the above mentioned components and for other YaST modules, organized into the Y2Storage Ruby namespace. That includes:

    • A thin wrapper on top of several of the classes provided by the libstorage-ng Ruby bindings, like Devicegraph, Disk, etc. Check the libstorage-ng documentation for information about the philosophy and general usage and check the documentation of the Y2Storage namespace for details about the wrapper classes.
    • Additional YaST-specific functionality.

Status

Check the status of already implemented and still missing functionality.

Developer documentation

The /doc directory of this repository contains some files with information that can be very useful as starting point for those willing to modify or configure this YaST module.

  • y2partitioner_namespaces.md High level view on how the code of the Partitioner is organized into classes and namespaces.
  • old_and_new_proposal.md Comparison of the new Guided Proposal with the old method. The document also includes a reference about how to configure the Guided Proposal per product/role.
  • proposal.md High level view on how the code of the Guided Proposal is organized into classes and namespaces. Slightly outdated but still useful.
  • autoyast.md An outdated but still useful document explaining how the AutoYaST support was implemented based on the infrastructure of the Guided Proposal.
  • boot-requirements.md An auto-generated formal document describing the boot requirements honored by the Guided Proposal, so the functionality of the code can be validated by booting experts.
  • boot-partition.md A raw collection of notes taken during interviews with several booting experts, used as a reference to implement the Guided Proposal.
  • fake-devicegraphs-yaml-format.md A high level view of the format used to represent a libstorage-ng devicegraph in the yast-storage-ng test suite.
  • installer-hacks.md See the status document (linked above) for details.
  • designing-proposal-settings-ui.md The document that was used as a base for discussion when defining the user interface of the Guided Setup. Kept in the repository just for historic reference.
  • sle15_features_in_partitioner.md The document that was used as a base for discussion when adding new features to the Partitioner. Kept in the repository just for historic reference.