[lxc-devel] [lxd/master] lxd/candid: Cleanup config handling

stgraber on Github lxc-bot at linuxcontainers.org
Tue Apr 23 15:55:48 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 354 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190423/9ce6b970/attachment.bin>
-------------- next part --------------
From c19848cef9f259bc46cad39b9705fdf200bdf7a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Thu, 18 Apr 2019 15:47:14 +0100
Subject: [PATCH] lxd/candid: Cleanup config handling
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/api_1.0.go        | 13 ++++++-------
 lxd/api_cluster.go    |  8 ++------
 lxd/cluster/config.go | 22 +++-------------------
 lxd/daemon.go         | 14 ++++++--------
 4 files changed, 17 insertions(+), 40 deletions(-)

diff --git a/lxd/api_1.0.go b/lxd/api_1.0.go
index 9f87b89c90..6f194d76f1 100644
--- a/lxd/api_1.0.go
+++ b/lxd/api_1.0.go
@@ -92,9 +92,12 @@ func api10Get(d *Daemon, r *http.Request) Response {
 		if err != nil {
 			return err
 		}
-		if config.CandidEndpoint() != "" {
+
+		candidURL, _, _, _ := config.CandidServer()
+		if candidURL != "" {
 			authMethods = append(authMethods, "candid")
 		}
+
 		return nil
 	})
 	if err != nil {
@@ -491,12 +494,8 @@ func doApi10UpdateTriggers(d *Daemon, nodeChanged, clusterChanged map[string]str
 	}
 
 	if candidChanged {
-		endpoint := clusterConfig.CandidEndpoint()
-		endpointKey := clusterConfig.CandidEndpointKey()
-		expiry := clusterConfig.CandidExpiry()
-		domains := clusterConfig.CandidDomains()
-
-		err := d.setupExternalAuthentication(endpoint, endpointKey, expiry, domains)
+		apiURL, apiKey, expiry, domains := clusterConfig.CandidServer()
+		err := d.setupExternalAuthentication(apiURL, apiKey, expiry, domains)
 		if err != nil {
 			return err
 		}
diff --git a/lxd/api_cluster.go b/lxd/api_cluster.go
index 3a5c5dfeea..b930c8a18c 100644
--- a/lxd/api_cluster.go
+++ b/lxd/api_cluster.go
@@ -523,12 +523,8 @@ func clusterPutJoin(d *Daemon, req api.ClusterPut) Response {
 		}
 
 		// Connect to Candid
-		endpoint := clusterConfig.CandidEndpoint()
-		endpointKey := clusterConfig.CandidEndpointKey()
-		expiry := clusterConfig.CandidExpiry()
-		domains := clusterConfig.CandidDomains()
-
-		err = d.setupExternalAuthentication(endpoint, endpointKey, expiry, domains)
+		candidAPIURL, candidAPIKey, candidExpiry, candidDomains := clusterConfig.CandidServer()
+		err = d.setupExternalAuthentication(candidAPIURL, candidAPIKey, candidExpiry, candidDomains)
 		if err != nil {
 			return err
 		}
diff --git a/lxd/cluster/config.go b/lxd/cluster/config.go
index 3b32f89d00..aa521424fa 100644
--- a/lxd/cluster/config.go
+++ b/lxd/cluster/config.go
@@ -64,25 +64,9 @@ func (c *Config) TrustPassword() string {
 	return c.m.GetString("core.trust_password")
 }
 
-// CandidEndpoint returns the address of the Candid endpoint to use for
-// authentication, if any.
-func (c *Config) CandidEndpoint() string {
-	return c.m.GetString("candid.api.url")
-}
-
-// CandidEndpointKey returns the public key for the API endpoint
-func (c *Config) CandidEndpointKey() string {
-	return c.m.GetString("candid.api.key")
-}
-
-// CandidExpiry returns the cookie expiry of the macaroon.
-func (c *Config) CandidExpiry() int64 {
-	return c.m.GetInt64("candid.expiry")
-}
-
-// CandidDomains returns the valid domains.
-func (c *Config) CandidDomains() string {
-	return c.m.GetString("candid.domains")
+// CandidServer returns all the Candid settings needed to connect to a server.
+func (c *Config) CandidServer() (string, string, int64, string) {
+	return c.m.GetString("candid.api.url"), c.m.GetString("candid.api.key"), c.m.GetInt64("candid.expiry"), c.m.GetString("candid.domains")
 }
 
 // AutoUpdateInterval returns the configured images auto update interval.
diff --git a/lxd/daemon.go b/lxd/daemon.go
index 23a8fd8fb4..96a373869d 100644
--- a/lxd/daemon.go
+++ b/lxd/daemon.go
@@ -719,10 +719,11 @@ func (d *Daemon) init() error {
 	pruneLeftoverImages(d)
 
 	/* Setup the proxy handler, external authentication and MAAS */
-	var candidExpiry int64
+	candidAPIURL := ""
+	candidAPIKey := ""
 	candidDomains := ""
-	candidEndpoint := ""
-	candidEndpointKey := ""
+	candidExpiry := int64(0)
+
 	maasAPIURL := ""
 	maasAPIKey := ""
 	maasMachine := ""
@@ -750,10 +751,7 @@ func (d *Daemon) init() error {
 		d.proxy = shared.ProxyFromConfig(
 			config.ProxyHTTPS(), config.ProxyHTTP(), config.ProxyIgnoreHosts(),
 		)
-		candidEndpoint = config.CandidEndpoint()
-		candidEndpointKey = config.CandidEndpointKey()
-		candidExpiry = config.CandidExpiry()
-		candidDomains = config.CandidDomains()
+		candidAPIURL, candidAPIKey, candidExpiry, candidDomains = config.CandidServer()
 		maasAPIURL, maasAPIKey = config.MAASController()
 		return nil
 	})
@@ -761,7 +759,7 @@ func (d *Daemon) init() error {
 		return err
 	}
 
-	err = d.setupExternalAuthentication(candidEndpoint, candidEndpointKey, candidExpiry, candidDomains)
+	err = d.setupExternalAuthentication(candidAPIURL, candidAPIKey, candidExpiry, candidDomains)
 	if err != nil {
 		return err
 	}


More information about the lxc-devel mailing list