[lxc-devel] [lxd/master] Fix regression in "lxd init" in interactive mode for clustering

freeekanayaka on Github lxc-bot at linuxcontainers.org
Sun Mar 4 15:16:59 UTC 2018


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 850 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20180304/6f59095a/attachment.bin>
-------------- next part --------------
From 543bb2af67f4f79571b0360b2eba2e7dedfdb36f Mon Sep 17 00:00:00 2001
From: Free Ekanayaka <free.ekanayaka at canonical.com>
Date: Sun, 4 Mar 2018 15:13:01 +0000
Subject: [PATCH] Fix regression in "lxd init" in interactive mode for
 clustering

The lxd init code used to get networks and storages via a dedicated
cluster API, which was filtering out managed networks. The code was
updated to use the regular GET /networks API instead, and to filter
out managed networks. However it was creating a slice of networks
assuming that no network would be skipped.

I tried to add an integration test for interactive mode, but filling
in the trust password is not straightforward. We'll probably want to
figure it out separately.

Signed-off-by: Free Ekanayaka <free.ekanayaka at canonical.com>
---
 lxd/main_init.go | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/lxd/main_init.go b/lxd/main_init.go
index 405fb62317..f4b2509026 100644
--- a/lxd/main_init.go
+++ b/lxd/main_init.go
@@ -883,8 +883,8 @@ join:
 }
 
 func (cmd *CmdInit) askClusteringStoragePools(targetPools []api.StoragePool) ([]api.StoragePoolsPost, error) {
-	pools := make([]api.StoragePoolsPost, len(targetPools))
-	for i, pool := range targetPools {
+	pools := make([]api.StoragePoolsPost, 0)
+	for _, pool := range targetPools {
 		if pool.Status == "PENDING" {
 			continue // Skip pending pools
 		}
@@ -902,14 +902,14 @@ func (cmd *CmdInit) askClusteringStoragePools(targetPools []api.StoragePool) ([]
 			validator := func(string) error { return nil }
 			post.Config[key] = cmd.Context.AskString(question, "", validator)
 		}
-		pools[i] = post
+		pools = append(pools, post)
 	}
 	return pools, nil
 }
 
 func (cmd *CmdInit) askClusteringNetworks(targetNetworks []api.Network) ([]api.NetworksPost, error) {
-	networks := make([]api.NetworksPost, len(targetNetworks))
-	for i, network := range targetNetworks {
+	networks := make([]api.NetworksPost, 0)
+	for _, network := range targetNetworks {
 		if !network.Managed || network.Status == "PENDING" {
 			continue // Skip not-managed or pending networks
 		}
@@ -928,7 +928,7 @@ func (cmd *CmdInit) askClusteringNetworks(targetNetworks []api.Network) ([]api.N
 			validator := func(string) error { return nil }
 			post.Config[key] = cmd.Context.AskString(question, "", validator)
 		}
-		networks[i] = post
+		networks = append(networks, post)
 	}
 	return networks, nil
 }


More information about the lxc-devel mailing list