Features/liblvm

From FedoraProject

< Features
Revision as of 23:21, 12 February 2009 by Poelstra (Talk | contribs)

Jump to: navigation, search

Contents

Add a userspace library, liblvm, for application interface to LVM

Summary

Add liblvm, a userspace library for application interface to LVM. Fedora project page is here.

Owner

  • Name: Dave Wysochanski <dwysocha@redhat.com>

Current status

  • Targeted release: Fedora 11
  • Last updated: (2/12/2009)
  • Percentage of completion: 25%

Detailed Description

LVM is currently being used by other software projects. These projects interface with LVM by calling the LVM commandline either by invoking a shell or calling the string-based liblvmcmd. liblvm proposes to create a real API for use by application programs. libLVM features will be driven by the needs of the known primary consumers of the API which are anaconda, system-config-storage, libvirt, and others. One of the main drivers of libLVM is the anaconda storage rewrite, and specifically, system-config-storage. Much of the contents of the initial release of libLVM centers around supporting this effort.

Benefit to Fedora

Applications currently calling the LVM commandline to interface with LVM can be updated to use the new liblvm API providing for more flexibility, better error handling, etc.

Scope

Requires rebasing LVM RPM from upstream, pulling in the latest liblvm code.

Test Plan

  1. liblvm will be used by existing lvm tools, which are covered by nightly tests.
  2. liblvm will also be unit tested by developers as APIs are developed
  3. liblvm will be tested by anaconda team as they do the anaconda rewrite

User Experience

  1. Users of the lvm tools should experience no regressions.
  2. Users of applications that utilize liblvm should experience no regressions in the applications, and the applications capabilities should be enhanced by liblvm.

Dependencies

  • device-mapper (upstream version in sync with upstream LVM)

Contingency Plan

  • Existing applications calling LVM can still call the lvm commandline and/or use the liblvmcmd, commandline string based library.

Documentation

Release Notes

Users and applications desiring to use liblvm should use the liblvm header file and link to the liblvm library.