[libvirt] [PATCH 4/4] logical: Adjust regex for devices
Pavel Hrdina
phrdina at redhat.com
Wed Jan 27 16:54:16 UTC 2016
On Wed, Jan 27, 2016 at 10:05:36AM -0500, John Ferlan wrote:
>
>
> On 01/26/2016 09:55 AM, Pavel Hrdina wrote:
> > On Fri, Jan 22, 2016 at 05:21:06PM -0500, John Ferlan wrote:
> >> From: Joe Harvell <joe.harvell at tekcomms.com>
> >>
> >> Since our 'devices' parsing logic now will use the 'nextents' (or
> >> lvs 'stripes' output) to decide whether or not to parse the field,
> >> use the regex of "(\\S*)" (e.g. zero or more) instead of "(\\S+)"
> >> (1 or more) when grabbing the 'groups[3]' or 'devices' field.
> >>
> >> Signed-off-by: John Ferlan <jferlan at redhat.com>
> >> ---
> >> src/storage/storage_backend_logical.c | 3 ++-
> >> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
> >> index 3010f58..2af3e69 100644
> >> --- a/src/storage/storage_backend_logical.c
> >> +++ b/src/storage/storage_backend_logical.c
> >> @@ -333,7 +333,8 @@ virStorageBackendLogicalFindLVs(virStoragePoolObjPtr pool,
> >> * striped, so "," is not a suitable separator either (rhbz 727474).
> >> */
> >> const char *regexes[] = {
> >> - "^\\s*(\\S+)#(\\S*)#(\\S+)#(\\S+)#([0-9]+)#(\\S+)#([0-9]+)#([0-9]+)#(\\S+)#?\\s*$"
> >> +/* name orig uuid devs stripes segsz vgextsz sz lvattr */
> >> + "^\\s*(\\S+)#(\\S*)#(\\S+)#(\\S*)#([0-9]+)#(\\S+)#([0-9]+)#([0-9]+)#(\\S+)#?\\s*$"
> >> };
> >> int vars[] = {
> >> 9
> >
> > This could be squashed into the previous commit and if you are creating a
> > comment with labels, please use the exact names that lvs uses.
> >
>
> I'll just remove the comment - yes it's shorthand, but "vg_extent_size"
> is a bit long for the "([0-9]+)"...
>
> BTW: I went separately mainly to make it more obvious of the change.
>
> Patch 3 was just dealing with removing the need for the 'segtype' field
> as it was made obsolete by just using the stripes field to fill in the
> 'nextents'.
>
> Patch 4 alters the regex to allow 0 or more, rather than at least 1.
> Although I do understand why combining them is also perfectly
> reasonable. I was trying not to do two things at one time...
>
> However, after some more "investigation" of the environment - I think
> perhaps there's still a couple of loose ends. Keeping the 'segtype'
> field may be necessary/useful... Details follow if interested ;-)
Yes, you're right and I did a bad job during review. The segtype is required
and we should always consider it, there is like 20 segtypes right now and some
of them could also use 'stripes'.
>
> A 'vol-dumpxml' on a "found" thin lv from a thin-pool will provide an
> empty "<source>" and the capacity == allocation; whereas, a
> 'vol-dumpxml' on a snapshot lv will provide the "<source>...<device
> path='/dev/sdX'> with the <extent start='#' end='#'/> where the size of
> the extent of course matches the allocation value when seen with vol-info.
>
> The <source> of a thin lv is a lv thin-pool and there is no extents data
> (e.g. nextents == 0). However, there is "pool_lv" data for a "thin"
> segtype which could then be used for display in the
> "<source>...<name>". There's still no way to "create" a thin pool from
> <name>, but finding/displaying one is still possible... The details of
> which "/dev/sdX" is used is hidden by the lv mgr thin_pool code.
>
> We don't display the thin_pool because by itself since it cannot be used
> as a volume, but that pool contains the information about the real
> sizes, so it's useful. Right now there's no way to get that useful
> information so going with the "size" (e.g. allocation) value would have
> to suffice. Future patches can perhaps adjust this.
>
> John
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
More information about the libvir-list
mailing list