The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/3628
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 #3627 Signed-off-by: Stéphane Graber <[email protected]>
From d8836461cfbe5187d8f6bbeb6f6eac8f88bdc83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <[email protected]> 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 <[email protected]> --- 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 }
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
