]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vbox: merge duplicate state conversions
authorRyota Ozaki <ozaki.ryota@gmail.com>
Mon, 14 Oct 2013 16:19:41 +0000 (01:19 +0900)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 15 Oct 2013 11:02:57 +0000 (12:02 +0100)
The code for converting between virtualbox API states
and libvirt states was duplicated in two places. Pull
the code out into a shared helper method.

Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com>
src/vbox/vbox_tmpl.c

index 5e5ea85456df57b1e62d6e1fd6b64d27c5c20532..10a3775e333eb5f996e23d7eceb231004544932f 100644 (file)
@@ -1912,6 +1912,26 @@ cleanup:
     return ret;
 }
 
+static virDomainState vboxConvertState(enum MachineState state) {
+    switch (state) {
+        case MachineState_Running:
+            return VIR_DOMAIN_RUNNING;
+        case MachineState_Stuck:
+            return VIR_DOMAIN_BLOCKED;
+        case MachineState_Paused:
+            return VIR_DOMAIN_PAUSED;
+        case MachineState_Stopping:
+            return VIR_DOMAIN_SHUTDOWN;
+        case MachineState_PoweredOff:
+            return VIR_DOMAIN_SHUTOFF;
+        case MachineState_Aborted:
+            return VIR_DOMAIN_CRASHED;
+        case MachineState_Null:
+        default:
+            return VIR_DOMAIN_NOSTATE;
+    }
+}
+
 static int vboxDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info) {
     VBOX_OBJECT_CHECK(dom->conn, int, -1);
     vboxArray machines = VBOX_ARRAY_INITIALIZER;
@@ -1972,30 +1992,7 @@ static int vboxDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info) {
                 info->nrVirtCpu = CPUCount;
                 info->memory = memorySize * 1024;
                 info->maxMem = maxMemorySize * 1024;
-                switch (state) {
-                    case MachineState_Running:
-                        info->state = VIR_DOMAIN_RUNNING;
-                        break;
-                    case MachineState_Stuck:
-                        info->state = VIR_DOMAIN_BLOCKED;
-                        break;
-                    case MachineState_Paused:
-                        info->state = VIR_DOMAIN_PAUSED;
-                        break;
-                    case MachineState_Stopping:
-                        info->state = VIR_DOMAIN_SHUTDOWN;
-                        break;
-                    case MachineState_PoweredOff:
-                        info->state = VIR_DOMAIN_SHUTOFF;
-                        break;
-                    case MachineState_Aborted:
-                        info->state = VIR_DOMAIN_CRASHED;
-                        break;
-                    case MachineState_Null:
-                    default:
-                        info->state = VIR_DOMAIN_NOSTATE;
-                        break;
-                }
+                info->state = vboxConvertState(state);
 
                 ret = 0;
             }
@@ -2038,30 +2035,7 @@ vboxDomainGetState(virDomainPtr dom,
 
     machine->vtbl->GetState(machine, &mstate);
 
-    switch (mstate) {
-    case MachineState_Running:
-        *state = VIR_DOMAIN_RUNNING;
-        break;
-    case MachineState_Stuck:
-        *state = VIR_DOMAIN_BLOCKED;
-        break;
-    case MachineState_Paused:
-        *state = VIR_DOMAIN_PAUSED;
-        break;
-    case MachineState_Stopping:
-        *state = VIR_DOMAIN_SHUTDOWN;
-        break;
-    case MachineState_PoweredOff:
-        *state = VIR_DOMAIN_SHUTOFF;
-        break;
-    case MachineState_Aborted:
-        *state = VIR_DOMAIN_CRASHED;
-        break;
-    case MachineState_Null:
-    default:
-        *state = VIR_DOMAIN_NOSTATE;
-        break;
-    }
+    *state = vboxConvertState(mstate);
 
     if (reason)
         *reason = 0;