[lxc-devel] [lxd/master] lxc/remote: Don't require a crt for public remotes
stgraber on Github
lxc-bot at linuxcontainers.org
Thu Aug 3 19:07:53 UTC 2017
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 370 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20170803/7bb094b9/attachment.bin>
-------------- next part --------------
From d8836461cfbe5187d8f6bbeb6f6eac8f88bdc83b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Thu, 3 Aug 2017 14:57:42 -0400
Subject: [PATCH] lxc/remote: Don't require a crt for public remotes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #3627
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
lxc/remote.go | 31 ++++++++++++++++++++++++-------
1 file changed, 24 insertions(+), 7 deletions(-)
diff --git a/lxc/remote.go b/lxc/remote.go
index 594d24566..5296d250b 100644
--- a/lxc/remote.go
+++ b/lxc/remote.go
@@ -16,6 +16,7 @@ import (
"golang.org/x/crypto/ssh/terminal"
+ "github.com/lxc/lxd/client"
"github.com/lxc/lxd/lxc/config"
"github.com/lxc/lxd/shared"
"github.com/lxc/lxd/shared/api"
@@ -211,7 +212,12 @@ func (c *remoteCmd) addServer(conf *config.Config, server string, addr string, a
conf.Remotes[server] = config.Remote{Addr: addr, Protocol: protocol}
// Attempt to connect
- d, err := conf.GetContainerServer(server)
+ var d interface{}
+ if public {
+ d, err = conf.GetImageServer(server)
+ } else {
+ d, err = conf.GetContainerServer(server)
+ }
// Handle Unix socket connections
if strings.HasPrefix(addr, "unix:") {
@@ -261,20 +267,31 @@ func (c *remoteCmd) addServer(conf *config.Config, server string, addr string, a
certOut.Close()
// Setup a new connection, this time with the remote certificate
- d, err = conf.GetContainerServer(server)
+ if public {
+ d, err = conf.GetImageServer(server)
+ } else {
+ d, err = conf.GetContainerServer(server)
+ }
+
if err != nil {
return err
}
}
+ // Handle public remotes
+ if public {
+ conf.Remotes[server] = config.Remote{Addr: addr, Public: true}
+ return nil
+ }
+
// Get server information
- srv, _, err := d.GetServer()
+ srv, _, err := d.(lxd.ContainerServer).GetServer()
if err != nil {
return err
}
- // Detect a public remote
- if srv.Public || public {
+ // Detect public remotes
+ if srv.Public {
conf.Remotes[server] = config.Remote{Addr: addr, Public: true}
return nil
}
@@ -306,13 +323,13 @@ func (c *remoteCmd) addServer(conf *config.Config, server string, addr string, a
}
req.Type = "client"
- err = d.CreateCertificate(req)
+ err = d.(lxd.ContainerServer).CreateCertificate(req)
if err != nil {
return err
}
// And check if trusted now
- srv, _, err = d.GetServer()
+ srv, _, err = d.(lxd.ContainerServer).GetServer()
if err != nil {
return err
}
More information about the lxc-devel
mailing list