[libvirt] [PATCH] logical: Clarify pieces of lvs regex
Andrea Bolognani
abologna at redhat.com
Thu Feb 4 08:18:36 UTC 2016
On Wed, 2016-02-03 at 16:49 -0500, John Ferlan wrote:
> Rather than have a unwieldy regex string - split it up into its components
> each having it's own #define and then combine in a different #define
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> src/storage/storage_backend_logical.c | 32 ++++++++++++++++++++++++++++++--
> 1 file changed, 30 insertions(+), 2 deletions(-)
>
> diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
> index eb22fd0..ba26223 100644
> --- a/src/storage/storage_backend_logical.c
> +++ b/src/storage/storage_backend_logical.c
> @@ -312,6 +312,34 @@ virStorageBackendLogicalMakeVol(char **const groups,
> return ret;
> }
>
> +#define VIR_STORAGE_VOL_LOGICAL_PREFIX_REGEX "^\\s*"
> +#define VIR_STORAGE_VOL_LOGICAL_LV_NAME_REGEX "(\\S+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_ORIGIN_REGEX "(\\S*)#"
> +#define VIR_STORAGE_VOL_LOGICAL_UUID_REGEX "(\\S+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_DEVICES_REGEX "(\\S+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_SEGTYPE_REGEX "(\\S+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_STRIPES_REGEX "([0-9]+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_SEG_SIZE_REGEX "(\\S+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_VG_EXTENT_SIZE_REGEX "([0-9]+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_SIZE_REGEX "([0-9]+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_LV_ATTR_REGEX "(\\S+)#"
> +#define VIR_STORAGE_VOL_LOGICAL_SUFFIX_REGEX "?\\s*$"
> +
> +#define VIR_STORAGE_VOL_LOGICAL_REGEX_COUNT 10
> +#define VIR_STORAGE_VOL_LOGICAL_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_PREFIX_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_LV_NAME_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_ORIGIN_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_UUID_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_DEVICES_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_SEGTYPE_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_STRIPES_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_SEG_SIZE_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_VG_EXTENT_SIZE_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_SIZE_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_LV_ATTR_REGEX \
> + VIR_STORAGE_VOL_LOGICAL_SUFFIX_REGEX
> +
> static int
> virStorageBackendLogicalFindLVs(virStoragePoolObjPtr pool,
> virStorageVolDefPtr vol)
> @@ -342,10 +370,10 @@ virStorageBackendLogicalFindLVs(virStoragePoolObjPtr pool,
> * striped, so "," is not a suitable separator either (rhbz 727474).
> */
> const char *regexes[] = {
> - "^\\s*(\\S+)#(\\S*)#(\\S+)#(\\S+)#(\\S+)#([0-9]+)#(\\S+)#([0-9]+)#([0-9]+)#(\\S+)#?\\s*$"
> + VIR_STORAGE_VOL_LOGICAL_REGEX
> };
> int vars[] = {
> - 10
> + VIR_STORAGE_VOL_LOGICAL_REGEX_COUNT
> };
> int ret = -1;
> virCommandPtr cmd;
Clever way to label the various chunks, I love it. Crucially, the original
regex and the one obtained by putting all the bits together match. (See
what I did there?)
ACK.
--
Andrea Bolognani
Software Engineer - Virtualization Team
More information about the libvir-list
mailing list