[libvirt] [PATCH] PHYP: Adding reboot domain function

Eduardo Otubo otubo at linux.vnet.ibm.com
Tue Apr 19 15:34:08 UTC 2011


Adding reboot <domain> function for pHyp driver.
---
 src/phyp/phyp_driver.c |   35 ++++++++++++++++++++++++++++++++++-
 1 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index bb0e0ac..228751d 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -3384,6 +3384,39 @@ cleanup:
 }
 
 static int
+phypDomainReboot(virDomainPtr dom)
+{
+    int result = -1;
+    ConnectionData *connection_data = dom->conn->networkPrivateData;
+    virConnectPtr conn = dom->conn;
+    LIBSSH2_SESSION *session = connection_data->session;
+    phyp_driverPtr phyp_driver = conn->privateData;
+    int system_type = phyp_driver->system_type;
+    char *managed_system = phyp_driver->managed_system;
+    int exit_status = 0;
+    char *ret = NULL;
+    virBuffer buf = VIR_BUFFER_INITIALIZER;
+
+    virBufferAddLit(&buf, "chsysstate");
+    if (system_type == HMC)
+        virBufferVSprintf(&buf, " -m %s", managed_system);
+    virBufferVSprintf(&buf,
+                      " -r lpar -o shutdown --id %d --immed --restart",
+                      dom->id);
+    ret = phypExecBuffer(session, &buf, &exit_status, dom->conn, false);
+
+    if (exit_status < 0)
+        goto cleanup;
+
+    result = 0;
+
+  cleanup:
+    VIR_FREE(ret);
+
+    return result;
+}
+
+static int
 phypDomainShutdown(virDomainPtr dom)
 {
     int result = -1;
@@ -3707,7 +3740,7 @@ static virDriver phypDriver = {
     NULL,                       /* domainSuspend */
     phypDomainResume,           /* domainResume */
     phypDomainShutdown,         /* domainShutdown */
-    NULL,                       /* domainReboot */
+    phypDomainReboot,           /* domainReboot */
     phypDomainDestroy,          /* domainDestroy */
     NULL,                       /* domainGetOSType */
     NULL,                       /* domainGetMaxMemory */
-- 
1.7.1




More information about the libvir-list mailing list