The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/7931
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 f0ffccd6f18e4ddd477da4d09d052d075c88d9c5 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Thu, 24 Sep 2020 16:01:47 +0100 Subject: [PATCH 1/6] lxd/sys/fs: initDirs comment Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/sys/fs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/sys/fs.go b/lxd/sys/fs.go index 482d0ba0dc..93991792d4 100644 --- a/lxd/sys/fs.go +++ b/lxd/sys/fs.go @@ -35,7 +35,7 @@ func (s *OS) LegacyGlobalDatabasePath() string { return filepath.Join(s.VarDir, "raft", "db.bin") } -// Make sure all our directories are available. +// initDirs Make sure all our directories are available. func (s *OS) initDirs() error { dirs := []struct { path string From 904349f08e1865c2b8534cca2062c051a23b624c Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Thu, 24 Sep 2020 16:02:01 +0100 Subject: [PATCH 2/6] lxd/sys/fs: Removes backups/instances and backups/custom from pre-storage mount setup Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/sys/fs.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/lxd/sys/fs.go b/lxd/sys/fs.go index 93991792d4..61e711ac08 100644 --- a/lxd/sys/fs.go +++ b/lxd/sys/fs.go @@ -43,8 +43,6 @@ func (s *OS) initDirs() error { }{ {s.VarDir, 0711}, {filepath.Join(s.VarDir, "backups"), 0700}, - {filepath.Join(s.VarDir, "backups", "custom"), 0700}, - {filepath.Join(s.VarDir, "backups", "instances"), 0700}, {s.CacheDir, 0700}, // containers is 0711 because liblxc needs to traverse dir to get to each container. {filepath.Join(s.VarDir, "containers"), 0711}, From 2700f35c735738240f71a8226e0eb853db316f65 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Thu, 24 Sep 2020 16:02:48 +0100 Subject: [PATCH 3/6] lxd/sys/fs: initDirs error quoting Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/sys/fs.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/sys/fs.go b/lxd/sys/fs.go index 61e711ac08..a9b6326126 100644 --- a/lxd/sys/fs.go +++ b/lxd/sys/fs.go @@ -70,12 +70,12 @@ func (s *OS) initDirs() error { err := os.Mkdir(dir.path, dir.mode) if err != nil { if !os.IsExist(err) { - return errors.Wrapf(err, "Failed to init dir %s", dir.path) + return errors.Wrapf(err, "Failed to init dir %q", dir.path) } err = os.Chmod(dir.path, dir.mode) if err != nil && !os.IsNotExist(err) { - return errors.Wrapf(err, "Failed to chmod dir %s", dir.path) + return errors.Wrapf(err, "Failed to chmod dir %q", dir.path) } } } From bad724ab9e6d962c94cc6a844837c7996378364e Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Thu, 24 Sep 2020 16:03:01 +0100 Subject: [PATCH 4/6] lxd/sys/fs: Adds initStorageDirs to be called after storage pools and daemon volumes are mounted Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/sys/fs.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lxd/sys/fs.go b/lxd/sys/fs.go index a9b6326126..9aefba8155 100644 --- a/lxd/sys/fs.go +++ b/lxd/sys/fs.go @@ -82,3 +82,30 @@ func (s *OS) initDirs() error { return nil } + +// initStorageDirs make sure all our directories are on the storage layer (after storage is mounted). +func (s *OS) initStorageDirs() error { + dirs := []struct { + path string + mode os.FileMode + }{ + {filepath.Join(s.VarDir, "backups", "custom"), 0700}, + {filepath.Join(s.VarDir, "backups", "instances"), 0700}, + } + + for _, dir := range dirs { + err := os.Mkdir(dir.path, dir.mode) + if err != nil { + if !os.IsExist(err) { + return errors.Wrapf(err, "Failed to init storage dir %q", dir.path) + } + + err = os.Chmod(dir.path, dir.mode) + if err != nil && !os.IsNotExist(err) { + return errors.Wrapf(err, "Failed to chmod storage dir %q", dir.path) + } + } + } + + return nil +} From f2093e17c87f2d510697747c3d299c5aeb9d25fa Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Thu, 24 Sep 2020 16:03:33 +0100 Subject: [PATCH 5/6] lxd/sys/os: Adds InitStorage Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/sys/os.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lxd/sys/os.go b/lxd/sys/os.go index c68ceb6aaf..61cdf47394 100644 --- a/lxd/sys/os.go +++ b/lxd/sys/os.go @@ -146,3 +146,8 @@ func (s *OS) Init() error { return nil } + +// InitStorage initialises the storage layer after it has been mounted. +func (s *OS) InitStorage() error { + return s.initStorageDirs() +} From 089b47bf24add39c582a949eb61f3fb0b405170d Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Thu, 24 Sep 2020 16:03:50 +0100 Subject: [PATCH 6/6] lxd/daemon: Call d.os.InitStorage after daemon storage volumes are mounted Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/daemon.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lxd/daemon.go b/lxd/daemon.go index 171d0df966..a422ef8b20 100644 --- a/lxd/daemon.go +++ b/lxd/daemon.go @@ -938,6 +938,12 @@ func (d *Daemon) init() error { return err } + // Create directories on daemon storage mounts. + err = d.os.InitStorage() + if err != nil { + return err + } + // Apply all patches that need to be run after daemon storage is initialised. err = patchesApply(d, patchPostDaemonStorage) if err != nil {
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel