The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/6398

This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.

=== Description (from pull-request) ===

From 2f09cb029f8dfce5bd45325ab3b9e549dd2aadc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Tue, 5 Nov 2019 00:46:40 -0500
Subject: [PATCH 1/2] lxd/container: Fix apply_quota
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 doc/containers.md   | 2 +-
 lxd/container.go    | 4 ++--
 lxd/device/disk.go  | 8 ++++----
 shared/container.go | 4 ++++
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/doc/containers.md b/doc/containers.md
index e6d3d4081b..88a095a67e 100644
--- a/doc/containers.md
+++ b/doc/containers.md
@@ -93,7 +93,6 @@ The following volatile keys are currently internally used by 
LXD:
 
 Key                                         | Type      | Default       | 
Description
 :--                                         | :---      | :------       | 
:----------
-volatile.apply\_quota                       | string    | -             | Disk 
quota to be applied on next container start
 volatile.apply\_template                    | string    | -             | The 
name of a template hook which should be triggered upon next startup
 volatile.base\_image                        | string    | -             | The 
hash of the image the container was created from, if any.
 volatile.idmap.base                         | integer   | -             | The 
first id in the container's primary idmap range
@@ -101,6 +100,7 @@ volatile.idmap.current                      | string    | - 
            | The id
 volatile.idmap.next                         | string    | -             | The 
idmap to use next time the container starts
 volatile.last\_state.idmap                  | string    | -             | 
Serialized container uid/gid map
 volatile.last\_state.power                  | string    | -             | 
Container state as of last host shutdown
+volatile.\<name\>.apply\_quota              | string    | -             | Disk 
quota to be applied on next container start
 volatile.\<name\>.host\_name                | string    | -             | 
Network device name on the host
 volatile.\<name\>.hwaddr                    | string    | -             | 
Network device MAC address (when no hwaddr property is set on the device itself)
 volatile.\<name\>.last\_state.created       | string    | -             | 
Whether or not the network device physical device was created ("true" or 
"false")
diff --git a/lxd/container.go b/lxd/container.go
index 8f52cc1a8f..cb9b5976fc 100644
--- a/lxd/container.go
+++ b/lxd/container.go
@@ -977,7 +977,7 @@ func containerCreateInternal(s *state.State, args 
db.InstanceArgs) (container, e
 
 func containerConfigureInternal(c Instance) error {
        // Find the root device
-       _, rootDiskDevice, err := 
shared.GetRootDiskDevice(c.ExpandedDevices().CloneNative())
+       rootDiskDeviceKey, rootDiskDevice, err := 
shared.GetRootDiskDevice(c.ExpandedDevices().CloneNative())
        if err != nil {
                return err
        }
@@ -992,7 +992,7 @@ func containerConfigureInternal(c Instance) error {
        if rootDiskDevice["size"] != "" {
                storageTypeName := storage.GetStorageTypeName()
                if (storageTypeName == "lvm" || storageTypeName == "ceph") && 
c.IsRunning() {
-                       err = 
c.VolatileSet(map[string]string{"volatile.apply_quota": rootDiskDevice["size"]})
+                       err = 
c.VolatileSet(map[string]string{fmt.Sprintf("volatile.%s.apply_quota", 
rootDiskDeviceKey): rootDiskDevice["size"]})
                        if err != nil {
                                return err
                        }
diff --git a/lxd/device/disk.go b/lxd/device/disk.go
index 853598006b..fe1db520bd 100644
--- a/lxd/device/disk.go
+++ b/lxd/device/disk.go
@@ -225,14 +225,14 @@ func (d *disk) Start() (*RunConfig, error) {
                v := d.volatileGet()
 
                // Handle previous requests for setting new quotas.
-               if v["volatile.apply_quota"] != "" {
-                       applied, err := d.applyQuota(v["volatile.apply_quota"])
+               if v["apply_quota"] != "" {
+                       applied, err := d.applyQuota(v["apply_quota"])
                        if err != nil || !applied {
                                return nil, err
                        }
 
                        // Remove volatile apply_quota key if successful.
-                       err = 
d.volatileSet(map[string]string{"volatile.apply_quota": ""})
+                       err = d.volatileSet(map[string]string{"apply_quota": 
""})
                        if err != nil {
                                return nil, err
                        }
@@ -376,7 +376,7 @@ func (d *disk) Update(oldDevices deviceConfig.Devices, 
isRunning bool) error {
 
                        if !applied {
                                // Save volatile apply_quota key for next boot 
if cannot apply now.
-                               err = 
d.volatileSet(map[string]string{"volatile.apply_quota": newRootDiskDeviceSize})
+                               err = 
d.volatileSet(map[string]string{"apply_quota": newRootDiskDeviceSize})
                                if err != nil {
                                        return err
                                }
diff --git a/shared/container.go b/shared/container.go
index c67f52940f..869c6c1fc5 100644
--- a/shared/container.go
+++ b/shared/container.go
@@ -387,6 +387,10 @@ func ConfigKeyChecker(key string) (func(value string) 
error, error) {
                if strings.HasSuffix(key, ".spoofcheck") {
                        return IsAny, nil
                }
+
+               if strings.HasSuffix(key, ".apply_quota") {
+                       return IsAny, nil
+               }
        }
 
        if strings.HasPrefix(key, "environment.") {

From 6647f4185a08a6b3f24e6a9122183e6853ede980 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Tue, 5 Nov 2019 00:53:08 -0500
Subject: [PATCH 2/2] lxd/storage/lvm: Fix version parsing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/storage_lvm.go | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lxd/storage_lvm.go b/lxd/storage_lvm.go
index a16bdb4811..894e91e7c3 100644
--- a/lxd/storage_lvm.go
+++ b/lxd/storage_lvm.go
@@ -61,6 +61,11 @@ func (s *storageLvm) StorageCoreInit() error {
                if len(fields) < 2 {
                        continue
                }
+
+               if !strings.Contains(line, "version:") {
+                       continue
+               }
+
                if idx > 0 {
                        s.sTypeVersion += " / "
                }
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to