1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

vbox: merge duplicate state conversions

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>
This commit is contained in:
Ryota Ozaki 2013-10-15 01:19:41 +09:00 committed by Daniel P. Berrange
parent 842f6fd338
commit b98654fafd

View 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;