public inbox for springfield@sourceware.org
 help / color / mirror / Atom feed
From: "Vojtěch Trefný" <vtrefny@redhat.com>
To: springfield@sourceware.org
Subject: Re: Could libguestfs use springfield?
Date: Mon, 01 Jan 2018 00:00:00 -0000	[thread overview]
Message-ID: <bd2d41b3-eabf-37fe-ef42-4d1d97b335f1@redhat.com> (raw)
In-Reply-To: <20180614111545.GB14740@redhat.com>



On 06/14/2018 01:15 PM, Richard W.M. Jones wrote:
> 
> libguestfs provides a C library and large set of tools for
> manipulating disk images.  http://libguestfs.org/
> 
> As part of this we provide APIs to open VM disks and do things like
> enumerate partitions or resize logical volumes.  The actual way this
> works currently is we run the external commands (eg. parted, lvresize)
> inside a small virtual machine and pass the right command line options
> or parse the output.  In some cases we're also parsing stuff out of
> kernel /sys/block.
> 
> We've accumulated a large amount of code to do this (I counted 60619
> lines of code in the current version).  Here are a few examples so you
> can see in concrete terms what I'm talking about:
> 
> https://github.com/libguestfs/libguestfs/blob/afd1c70601c51043684a0245ce2f63d71a9cc07a/daemon/parted.c#L344
> 
> https://github.com/libguestfs/libguestfs/blob/afd1c70601c51043684a0245ce2f63d71a9cc07a/daemon/lvm.c#L271
> 
> Steven W pointed me to "Project Springfield" and it sort of looks like
> it's in the same area.  Could libguestfs replace the parsing code
> above with this?
> 
> What might be problems: We have no python or dbus in the appliance.
> So anything that depends on those is a non-starter.
> 
> TBH the project webpage left me more confused than enlightened.  There
> seem to be lots of projects (subprojects?) doing stuff with odd names
> and no unifying philosophy, and I'm not sure if Project Springfield is
> a thing or more of an intention.
> 
> Rich.
> 

Hi, project springfield is a collection of existing projects, 
libblockdev is probably the "subproject" you are looking for. It is a 
plugin based C library -- we have plugins for working with btrfs, 
filesystems (ext, xfs, vfat and ntfs), lvm, mdraid, partitions etc.
It mostly also uses the command line tools and in some cases also other 
existing libraries (libcryptsetup, libmount, libparted...).

Libblockdev Github repo: https://github.com/storaged-project/libblockdev
and API documentation: http://storaged.org/libblockdev/

 From the code you sent it looks like libblockdev covers most of the 
functionality libguestfs needs. Some functionality is missing (e.g. we 
don't support changing of uuid for lvs) but we can add these missing bits.

--
Vojtech Trefny

  reply	other threads:[~2018-06-14 14:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-01  0:00 Richard W.M. Jones
2018-01-01  0:00 ` Vojtěch Trefný [this message]
2018-01-01  0:00   ` Richard W.M. Jones
2018-01-01  0:00     ` Steven Whitehouse

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bd2d41b3-eabf-37fe-ef42-4d1d97b335f1@redhat.com \
    --to=vtrefny@redhat.com \
    --cc=springfield@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).