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

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) ===
Closes #6898

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
From 2df1e5b750b90042474b6a1a505d74e5c594eb43 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Wed, 19 Feb 2020 16:59:53 -0500
Subject: [PATCH] lxd/db: Set ceph.user.name if missing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #6898

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/db/cluster/schema.go |  2 +-
 lxd/db/cluster/update.go | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/lxd/db/cluster/schema.go b/lxd/db/cluster/schema.go
index 02f2057d10..979578656e 100644
--- a/lxd/db/cluster/schema.go
+++ b/lxd/db/cluster/schema.go
@@ -495,5 +495,5 @@ CREATE TABLE storage_volumes_config (
     FOREIGN KEY (storage_volume_id) REFERENCES storage_volumes (id) ON DELETE 
CASCADE
 );
 
-INSERT INTO schema (version, updated_at) VALUES (24, strftime("%s"))
+INSERT INTO schema (version, updated_at) VALUES (25, strftime("%s"))
 `
diff --git a/lxd/db/cluster/update.go b/lxd/db/cluster/update.go
index 7b9763a238..43691eb38b 100644
--- a/lxd/db/cluster/update.go
+++ b/lxd/db/cluster/update.go
@@ -60,6 +60,38 @@ var updates = map[int]schema.Update{
        22: updateFromV21,
        23: updateFromV22,
        24: updateFromV23,
+       25: updateFromV24,
+}
+
+// The ceph.user.name config key is required for Ceph to function.
+func updateFromV24(tx *sql.Tx) error {
+       // Fetch the IDs of all existing Ceph pools.
+       poolIDs, err := query.SelectIntegers(tx, `SELECT id FROM storage_pools 
WHERE driver='ceph'`)
+       if err != nil {
+               return errors.Wrap(err, "Failed to get IDs of current ceph 
pools")
+       }
+
+       for _, poolID := range poolIDs {
+               // Fetch the config for this Ceph pool.
+               config, err := query.SelectConfig(tx, "storage_pools_config", 
"storage_pool_id=?", poolID)
+               if err != nil {
+                       return errors.Wrap(err, "Failed to fetch of ceph pool 
config")
+               }
+
+               // Check if already set.
+               _, ok := config["ceph.user.name"]
+               if ok {
+                       continue
+               }
+
+               // Add ceph.user.name config entry.
+               _, err = tx.Exec("INSERT INTO storage_pools_config 
(storage_pool_id, key, value) VALUES (?, 'ceph.user.name', 'ceph')", poolID)
+               if err != nil {
+                       return errors.Wrap(err, "Failed to create 
ceph.user.name config")
+               }
+       }
+
+       return nil
 }
 
 // The lvm.vg_name config key is required for LVM to function.
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to