The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/3766
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 513d99c6846e4d9c85916353c488014850fd5ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Sun, 3 Sep 2017 22:04:42 -0400 Subject: [PATCH 1/2] patches: Move patch to the right part of the file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- lxd/patches.go | 170 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/lxd/patches.go b/lxd/patches.go index 65a2257d8..0b6c88777 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -2390,6 +2390,91 @@ func patchStorageZFSVolumeSize(name string, d *Daemon) error { return nil } +func patchNetworkDnsmasqHosts(name string, d *Daemon) error { + // Get the list of networks + networks, err := db.Networks(d.db) + if err != nil { + return err + } + + for _, network := range networks { + // Remove the old dhcp-hosts file (will be re-generated on startup) + if shared.PathExists(shared.VarPath("networks", network, "dnsmasq.hosts")) { + err = os.Remove(shared.VarPath("networks", network, "dnsmasq.hosts")) + if err != nil { + return err + } + } + } + + return nil +} + +func patchStorageApiDirBindMount(name string, d *Daemon) error { + pools, err := db.StoragePools(d.db) + if err != nil && err == db.NoSuchObjectError { + // No pool was configured in the previous update. So we're on a + // pristine LXD instance. + return nil + } else if err != nil { + // Database is screwed. + logger.Errorf("Failed to query database: %s", err) + return err + } + + for _, poolName := range pools { + _, pool, err := db.StoragePoolGet(d.db, poolName) + if err != nil { + logger.Errorf("Failed to query database: %s", err) + return err + } + + // We only care about dir + if pool.Driver != "dir" { + continue + } + + source := pool.Config["source"] + if source == "" { + msg := fmt.Sprintf(`No "source" property for storage `+ + `pool "%s" found`, poolName) + logger.Errorf(msg) + return fmt.Errorf(msg) + } + cleanSource := filepath.Clean(source) + poolMntPoint := getStoragePoolMountPoint(poolName) + + if cleanSource == poolName { + continue + } + + if shared.PathExists(poolMntPoint) { + err := os.Remove(poolMntPoint) + if err != nil { + return err + } + } + + err = os.MkdirAll(poolMntPoint, 0711) + if err != nil { + return err + } + + mountSource := cleanSource + mountFlags := syscall.MS_BIND + + err = syscall.Mount(mountSource, poolMntPoint, "", uintptr(mountFlags), "") + if err != nil { + logger.Errorf(`Failed to mount DIR storage pool "%s" onto `+ + `"%s": %s`, mountSource, poolMntPoint, err) + return err + } + + } + + return nil +} + // Patches end here // Here are a couple of legacy patches that were originally in @@ -2599,88 +2684,3 @@ func patchUpdateFromV30(d *Daemon) error { return nil } - -func patchNetworkDnsmasqHosts(name string, d *Daemon) error { - // Get the list of networks - networks, err := db.Networks(d.db) - if err != nil { - return err - } - - for _, network := range networks { - // Remove the old dhcp-hosts file (will be re-generated on startup) - if shared.PathExists(shared.VarPath("networks", network, "dnsmasq.hosts")) { - err = os.Remove(shared.VarPath("networks", network, "dnsmasq.hosts")) - if err != nil { - return err - } - } - } - - return nil -} - -func patchStorageApiDirBindMount(name string, d *Daemon) error { - pools, err := db.StoragePools(d.db) - if err != nil && err == db.NoSuchObjectError { - // No pool was configured in the previous update. So we're on a - // pristine LXD instance. - return nil - } else if err != nil { - // Database is screwed. - logger.Errorf("Failed to query database: %s", err) - return err - } - - for _, poolName := range pools { - _, pool, err := db.StoragePoolGet(d.db, poolName) - if err != nil { - logger.Errorf("Failed to query database: %s", err) - return err - } - - // We only care about dir - if pool.Driver != "dir" { - continue - } - - source := pool.Config["source"] - if source == "" { - msg := fmt.Sprintf(`No "source" property for storage `+ - `pool "%s" found`, poolName) - logger.Errorf(msg) - return fmt.Errorf(msg) - } - cleanSource := filepath.Clean(source) - poolMntPoint := getStoragePoolMountPoint(poolName) - - if cleanSource == poolName { - continue - } - - if shared.PathExists(poolMntPoint) { - err := os.Remove(poolMntPoint) - if err != nil { - return err - } - } - - err = os.MkdirAll(poolMntPoint, 0711) - if err != nil { - return err - } - - mountSource := cleanSource - mountFlags := syscall.MS_BIND - - err = syscall.Mount(mountSource, poolMntPoint, "", uintptr(mountFlags), "") - if err != nil { - logger.Errorf(`Failed to mount DIR storage pool "%s" onto `+ - `"%s": %s`, mountSource, poolMntPoint, err) - return err - } - - } - - return nil -} From d02daa298911dd0a4b1b84e5ad1a627c9ff0e534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> Date: Tue, 5 Sep 2017 03:04:36 -0400 Subject: [PATCH 2/2] patches: Fix broken directory migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <[email protected]> --- lxd/patches.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/patches.go b/lxd/patches.go index 0b6c88777..7f3aed559 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -2444,7 +2444,7 @@ func patchStorageApiDirBindMount(name string, d *Daemon) error { cleanSource := filepath.Clean(source) poolMntPoint := getStoragePoolMountPoint(poolName) - if cleanSource == poolName { + if cleanSource == poolMntPoint { continue }
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
