[libvirt] [PATCH 1/2] vbox: assemble duplicate state conversions

Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com> --- src/vbox/vbox_tmpl.c | 70 +++++++++++++++++----------------------------------- 1 file changed, 22 insertions(+), 48 deletions(-) diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 5e5ea85..10a3775 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -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; -- 1.8.4

VirtualBox has 'saved' state for VMs saved by the hypervisor. However, the state is treated as VIR_DOMAIN_NOSTATE by the vbox driver, resulting that virsh shows 'no state' for saved VMs. The fix treats the state as VIR_DOMAIN_SHUTOFF as same as other domains such as qemu. Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com> --- src/vbox/vbox_tmpl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 10a3775..cf34f5c 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -1923,6 +1923,7 @@ static virDomainState vboxConvertState(enum MachineState state) { case MachineState_Stopping: return VIR_DOMAIN_SHUTDOWN; case MachineState_PoweredOff: + case MachineState_Saved: return VIR_DOMAIN_SHUTOFF; case MachineState_Aborted: return VIR_DOMAIN_CRASHED; -- 1.8.4

On Tue, Oct 15, 2013 at 01:19:42AM +0900, Ryota Ozaki wrote:
VirtualBox has 'saved' state for VMs saved by the hypervisor. However, the state is treated as VIR_DOMAIN_NOSTATE by the vbox driver, resulting that virsh shows 'no state' for saved VMs.
The fix treats the state as VIR_DOMAIN_SHUTOFF as same as other domains such as qemu.
Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com> --- src/vbox/vbox_tmpl.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 10a3775..cf34f5c 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -1923,6 +1923,7 @@ static virDomainState vboxConvertState(enum MachineState state) { case MachineState_Stopping: return VIR_DOMAIN_SHUTDOWN; case MachineState_PoweredOff: + case MachineState_Saved: return VIR_DOMAIN_SHUTOFF; case MachineState_Aborted: return VIR_DOMAIN_CRASHED;
ACK & pushed to GIT. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Tue, Oct 15, 2013 at 01:19:41AM +0900, Ryota Ozaki wrote:
Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com> --- src/vbox/vbox_tmpl.c | 70 +++++++++++++++++----------------------------------- 1 file changed, 22 insertions(+), 48 deletions(-)
ACK, I expanded the commit message & pushed. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Tue, Oct 15, 2013 at 8:04 PM, Daniel P. Berrange <berrange@redhat.com>wrote:
On Tue, Oct 15, 2013 at 01:19:41AM +0900, Ryota Ozaki wrote:
Signed-off-by: Ryota Ozaki <ozaki.ryota@gmail.com> --- src/vbox/vbox_tmpl.c | 70 +++++++++++++++++----------------------------------- 1 file changed, 22 insertions(+), 48 deletions(-)
ACK, I expanded the commit message & pushed.
Thank you for the fix! ozaki-r
Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/:| |: http://libvirt.org -o- http://virt-manager.org:| |: http://autobuild.org -o- http://search.cpan.org/~danberr/:| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc:|
participants (2)
-
Daniel P. Berrange
-
Ryota Ozaki