[lxc-devel] [lxd/master] Move BaseDirectories to the driver
stgraber on Github
lxc-bot at linuxcontainers.org
Mon Dec 16 20:31:38 UTC 2019
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 301 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20191216/c504564e/attachment.bin>
-------------- next part --------------
From 3add6e106f833bd7efcc2bb0f693e1033b844595 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Mon, 16 Dec 2019 15:19:16 -0500
Subject: [PATCH 1/3] lxd/storage/drivers: Re-order utils
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
lxd/storage/drivers/utils.go | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lxd/storage/drivers/utils.go b/lxd/storage/drivers/utils.go
index dc6b2fd87c..1ae7cdbfd5 100644
--- a/lxd/storage/drivers/utils.go
+++ b/lxd/storage/drivers/utils.go
@@ -14,11 +14,6 @@ import (
"github.com/lxc/lxd/shared"
)
-// MkfsOptions represents options for filesystem creation.
-type MkfsOptions struct {
- Label string
-}
-
func wipeDirectory(path string) error {
// List all entries
entries, err := ioutil.ReadDir(path)
@@ -231,6 +226,11 @@ func createSparseFile(filePath string, sizeBytes int64) error {
return nil
}
+// MkfsOptions represents options for filesystem creation.
+type MkfsOptions struct {
+ Label string
+}
+
// MakeFSType creates the provided filesystem.
func MakeFSType(path string, fsType string, options *MkfsOptions) (string, error) {
var err error
From b990d04be55691b898a8a3a02767c6ea37e996ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Mon, 16 Dec 2019 15:23:12 -0500
Subject: [PATCH 2/3] lxd/storage: Move BaseDirectories to drivers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
lxd/storage/backend_lxd.go | 2 +-
lxd/storage/drivers/volume.go | 8 ++++++++
lxd/storage/utils.go | 7 -------
3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/lxd/storage/backend_lxd.go b/lxd/storage/backend_lxd.go
index 203f9590f7..63faf061c7 100644
--- a/lxd/storage/backend_lxd.go
+++ b/lxd/storage/backend_lxd.go
@@ -2560,7 +2560,7 @@ func (b *lxdBackend) RestoreCustomVolume(volName string, snapshotName string, op
func (b *lxdBackend) createStorageStructure(path string) error {
for _, volType := range b.driver.Info().VolumeTypes {
- for _, name := range baseDirectories[volType] {
+ for _, name := range drivers.BaseDirectories[volType] {
err := os.MkdirAll(filepath.Join(path, name), 0711)
if err != nil && !os.IsExist(err) {
return err
diff --git a/lxd/storage/drivers/volume.go b/lxd/storage/drivers/volume.go
index 8cddd9fe8c..666190ec8d 100644
--- a/lxd/storage/drivers/volume.go
+++ b/lxd/storage/drivers/volume.go
@@ -34,6 +34,14 @@ const ContentTypeFS = ContentType("fs")
// know which filesystem(s) (if any) are in use.
const ContentTypeBlock = ContentType("block")
+// BaseDirectories maps volume types to the expected directories.
+var BaseDirectories = map[VolumeType][]string{
+ VolumeTypeContainer: {"containers", "containers-snapshots"},
+ VolumeTypeCustom: {"custom", "custom-snapshots"},
+ VolumeTypeImage: {"images"},
+ VolumeTypeVM: {"virtual-machines", "virtual-machines-snapshots"},
+}
+
// Volume represents a storage volume, and provides functions to mount and unmount it.
type Volume struct {
name string
diff --git a/lxd/storage/utils.go b/lxd/storage/utils.go
index 1ec383dcbc..55d577f736 100644
--- a/lxd/storage/utils.go
+++ b/lxd/storage/utils.go
@@ -21,13 +21,6 @@ import (
"github.com/lxc/lxd/shared/units"
)
-var baseDirectories = map[drivers.VolumeType][]string{
- drivers.VolumeTypeContainer: {"containers", "containers-snapshots"},
- drivers.VolumeTypeCustom: {"custom", "custom-snapshots"},
- drivers.VolumeTypeImage: {"images"},
- drivers.VolumeTypeVM: {"virtual-machines", "virtual-machines-snapshots"},
-}
-
// VolumeUsedByInstancesWithProfiles returns a slice containing the names of instances using a volume.
var VolumeUsedByInstancesWithProfiles func(s *state.State, poolName string, volumeName string, volumeTypeName string, runningOnly bool) ([]string, error)
From e8c3824cd007077657f3aa176a927ce47841126e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Mon, 16 Dec 2019 15:25:46 -0500
Subject: [PATCH 3/3] lxd/storage/cephfs: Don't hardcode directory names
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
lxd/storage/drivers/driver_cephfs.go | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/lxd/storage/drivers/driver_cephfs.go b/lxd/storage/drivers/driver_cephfs.go
index b4923586e3..6c63190390 100644
--- a/lxd/storage/drivers/driver_cephfs.go
+++ b/lxd/storage/drivers/driver_cephfs.go
@@ -192,11 +192,13 @@ func (d *cephfs) Delete(op *operations.Operation) error {
if shared.PathExists(filepath.Join(mountPoint, fsPath)) {
// Delete the usual directories.
- for _, dir := range []string{"custom", "custom-snapshots"} {
- if shared.PathExists(filepath.Join(mountPoint, fsPath, dir)) {
- err = os.Remove(filepath.Join(mountPoint, fsPath, dir))
- if err != nil {
- return err
+ for _, volType := range d.Info().VolumeTypes {
+ for _, dir := range BaseDirectories[volType] {
+ if shared.PathExists(filepath.Join(mountPoint, fsPath, dir)) {
+ err = os.Remove(filepath.Join(mountPoint, fsPath, dir))
+ if err != nil {
+ return err
+ }
}
}
}
More information about the lxc-devel
mailing list