Example #1
0
func (s *configFunctionalSuite) TestUsingTCPRemote(c *gc.C) {
	if s.client == nil {
		c.Skip("LXD not running locally")
	}

	cfg := lxdclient.Config{
		Namespace: "my-ns",
		Dirname:   "some-dir",
		Remote:    lxdclient.Local,
	}
	nonlocal, err := cfg.UsingTCPRemote()
	c.Assert(err, jc.ErrorIsNil)

	checkValidRemote(c, &nonlocal.Remote)
	c.Check(nonlocal, jc.DeepEquals, lxdclient.Config{
		Namespace: "my-ns",
		Dirname:   "some-dir",
		Remote: lxdclient.Remote{
			Name: lxdclient.Local.Name,
			Host: nonlocal.Remote.Host,
			Cert: nonlocal.Remote.Cert,
		},
	})
	// TODO(ericsnow) Check that the server has the certs.
}
Example #2
0
func (s *configSuite) TestValidateMissingRemote(c *gc.C) {
	cfg := lxdclient.Config{
		Namespace: "my-ns",
		Dirname:   "some-dir",
	}
	err := cfg.Validate()

	c.Check(err, jc.Satisfies, errors.IsNotValid)
}
Example #3
0
func (s *configSuite) TestValidateOkay(c *gc.C) {
	cfg := lxdclient.Config{
		Namespace: "my-ns",
		Dirname:   "some-dir",
		Remote:    s.remote,
	}
	err := cfg.Validate()

	c.Check(err, jc.ErrorIsNil)
}
Example #4
0
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)
}
Example #5
0
func (s *configSuite) TestUsingTCPRemoteNoop(c *gc.C) {
	cfg := lxdclient.Config{
		Namespace: "my-ns",
		Dirname:   "some-dir",
		Remote:    s.remote,
	}
	nonlocal, err := cfg.UsingTCPRemote()
	c.Assert(err, jc.ErrorIsNil)

	c.Check(nonlocal, jc.DeepEquals, cfg)
}
Example #6
0
func (s *configFunctionalSuite) TestWrite(c *gc.C) {
	dirname := c.MkDir()
	cfg := lxdclient.Config{
		Namespace: "my-ns",
		Dirname:   dirname,
		Remote:    s.remote,
	}
	err := cfg.Write()
	c.Assert(err, jc.ErrorIsNil)

	checkFiles(c, cfg)
}
Example #7
0
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,
	})
}
Example #8
0
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,
	})
}
Example #9
0
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,
	})
}
Example #10
0
// 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
}
Example #11
0
func (s *configSuite) TestWriteInvalid(c *gc.C) {
	var cfg lxdclient.Config
	err := cfg.Write()

	c.Check(err, jc.Satisfies, errors.IsNotValid)
}
Example #12
0
func (s *configSuite) TestValidateZeroValue(c *gc.C) {
	var cfg lxdclient.Config
	err := cfg.Validate()

	c.Check(err, jc.Satisfies, errors.IsNotValid)
}