[lxc-devel] [lxd/master] lxd/instance/qemu: Always render disk

stgraber on Github lxc-bot at linuxcontainers.org
Sun Nov 22 03:50:00 UTC 2020


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 370 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20201121/ebaaef6d/attachment.bin>
-------------- next part --------------
From a422fb7306b1bafb71d5d543de32755b77e8b33b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Sat, 21 Nov 2020 22:49:14 -0500
Subject: [PATCH] lxd/instance/qemu: Always render disk
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #8173

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 lxd/instance/drivers/driver_qemu.go | 29 ++++++++++++-----------------
 1 file changed, 12 insertions(+), 17 deletions(-)

diff --git a/lxd/instance/drivers/driver_qemu.go b/lxd/instance/drivers/driver_qemu.go
index 3b619f4789..7dabdbf371 100644
--- a/lxd/instance/drivers/driver_qemu.go
+++ b/lxd/instance/drivers/driver_qemu.go
@@ -4364,12 +4364,15 @@ func (vm *qemu) RenderFull() (*api.InstanceFull, interface{}, error) {
 
 // RenderState returns just state info about the instance.
 func (vm *qemu) RenderState() (*api.InstanceState, error) {
+	var err error
+
+	status := &api.InstanceState{}
 	statusCode := vm.statusCode()
 	pid, _ := vm.pid()
 
 	if statusCode == api.Running {
 		// Try and get state info from agent.
-		status, err := vm.agentGetState()
+		status, err = vm.agentGetState()
 		if err != nil {
 			if err != errQemuAgentOffline {
 				logger.Warn("Could not get VM state from agent", log.Ctx{"project": vm.Project(), "instance": vm.Name(), "err": err})
@@ -4433,25 +4436,17 @@ func (vm *qemu) RenderState() (*api.InstanceState, error) {
 				}
 			}
 		}
+	}
 
-		status.Pid = int64(pid)
-		status.Status = statusCode.String()
-		status.StatusCode = statusCode
-		status.Disk, err = vm.diskState()
-		if err != nil && err != storageDrivers.ErrNotSupported {
-			logger.Warn("Error getting disk usage", log.Ctx{"project": vm.Project(), "instance": vm.Name(), "err": err})
-		}
-
-		return status, nil
+	status.Pid = int64(pid)
+	status.Status = statusCode.String()
+	status.StatusCode = statusCode
+	status.Disk, err = vm.diskState()
+	if err != nil && err != storageDrivers.ErrNotSupported {
+		logger.Warn("Error getting disk usage", log.Ctx{"project": vm.Project(), "instance": vm.Name(), "err": err})
 	}
 
-	// At least return the Status and StatusCode if we couldn't get any
-	// information for the VM agent.
-	return &api.InstanceState{
-		Pid:        int64(pid),
-		Status:     statusCode.String(),
-		StatusCode: statusCode,
-	}, nil
+	return status, nil
 }
 
 // diskState gets disk usage info.


More information about the lxc-devel mailing list