Re: [PATCH 3/4] Wire up QEMU agent to reboot/shutdown APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/05/2011 11:31 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange@xxxxxxxxxx>

This makes use of the QEMU guest agent to implement the
virDomainShutdownFlags and virDomainReboot APIs. With
no flags specified, it will prefer to use the agent, but
fallback to ACPI. Explicit choice can be made by using
a suitable flag

* src/qemu/qemu_driver.c: Wire up use of agent

For backport purposes, should we split this into two patches? 1. wire up the agent with no user control, 2. wire up virDomainShutdownFlags for additional control over the agent. Then patch 1 can be pulled across backports to platforms that cannot rebase due to API reasons, but want to try out the agent (I'm thinking specifically of F16).

@@ -1552,42 +1584,67 @@ static int qemuDomainReboot(virDomainPtr dom, unsigned int flags) {
          goto cleanup;
      }

-#if HAVE_YAJL
      priv = vm->privateData;

-    if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_MONITOR_JSON)) {
-        if (!qemuCapsGet(priv->qemuCaps, QEMU_CAPS_NO_SHUTDOWN)) {
+    if ((flags&  VIR_DOMAIN_SHUTDOWN_GUEST_AGENT) ||

Hmm, since the use of the agent requires JSON, and since JSON requires compilation with HAVE_YAJL, are we introducing problems here for compilation on a system without yajl?


+    if (useAgent) {
+        qemuDomainObjEnterAgent(driver, vm);
+        ret = qemuAgentShutdown(priv->agent, QEMU_AGENT_SHUTDOWN_REBOOT);
+        qemuDomainObjExitAgent(driver, vm);
+    } else {
          qemuDomainObjEnterMonitor(driver, vm);
          ret = qemuMonitorSystemPowerdown(priv->mon);
          qemuDomainObjExitMonitor(driver, vm);

          if (ret == 0)
              qemuDomainSetFakeReboot(driver, vm, true);
-
-    endjob:
-        if (qemuDomainObjEndJob(driver, vm) == 0)
-            vm = NULL;
-    } else {
-#endif

In particular, the qemuMonitorSystemPowerdown call used to be protected by HAVE_YAJL and now it is not.

--
Eric Blake   eblake@xxxxxxxxxx    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]