From: Peter Krempa Date: Mon, 11 Feb 2013 13:00:36 +0000 (+0100) Subject: virsh-snapshot: Refactor some details in virsh snapshot-create-as X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=02b0d3f3ac486153f25080ae8e60f20329c92c92;p=libvirt.git virsh-snapshot: Refactor some details in virsh snapshot-create-as This patch simplifies the creation of XML, some error paths and adds correct approach to check for virBuffer errors. --- diff --git a/tools/virsh-snapshot.c b/tools/virsh-snapshot.c index 66776e2712..fe1cee9aec 100644 --- a/tools/virsh-snapshot.c +++ b/tools/virsh-snapshot.c @@ -427,19 +427,16 @@ cmdSnapshotCreateAs(vshControl *ctl, const vshCmd *cmd) if (vshCommandOptBool(cmd, "live")) flags |= VIR_DOMAIN_SNAPSHOT_CREATE_LIVE; - dom = vshCommandOptDomain(ctl, cmd, NULL); - if (dom == NULL) - goto cleanup; + if (!(dom = vshCommandOptDomain(ctl, cmd, NULL))) + return false; if (vshCommandOptStringReq(ctl, cmd, "name", &name) < 0 || vshCommandOptStringReq(ctl, cmd, "description", &desc) < 0) goto cleanup; virBufferAddLit(&buf, "\n"); - if (name) - virBufferEscapeString(&buf, " %s\n", name); - if (desc) - virBufferEscapeString(&buf, " %s\n", desc); + virBufferEscapeString(&buf, " %s\n", name); + virBufferEscapeString(&buf, " %s\n", desc); if (vshCommandOptStringReq(ctl, cmd, "memspec", &memspec) < 0) goto cleanup; @@ -457,12 +454,13 @@ cmdSnapshotCreateAs(vshControl *ctl, const vshCmd *cmd) } virBufferAddLit(&buf, "\n"); - buffer = virBufferContentAndReset(&buf); - if (buffer == NULL) { + if (virBufferError(&buf)) { vshError(ctl, "%s", _("Out of memory")); goto cleanup; } + buffer = virBufferContentAndReset(&buf); + if (vshCommandOptBool(cmd, "print-xml")) { vshPrint(ctl, "%s\n", buffer); ret = true; @@ -474,8 +472,7 @@ cmdSnapshotCreateAs(vshControl *ctl, const vshCmd *cmd) cleanup: virBufferFreeAndReset(&buf); VIR_FREE(buffer); - if (dom) - virDomainFree(dom); + virDomainFree(dom); return ret; }