[libvirt] [PATCH] storage pool discovery

David Lively dlively at virtualiron.com
Wed Aug 6 17:06:49 UTC 2008


On Fri, 2008-08-01 at 10:40 +0100, Daniel P. Berrange wrote: 
> On Wed, Jul 30, 2008 at 04:30:01PM -0400, David Lively wrote:
> >   Finally, there's an underspecification issue.  The XML pool
> > descriptions returned are supposed to be usable as valid input to
> > virStoragePoolDefineXML.  But these descriptions include some data (pool
> > name, target path) that isn't specified by the discover input or the
> > discovered resources.  For now, I'm making up a somewhat arbitrary pool
> > name (logical: VolGroup name, netfs: last component of export path).
> > And I don't even specify <target><path> in the "netfs" discovery output
> > (which means it's not valid input to virStoragePoolDefineXML until a
> > target path is added).
> 
> Yep, my original intention was that you could send the XML straight
> back into the PoolDefineXML api. One alternative I've thought of 
> though, is that it perhaps it might be nicer to return all the 
> discovered pools as one XML doc
> 
>    <poolList type='netfs'>
>       <source>
>         <host name='someserver'/>
>         <dir path='/exports/home'/>
>       </source>
>       <source>
>         <host name='someserver'/>
>         <dir path='/exports/web'/>
>       </source>
>       <source>
>         <host name='someserver'/>
>         <dir path='/exports/ftp'/>
>       </source>
>    </poolList>
> 
> And just let the caller decide how they want to use this - they may not
> even want to define pools from them immediately - instead they might
> just want to display list of NFS exports to the user. It'd be easier
> than having to make up data for the <name> and <target> elements which
> is really something the client app wants to decide upon.

This is really two suggestions rolled into one:
  (1) just return <source> xml (not whole <pool> xml), and
  (2) instead of returning an array of strings, return a single (xml)
string wrapped with a <poolList> element

Either (1) or (2) could be done independently of the other, and I think
they're both worth considering.  I like the fact that (2) lets us
auto-generate the python binding, but I don't have strong feelings
either way.

I like (1) a lot, but it doesn't really work correctly for logical
storage pools in their current incarnation.  The <source> element for a
logical pool currently consists only of the device paths to the physical
volumes backing the volume group.  In particular, it doesn't specify the
volume group name (which seems to be assumed to be the same as the
libvirt pool name??).  This could be fixed by allowing the <source>
element for an existing volume group to specify (only) the volume group
name (which might be different from the pool name).  In this way,
logical pool discovery can return <source> elements that fully specify
existing pools.  And the client app can decide on pool names and target
paths as you propose.

[Note I'm proposing *extending* logical pool creation, so existing XML
should continue to work.  Specifically I'm proposing we extend <source>
with an optional <name> element which the logical storage backend will
interpret as volume group name.  For back-compatibility, the backend
will default the source name to the pool name when the source name isn't
specified.  The source name is used to instantiate existing volume
groups as well as to name new volume groups (whose <source> must also
specify the backing physical devices).]

Does this sound reasonable?


> There's some emacs rules in the HACKING file which will make sure it does
> correct indentation for you.  BTW, anyone fancy adding VIM equivalents...

Sorry, I'm an emacs guy :-)

[What we *really* need is an emacs mode ("indent-assimilation-mode")
that will figure out the indentation settings for each file from the
code that's already there ... (assuming it's consistent ...).  I suppose
it wouldn't be that hard to at least get c-basic-offset, c-indent-level,
and indent-tabs-mode right.  (I know you can embed emacs directives in
source comments, but that's kind of ugly ...)]

In any case, thanks much for your comments.  I'm finally getting back to
working on this, so I should be able to submit my next take soon.

Thanks,
Dave







More information about the libvir-list mailing list