[libvirt] [PATCH 2/3] virsh: add snapshot-create-as command

Daniel Veillard veillard at redhat.com
Thu Jun 16 08:00:11 UTC 2011


On Wed, Jun 15, 2011 at 04:26:25PM -0600, Eric Blake wrote:
> Producing an xml file just for name and description fields is
> overkill; this makes life easier from virsh.
> 
> * tools/virsh.c (cmdSnapshotCreateAs): New command.
> (snapshotCmds): Install it.
> * tools/virsh.pod: Document it.
> ---
>  tools/virsh.c   |  102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  tools/virsh.pod |    8 ++++-
>  2 files changed, 109 insertions(+), 1 deletions(-)
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 6b5f3d9..3a59acd 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -11042,6 +11042,106 @@ cleanup:
>  }
> 
>  /*
> + * "snapshot-create-as" command
> + */
> +static const vshCmdInfo info_snapshot_create_as[] = {
> +    {"help", N_("Create a snapshot from a set of args")},
> +    {"desc", N_("Create a snapshot (disk and RAM) from arguments")},
> +    {NULL, NULL}
> +};
> +
> +static const vshCmdOptDef opts_snapshot_create_as[] = {
> +    {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")},
> +    {"name", VSH_OT_DATA, 0, N_("name of snapshot")},
> +    {"description", VSH_OT_DATA, 0, N_("description of snapshot")},
> +    {NULL, 0, 0, NULL}
> +};
> +
> +static bool
> +cmdSnapshotCreateAs(vshControl *ctl, const vshCmd *cmd)
> +{
> +    virDomainPtr dom = NULL;
> +    bool ret = false;
> +    char *buffer = NULL;
> +    virDomainSnapshotPtr snapshot = NULL;
> +    xmlDocPtr xml = NULL;
> +    xmlXPathContextPtr ctxt = NULL;
> +    char *doc = NULL;
> +    const char *name = NULL;
> +    const char *desc = NULL;
> +    char *parsed_name = NULL;
> +    virBuffer buf = VIR_BUFFER_INITIALIZER;
> +
> +    if (!vshConnectionUsability(ctl, ctl->conn))
> +        goto cleanup;
> +
> +    dom = vshCommandOptDomain(ctl, cmd, NULL);
> +    if (dom == NULL)
> +        goto cleanup;
> +
> +    if (vshCommandOptString(cmd, "name", &name) < 0 ||
> +        vshCommandOptString(cmd, "description", &desc) < 0) {
> +        vshError(ctl, _("argument must not be argument"));

  ??? if that's right that's a very cryptic one :-)

> +        goto cleanup;
> +    }
> +
> +    virBufferAddLit(&buf, "<domainsnapshot>\n");
> +    if (name)
> +        virBufferAsprintf(&buf, "  <name>%s</name>\n", name);
> +    if (desc)
> +        virBufferAsprintf(&buf, "  <description>%s</description>\n", desc);
> +    virBufferAddLit(&buf, "</domainsnapshot>\n");

ACK with this fixed :-)

  Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list