[lxc-devel] [lxd/master] lxd/instance/drivers: Add custom volumes to disk state
monstermunchkin on Github
lxc-bot at linuxcontainers.org
Tue Mar 24 16:31:39 UTC 2020
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 355 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20200324/d0b51996/attachment.bin>
-------------- next part --------------
From cb00c4b41a2c1434c8f08ed4ffee28a23b30f790 Mon Sep 17 00:00:00 2001
From: Thomas Hipp <thomas.hipp at canonical.com>
Date: Mon, 23 Mar 2020 21:18:36 +0100
Subject: [PATCH] lxd/instance/drivers: Add custom volumes to disk state
Signed-off-by: Thomas Hipp <thomas.hipp at canonical.com>
---
lxd/instance/drivers/driver_lxc.go | 40 +++++++++++++++++++-----------
1 file changed, 26 insertions(+), 14 deletions(-)
diff --git a/lxd/instance/drivers/driver_lxc.go b/lxd/instance/drivers/driver_lxc.go
index e1dbf32119..424c199c8e 100644
--- a/lxd/instance/drivers/driver_lxc.go
+++ b/lxd/instance/drivers/driver_lxc.go
@@ -5678,24 +5678,36 @@ func (c *lxc) diskState() map[string]api.InstanceStateDisk {
continue
}
- if dev.Config["path"] != "/" {
- continue
- }
-
var usage int64
- pool, err := storagePools.GetPoolByInstance(c.state, c)
- if err != nil {
- logger.Error("Error loading storage pool", log.Ctx{"project": c.Project(), "instance": c.Name(), "err": err})
- continue
- }
+ if dev.Config["path"] == "/" {
+ pool, err := storagePools.GetPoolByInstance(c.state, c)
+ if err != nil {
+ logger.Error("Error loading storage pool", log.Ctx{"project": c.Project(), "instance": c.Name(), "err": err})
+ continue
+ }
- usage, err = pool.GetInstanceUsage(c)
- if err != nil {
- if err != storageDrivers.ErrNotSupported {
- logger.Error("Error getting disk usage", log.Ctx{"project": c.Project(), "instance": c.Name(), "err": err})
+ usage, err = pool.GetInstanceUsage(c)
+ if err != nil {
+ if err != storageDrivers.ErrNotSupported {
+ logger.Error("Error getting disk usage", log.Ctx{"project": c.Project(), "instance": c.Name(), "err": err})
+ }
+ continue
+ }
+ } else {
+ pool, err := storagePools.GetPoolByName(c.state, dev.Config["pool"])
+ if err != nil {
+ logger.Error("Error loading storage pool", log.Ctx{"project": c.Project(), "poolName": dev.Config["pool"], "err": err})
+ continue
+ }
+
+ usage, err = pool.GetCustomVolumeUsage(c.Project(), dev.Config["source"])
+ if err != nil {
+ if err != storageDrivers.ErrNotSupported {
+ logger.Error("Error getting volume usage", log.Ctx{"project": c.Project(), "volume": dev.Config["source"], "err": err})
+ }
+ continue
}
- continue
}
disk[dev.Name] = api.InstanceStateDisk{Usage: usage}
More information about the lxc-devel
mailing list