
On 02/03/2012 02:44 PM, Michal Privoznik wrote:
On 03.02.2012 20:34, Laine Stump wrote:
This allows virsh to use the new VIR_DOMAIN_DESTROY_GRACEUL flag for virDomainDestroyFlags. --- Okay, how about this one :-)
tools/virsh.c | 9 ++++++++- tools/virsh.pod | 6 +++++- 2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/tools/virsh.c b/tools/virsh.c index 42985a9..6a151e6 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -4264,6 +4264,7 @@ static const vshCmdInfo info_destroy[] = {
static const vshCmdOptDef opts_destroy[] = { {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, + {"graceful", VSH_OT_BOOL, VSH_OFLAG_NONE, N_("needs rawio capability")}, {NULL, 0, 0, NULL} };
@@ -4273,6 +4274,7 @@ cmdDestroy(vshControl *ctl, const vshCmd *cmd) virDomainPtr dom; bool ret = true; const char *name; + int result; I tend to define unsigned flags = 0; here, even when they'll be used only for one flag right now, but it will simplify patches adding a new one.
if (!vshConnectionUsability(ctl, ctl->conn)) return false; @@ -4280,7 +4282,12 @@ cmdDestroy(vshControl *ctl, const vshCmd *cmd) if (!(dom = vshCommandOptDomain(ctl, cmd,&name))) return false;
- if (virDomainDestroy(dom) == 0) { + if (vshCommandOptBool(cmd, "graceful")) + result = virDomainDestroyFlags(dom, VIR_DOMAIN_DESTROY_GRACEFUL); + else + result = virDomainDestroy(dom); + + if (result == 0) { So this chunk will look like:
if (vshCommandOptBool(cmd, "graceful")) flags |= VIR_DOMAIN_DESTROY_GRACEFUL;
if (flags) result = virDomainDestroyFlags(dom, flags); else result = virDomainDestroy(dom);
if (result == 0) {
But this is not a show stopper for me.
Yeah, I agree, especially since we're likely to add another flag to virDomainDestroyFlags soon. I switched it back to having a flags variable, made sure it still worked, and pushed. Thanks!