diff --git a/microcloud/service/lxd.go b/microcloud/service/lxd.go index f8a6a1a7b..d89e14d55 100644 --- a/microcloud/service/lxd.go +++ b/microcloud/service/lxd.go @@ -5,8 +5,6 @@ import ( "context" "fmt" "net" - "net/http" - "net/url" "os" "strings" "time" @@ -19,6 +17,7 @@ import ( "github.com/canonical/microcluster/microcluster" "github.com/canonical/microcloud/microcloud/api/types" + cloudCli "github.com/canonical/microcloud/microcloud/client" "github.com/canonical/microcloud/microcloud/mdns" ) @@ -57,14 +56,7 @@ func (s LXDService) Client(ctx context.Context, secret string) (lxd.InstanceServ return lxd.ConnectLXDUnixWithContext(ctx, s.m.FileSystem.ControlSocket().URL.Host, &lxd.ConnectionArgs{ HTTPClient: c.Client.Client, SkipGetServer: true, - Proxy: func(r *http.Request) (*url.URL, error) { - r.Header.Set("X-MicroCloud-Auth", secret) - if !strings.HasPrefix(r.URL.Path, "/1.0/services/lxd") { - r.URL.Path = "/1.0/services/lxd" + r.URL.Path - } - - return shared.ProxyFromEnvironment(r) - }, + Proxy: cloudCli.AuthProxy(secret, types.LXD), }) } @@ -80,14 +72,7 @@ func (s LXDService) remoteClient(secret string, address string, port int64) (lxd HTTPClient: c.Client.Client, InsecureSkipVerify: true, SkipGetServer: true, - Proxy: func(r *http.Request) (*url.URL, error) { - r.Header.Set("X-MicroCloud-Auth", secret) - if !strings.HasPrefix(r.URL.Path, "/1.0/services/lxd") { - r.URL.Path = "/1.0/services/lxd" + r.URL.Path - } - - return shared.ProxyFromEnvironment(r) - }, + Proxy: cloudCli.AuthProxy(secret, types.LXD), }) if err != nil { return nil, err