func (s *configSuite) TestWithDefaultsOkay(c *gc.C) { cfg := lxdclient.Config{ Namespace: "my-ns", Dirname: "some-dir", Remote: s.remote, } updated, err := cfg.WithDefaults() c.Assert(err, jc.ErrorIsNil) c.Check(updated, jc.DeepEquals, cfg) }
func (s *configSuite) TestWithDefaultsMissingRemote(c *gc.C) { cfg := lxdclient.Config{ Namespace: "my-ns", Dirname: "some-dir", } updated, err := cfg.WithDefaults() c.Assert(err, jc.ErrorIsNil) c.Check(updated, jc.DeepEquals, lxdclient.Config{ Namespace: "my-ns", Dirname: "some-dir", Remote: lxdclient.Local, }) }
func (s *configSuite) TestWithDefaultsMissingDirname(c *gc.C) { cfg := lxdclient.Config{ Namespace: "my-ns", Dirname: "", Remote: s.remote, } updated, err := cfg.WithDefaults() c.Assert(err, jc.ErrorIsNil) c.Check(updated, jc.DeepEquals, lxdclient.Config{ Namespace: "my-ns", // TODO(ericsnow) This will change on Windows once the LXD // code is cross-platform. Dirname: "/.config/lxc", // IsolationSuite sets $HOME to "". Remote: s.remote, }) }
func (s *configSuite) TestWithDefaultsMissingDirname(c *gc.C) { cfg := lxdclient.Config{ Namespace: "my-ns", Dirname: "", Remote: s.remote, } updated, err := cfg.WithDefaults() c.Assert(err, jc.ErrorIsNil) c.Logf("path.Clean of dirname is %s (dirname is %s)", path.Clean(updated.Dirname), updated.Dirname) c.Check(updated, jc.DeepEquals, lxdclient.Config{ Namespace: "my-ns", // TODO(ericsnow) This will change on Windows once the LXD // code is cross-platform. Dirname: "/.config/lxc", Remote: s.remote, }) }
// clientConfig builds a LXD Config based on the env config and returns it. func (c *environConfig) clientConfig() (lxdclient.Config, error) { remote := lxdclient.Remote{ Name: "juju-remote", Host: c.remoteURL(), } if c.clientCert() != "" { certPEM := []byte(c.clientCert()) keyPEM := []byte(c.clientKey()) cert := lxdclient.NewCert(certPEM, keyPEM) cert.Name = fmt.Sprintf("juju cert for env %q", c.Name()) remote.Cert = &cert } cfg := lxdclient.Config{ Namespace: c.namespace(), Dirname: lxdclient.ConfigPath("juju-" + c.namespace()), Remote: remote, } cfg, err := cfg.WithDefaults() if err != nil { return cfg, errors.Trace(err) } return cfg, nil }