func (*OpenSuite) TestNewUnknownEnviron(c *gc.C) { attrs := dummySampleConfig().Merge(testing.Attrs{ "type": "wondercloud", }) env, err := environs.NewFromAttrs(attrs) c.Assert(err, gc.ErrorMatches, "no registered provider for.*") c.Assert(env, gc.IsNil) }
func (*OpenSuite) TestNewFromAttrs(c *gc.C) { e, err := environs.NewFromAttrs(dummy.SampleConfig().Merge( testing.Attrs{ "state-server": false, "name": "erewhemos", }, )) c.Assert(err, gc.ErrorMatches, "environment is not prepared") c.Assert(e, gc.IsNil) }
func (s *ConfigDeprecationSuite) setupEnv(c *gc.C, deprecatedKey, value string) { s.setupEnvCredentials() attrs := testing.FakeConfig().Merge(testing.Attrs{ "name": "testenv", "type": "openstack", "control-bucket": "x", deprecatedKey: value, }) _, err := environs.NewFromAttrs(attrs) c.Assert(err, gc.IsNil) }
// newConfig creates a MAAS environment config from attributes. func newConfig(values map[string]interface{}) (*maasModelConfig, error) { attrs := testing.FakeConfig().Merge(testing.Attrs{ "name": "testenv", "type": "maas", }).Merge(values) env, err := environs.NewFromAttrs(attrs) if err != nil { return nil, err } return env.(*maasEnviron).ecfg(), nil }
func (t *LiveTests) SetUpSuite(c *gc.C) { t.BaseSuite.SetUpSuite(c) t.LiveTests.SetUpSuite(c) // TODO: Share code from jujutest.LiveTests for creating environment e, err := environs.NewFromAttrs(t.TestConfig) c.Assert(err, gc.IsNil) // Put some fake tools in place so that tests that are simply // starting instances without any need to check if those instances // are running will find them in the public bucket. envtesting.UploadFakeTools(c, e.Storage()) }
func (*NewConnSuite) TestNewConnWithoutAdminSecret(c *gc.C) { cfg, err := config.New(config.NoDefaults, dummy.SampleConfig()) c.Assert(err, gc.IsNil) ctx := coretesting.Context(c) env, err := environs.Prepare(cfg, ctx, configstore.NewMem()) c.Assert(err, gc.IsNil) envtesting.UploadFakeTools(c, env.Storage()) err = bootstrap.Bootstrap(ctx, env, environs.BootstrapParams{}) c.Assert(err, gc.IsNil) attrs := env.Config().AllAttrs() delete(attrs, "admin-secret") env1, err := environs.NewFromAttrs(attrs) c.Assert(err, gc.IsNil) conn, err := juju.NewConn(env1) c.Check(conn, gc.IsNil) c.Assert(err, gc.ErrorMatches, "cannot connect without admin-secret") }
func (s *localHTTPSServerSuite) TestMustDisableSSLVerify(c *gc.C) { // If you don't have ssl-hostname-verification set to false, then we // fail to connect to the environment. Copy the attrs used by SetUp and // force hostname verification. newattrs := make(map[string]interface{}, len(s.attrs)) for k, v := range s.attrs { newattrs[k] = v } newattrs["ssl-hostname-verification"] = true env, err := environs.NewFromAttrs(newattrs) c.Assert(err, gc.IsNil) err = env.Storage().Put("test-name", strings.NewReader("content"), 7) c.Assert(err, gc.ErrorMatches, "(.|\n)*x509: certificate signed by unknown authority") // However, it works just fine if you use the one with the credentials set err = s.env.Storage().Put("test-name", strings.NewReader("content"), 7) c.Assert(err, gc.IsNil) _, err = env.Storage().Get("test-name") c.Assert(err, gc.ErrorMatches, "(.|\n)*x509: certificate signed by unknown authority") reader, err := s.env.Storage().Get("test-name") c.Assert(err, gc.IsNil) contents, err := ioutil.ReadAll(reader) c.Assert(string(contents), gc.Equals, "content") }
func (*NewConnSuite) TestConnStateDoesNotUpdateExistingSecrets(c *gc.C) { attrs := dummy.SampleConfig().Merge(coretesting.Attrs{ "secret": "pork", }) cfg, err := config.New(config.NoDefaults, attrs) c.Assert(err, gc.IsNil) ctx := coretesting.Context(c) env, err := environs.Prepare(cfg, ctx, configstore.NewMem()) c.Assert(err, gc.IsNil) envtesting.UploadFakeTools(c, env.Storage()) err = bootstrap.Bootstrap(ctx, env, environs.BootstrapParams{}) c.Assert(err, gc.IsNil) // Make a new Conn, which will push the secrets. conn, err := juju.NewConn(env) c.Assert(err, gc.IsNil) defer assertClose(c, conn) // Make another env with a different secret. attrs = env.Config().AllAttrs() attrs["secret"] = "squirrel" env1, err := environs.NewFromAttrs(attrs) c.Assert(err, gc.IsNil) // Connect with the new env and check that the secret has not changed conn, err = juju.NewConn(env1) c.Assert(err, gc.IsNil) defer assertClose(c, conn) cfg, err = conn.State.EnvironConfig() c.Assert(err, gc.IsNil) c.Assert(cfg.UnknownAttrs()["secret"], gc.Equals, "pork") // Reset the admin password so the state db can be reused. err = conn.State.SetAdminMongoPassword("") c.Assert(err, gc.IsNil) }