Permalink
Browse files

Bootstrap with (public-)clouds/credentials.yaml

Update bootstrap to use clouds.yaml and credentials.yaml.
The primary difference from the spec is that we will do
an auto-detection of credentials if none are specified
and there is no default.

Full support for cloud credentials has been added to the
following providers so far:
 - dummy (for unit tests)
 - lxd
 - ec2
 - gce
 - openstack
  • Loading branch information...
1 parent bb24c5e commit 520a90f3cc6f2a2f9fcb967fa78ea625be19042c @axw axw committed with wallyworld Jan 28, 2016
Showing with 996 additions and 658 deletions.
  1. +8 −2 apiserver/addresser/addresser_test.go
  2. +4 −1 apiserver/common/modelwatcher_test.go
  3. +9 −1 apiserver/imagemetadata/updatefrompublished_test.go
  4. +212 −65 cmd/juju/commands/bootstrap.go
  5. +190 −212 cmd/juju/commands/bootstrap_test.go
  6. +0 −89 cmd/juju/commands/common.go
  7. +4 −1 cmd/juju/commands/main.go
  8. +31 −0 cmd/juju/service/flags.go
  9. +8 −2 cmd/plugins/juju-metadata/imagemetadata.go
  10. +5 −1 cmd/plugins/juju-metadata/toolsmetadata_test.go
  11. +1 −0 cmd/plugins/juju-metadata/validateimagemetadata_test.go
  12. +0 −23 environs/bootstrap/bootstrap.go
  13. +3 −4 environs/errors.go
  14. +4 −1 environs/imagemetadata_test.go
  15. +35 −12 environs/jujutest/livetests.go
  16. +17 −16 environs/jujutest/tests.go
  17. +29 −21 environs/open.go
  18. +11 −10 environs/open_test.go
  19. +1 −1 environs/tools/tools_test.go
  20. +1 −1 environs/tools/urls_test.go
  21. +2 −2 juju/api_test.go
  22. +10 −1 juju/testing/conn.go
  23. +8 −2 provider/dummy/config_test.go
  24. +6 −5 provider/dummy/environs.go
  25. +4 −3 provider/dummy/environs_test.go
  26. +33 −0 provider/ec2/config_test.go
  27. +17 −2 provider/ec2/ebs_test.go
  28. +33 −4 provider/ec2/local_test.go
  29. +27 −3 provider/ec2/provider.go
  30. +23 −0 provider/gce/credentials.go
  31. +9 −5 provider/gce/google/config.go
  32. +5 −0 provider/gce/google/config_credentials_test.go
  33. +27 −0 provider/gce/provider.go
  34. +10 −0 provider/gce/provider_test.go
  35. +4 −1 provider/joyent/export_test.go
  36. +14 −36 provider/openstack/config.go
  37. +112 −120 provider/openstack/config_test.go
  38. +46 −8 provider/openstack/local_test.go
  39. +33 −3 provider/openstack/provider.go
@@ -275,7 +275,10 @@ func (s *AddresserSuite) TestWatchIPAddresses(c *gc.C) {
func testingEnvConfig(c *gc.C) *config.Config {
cfg, err := config.New(config.NoDefaults, dummy.SampleConfig())
c.Assert(err, jc.ErrorIsNil)
- env, err := environs.Prepare(cfg, modelcmd.BootstrapContext(coretesting.Context(c)), configstore.NewMem())
+ env, err := environs.Prepare(
+ modelcmd.BootstrapContext(coretesting.Context(c)), configstore.NewMem(),
+ "dummycontroller", environs.PrepareForBootstrapParams{Config: cfg},
+ )
c.Assert(err, jc.ErrorIsNil)
return env.Config()
}
@@ -296,7 +299,10 @@ func nonexTestingEnvConfig(c *gc.C) *config.Config {
func mockTestingEnvConfig(c *gc.C) *config.Config {
cfg, err := config.New(config.NoDefaults, mockConfig())
c.Assert(err, jc.ErrorIsNil)
- env, err := environs.Prepare(cfg, modelcmd.BootstrapContext(coretesting.Context(c)), configstore.NewMem())
+ env, err := environs.Prepare(
+ modelcmd.BootstrapContext(coretesting.Context(c)), configstore.NewMem(),
+ "dummycontroller", environs.PrepareForBootstrapParams{Config: cfg},
+ )
c.Assert(err, jc.ErrorIsNil)
return env.Config()
}
@@ -125,7 +125,10 @@ func (*environWatcherSuite) TestModelConfigMaskedSecrets(c *gc.C) {
func testingEnvConfig(c *gc.C) *config.Config {
cfg, err := config.New(config.NoDefaults, dummy.SampleConfig())
c.Assert(err, jc.ErrorIsNil)
- env, err := environs.Prepare(cfg, modelcmd.BootstrapContext(testing.Context(c)), configstore.NewMem())
+ env, err := environs.Prepare(
+ modelcmd.BootstrapContext(testing.Context(c)), configstore.NewMem(),
+ "dummycontroller", environs.PrepareForBootstrapParams{Config: cfg},
+ )
c.Assert(err, jc.ErrorIsNil)
return env.Config()
}
@@ -289,7 +289,15 @@ func (s *regionMetadataSuite) setExpectations(c *gc.C) {
// testingEnvConfig prepares an environment configuration using
// mock provider which impelements simplestreams.HasRegion interface.
s.state.environConfig = func() (*config.Config, error) {
- return s.env.Config(), nil
+ s.calls = append(s.calls, environConfig)
+ cfg, err := config.New(config.NoDefaults, dummy.SampleConfig())
+ c.Assert(err, jc.ErrorIsNil)
+ env, err := environs.Prepare(
+ modelcmd.BootstrapContext(testing.Context(c)), configstore.NewMem(),
+ "dummycontroller", environs.PrepareForBootstrapParams{Config: cfg},
+ )
+ c.Assert(err, jc.ErrorIsNil)
+ return env.Config(), err
}
s.state.saveMetadata = func(m []cloudimagemetadata.Metadata) error {
Oops, something went wrong.

0 comments on commit 520a90f

Please sign in to comment.