[libvirt] [PATCH 12/12] virsh-volume.c: Switch to C99 initialization of vshCmdOptDef
Guannan Ren
gren at redhat.com
Thu Jan 17 11:01:46 UTC 2013
On 01/14/2013 11:59 PM, Michal Privoznik wrote:
> ---
> tools/virsh-volume.c | 368 +++++++++++++++++++++++++++++++++++++++------------
> 1 file changed, 286 insertions(+), 82 deletions(-)
>
> diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c
> index a57fc28..e17d946 100644
> --- a/tools/virsh-volume.c
> +++ b/tools/virsh-volume.c
> @@ -112,21 +112,47 @@ static const vshCmdInfo info_vol_create_as[] = {
> };
>
> static const vshCmdOptDef opts_vol_create_as[] = {
> - {"pool", VSH_OT_DATA, VSH_OFLAG_REQ, N_("pool name")},
> - {"name", VSH_OT_DATA, VSH_OFLAG_REQ, N_("name of the volume")},
> - {"capacity", VSH_OT_DATA, VSH_OFLAG_REQ,
> - N_("size of the vol, as scaled integer (default bytes)")},
> - {"allocation", VSH_OT_STRING, 0,
> - N_("initial allocation size, as scaled integer (default bytes)")},
> - {"format", VSH_OT_STRING, 0,
> - N_("file format type raw,bochs,qcow,qcow2,qed,vmdk")},
> - {"backing-vol", VSH_OT_STRING, 0,
> - N_("the backing volume if taking a snapshot")},
> - {"backing-vol-format", VSH_OT_STRING, 0,
> - N_("format of backing volume if taking a snapshot")},
> - {"prealloc-metadata", VSH_OT_BOOL, 0, N_("preallocate metadata (for qcow2 "
> - "instead of full allocation)")},
> - {NULL, 0, 0, NULL}
> + {.name = "pool",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("pool name")
> + },
> + {.name = "name",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("name of the volume")
> + },
> + {.name = "capacity",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("size of the vol, as scaled integer (default bytes)")
> + },
> + {.name = "allocation",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("initial allocation size, as scaled integer (default bytes)")
> + },
> + {.name = "format",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("file format type raw,bochs,qcow,qcow2,qed,vmdk")
> + },
> + {.name = "backing-vol",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("the backing volume if taking a snapshot")
> + },
> + {.name = "backing-vol-format",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("format of backing volume if taking a snapshot")
> + },
> + {.name = "prealloc-metadata",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("preallocate metadata (for qcow2 instead of full allocation)")
> + },
> + {.name = NULL}
> };
>
> static int
> @@ -290,11 +316,22 @@ static const vshCmdInfo info_vol_create[] = {
> };
>
> static const vshCmdOptDef opts_vol_create[] = {
> - {"pool", VSH_OT_DATA, VSH_OFLAG_REQ, N_("pool name")},
> - {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("file containing an XML vol description")},
> - {"prealloc-metadata", VSH_OT_BOOL, 0, N_("preallocate metadata (for qcow2 "
> - "instead of full allocation)")},
> - {NULL, 0, 0, NULL}
> + {.name = "pool",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("pool name")
> + },
> + {.name = "file",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("file containing an XML vol description")
> + },
> + {.name = "prealloc-metadata",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("preallocate metadata (for qcow2 instead of full allocation)")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -349,13 +386,32 @@ static const vshCmdInfo info_vol_create_from[] = {
> };
>
> static const vshCmdOptDef opts_vol_create_from[] = {
> - {"pool", VSH_OT_DATA, VSH_OFLAG_REQ, N_("pool name or uuid")},
> - {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("file containing an XML vol description")},
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("input vol name or key")},
> - {"inputpool", VSH_OT_STRING, 0, N_("pool name or uuid of the input volume's pool")},
> - {"prealloc-metadata", VSH_OT_BOOL, 0, N_("preallocate metadata (for qcow2 "
> - "instead of full allocation)")},
> - {NULL, 0, 0, NULL}
> + {.name = "pool",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("pool name or uuid")
> + },
> + {.name = "file",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("file containing an XML vol description")
> + },
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("input vol name or key")
> + },
> + {.name = "inputpool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid of the input volume's pool")
> + },
> + {.name = "prealloc-metadata",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("preallocate metadata (for qcow2 instead of full allocation)")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -446,12 +502,27 @@ static const vshCmdInfo info_vol_clone[] = {
> };
>
> static const vshCmdOptDef opts_vol_clone[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("orig vol name or key")},
> - {"newname", VSH_OT_DATA, VSH_OFLAG_REQ, N_("clone name")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {"prealloc-metadata", VSH_OT_BOOL, 0, N_("preallocate metadata (for qcow2 "
> - "instead of full allocation)")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("orig vol name or key")
> + },
> + {.name = "newname",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("clone name")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = "prealloc-metadata",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("preallocate metadata (for qcow2 instead of full allocation)")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -525,12 +596,32 @@ static const vshCmdInfo info_vol_upload[] = {
> };
>
> static const vshCmdOptDef opts_vol_upload[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("vol name, key or path")},
> - {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("file")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {"offset", VSH_OT_INT, 0, N_("volume offset to upload to") },
> - {"length", VSH_OT_INT, 0, N_("amount of data to upload") },
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("vol name, key or path")
> + },
> + {.name = "file",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("file")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = "offset",
> + .type = VSH_OT_INT,
> + .flags = 0,
> + .help = N_("volume offset to upload to")
> + },
> + {.name = "length",
> + .type = VSH_OT_INT,
> + .flags = 0,
> + .help = N_("amount of data to upload")
> + },
> + {.name = NULL}
> };
>
> static int
> @@ -620,12 +711,32 @@ static const vshCmdInfo info_vol_download[] = {
> };
>
> static const vshCmdOptDef opts_vol_download[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("vol name, key or path")},
> - {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("file")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {"offset", VSH_OT_INT, 0, N_("volume offset to download from") },
> - {"length", VSH_OT_INT, 0, N_("amount of data to download") },
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("vol name, key or path")
> + },
> + {.name = "file",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("file")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = "offset",
> + .type = VSH_OT_INT,
> + .flags = 0,
> + .help = N_("volume offset to download from")
> + },
> + {.name = "length",
> + .type = VSH_OT_INT,
> + .flags = 0,
> + .help = N_("amount of data to download")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -713,9 +824,17 @@ static const vshCmdInfo info_vol_delete[] = {
> };
>
> static const vshCmdOptDef opts_vol_delete[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("vol name, key or path")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("vol name, key or path")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -750,10 +869,22 @@ static const vshCmdInfo info_vol_wipe[] = {
> };
>
> static const vshCmdOptDef opts_vol_wipe[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("vol name, key or path")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {"algorithm", VSH_OT_STRING, 0, N_("perform selected wiping algorithm")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("vol name, key or path")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = "algorithm",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("perform selected wiping algorithm")
> + },
> + {.name = NULL}
> };
>
> VIR_ENUM_DECL(virStorageVolWipeAlgorithm)
> @@ -814,9 +945,17 @@ static const vshCmdInfo info_vol_info[] = {
> };
>
> static const vshCmdOptDef opts_vol_info[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("vol name, key or path")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("vol name, key or path")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -878,16 +1017,37 @@ static const vshCmdInfo info_vol_resize[] = {
> };
>
> static const vshCmdOptDef opts_vol_resize[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("vol name, key or path")},
> - {"capacity", VSH_OT_DATA, VSH_OFLAG_REQ,
> - N_("new capacity for the vol, as scaled integer (default bytes)")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {"allocate", VSH_OT_BOOL, 0,
> - N_("allocate the new capacity, rather than leaving it sparse")},
> - {"delta", VSH_OT_BOOL, 0,
> - N_("use capacity as a delta to current size, rather than the new size")},
> - {"shrink", VSH_OT_BOOL, 0, N_("allow the resize to shrink the volume")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("vol name, key or path")
> + },
> + {.name = "capacity",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("new capacity for the vol, as scaled integer (default bytes)")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = "allocate",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("allocate the new capacity, rather than leaving it sparse")
> + },
> + {.name = "delta",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("use capacity as a delta to current size, rather than the new size")
> + },
> + {.name = "shrink",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("allow the resize to shrink the volume")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -960,9 +1120,17 @@ static const vshCmdInfo info_vol_dumpxml[] = {
> };
>
> static const vshCmdOptDef opts_vol_dumpxml[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("vol name, key or path")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("vol name, key or path")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -1122,9 +1290,17 @@ static const vshCmdInfo info_vol_list[] = {
> };
>
> static const vshCmdOptDef opts_vol_list[] = {
> - {"pool", VSH_OT_DATA, VSH_OFLAG_REQ, N_("pool name or uuid")},
> - {"details", VSH_OT_BOOL, 0, N_("display extended details for volumes")},
> - {NULL, 0, 0, NULL}
> + {.name = "pool",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("pool name or uuid")
> + },
> + {.name = "details",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("display extended details for volumes")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -1391,8 +1567,12 @@ static const vshCmdInfo info_vol_name[] = {
> };
>
> static const vshCmdOptDef opts_vol_name[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("volume key or path")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("volume key or path")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -1419,9 +1599,17 @@ static const vshCmdInfo info_vol_pool[] = {
> };
>
> static const vshCmdOptDef opts_vol_pool[] = {
> - {"uuid", VSH_OT_BOOL, 0, N_("return the pool uuid rather than pool name")},
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("volume key or path")},
> - {NULL, 0, 0, NULL}
> + {.name = "uuid",
> + .type = VSH_OT_BOOL,
> + .flags = 0,
> + .help = N_("return the pool uuid rather than pool name")
> + },
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("volume key or path")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -1471,9 +1659,17 @@ static const vshCmdInfo info_vol_key[] = {
> };
>
> static const vshCmdOptDef opts_vol_key[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("volume name or path")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("volume name or path")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = NULL}
> };
>
> static bool
> @@ -1499,9 +1695,17 @@ static const vshCmdInfo info_vol_path[] = {
> };
>
> static const vshCmdOptDef opts_vol_path[] = {
> - {"vol", VSH_OT_DATA, VSH_OFLAG_REQ, N_("volume name or key")},
> - {"pool", VSH_OT_STRING, 0, N_("pool name or uuid")},
> - {NULL, 0, 0, NULL}
> + {.name = "vol",
> + .type = VSH_OT_DATA,
> + .flags = VSH_OFLAG_REQ,
> + .help = N_("volume name or key")
> + },
> + {.name = "pool",
> + .type = VSH_OT_STRING,
> + .flags = 0,
> + .help = N_("pool name or uuid")
> + },
> + {.name = NULL}
> };
>
> static bool
ACK
More information about the libvir-list
mailing list