Fix bootstrap with upload-tools to set the right agent version #5879

Merged
merged 1 commit into from Jul 28, 2016
Jump to file or symbol
Failed to load files and symbols.
+27 −0
Split
@@ -321,6 +321,9 @@ func Bootstrap(ctx environs.BootstrapContext, environ environs.Environ, args Boo
if err := instanceConfig.SetTools(selectedToolsList); err != nil {
return errors.Trace(err)
}
+ // Make sure we have the most recent environ config as the specified
+ // tools version has been updated there.
+ cfg = environ.Config()
if err := finalizeInstanceBootstrapConfig(ctx, instanceConfig, args, cfg, customImageMetadata); err != nil {
return errors.Annotate(err, "finalizing bootstrap instance config")
}
@@ -276,6 +276,30 @@ func (s *bootstrapSuite) TestBootstrapImageMetadataFromAllSources(c *gc.C) {
}
}
+func (s *bootstrapSuite) TestBootstrapUploadTools(c *gc.C) {
+ if runtime.GOOS == "windows" {
+ c.Skip("issue 1403084: Currently does not work because of jujud problems")
+ }
+
+ env := newEnviron("foo", useDefaultKeys, nil)
+ err := bootstrap.Bootstrap(envtesting.BootstrapContext(c), env, bootstrap.BootstrapParams{
+ UploadTools: true,
+ AdminSecret: "admin-secret",
+ CAPrivateKey: coretesting.CAKey,
+ ControllerConfig: coretesting.FakeControllerConfig(),
+ BuildToolsTarball: func(ver *version.Number, _ string) (*sync.BuiltTools, error) {
+ c.Logf("BuildToolsTarball version %s", ver)
+ return &sync.BuiltTools{Dir: c.MkDir()}, nil
+ },
+ })
+ c.Assert(err, jc.ErrorIsNil)
+ // Check that the model config has the correct version set.
+ cfg := env.instanceConfig.Bootstrap.ControllerModelConfig
+ agentVersion, valid := cfg.AgentVersion()
+ c.Check(valid, jc.IsTrue)
+ c.Check(agentVersion.String(), gc.Equals, "1.99.0.1")
+}
+
func (s *bootstrapSuite) TestBootstrapNoToolsNonReleaseStream(c *gc.C) {
if runtime.GOOS == "windows" {
c.Skip("issue 1403084: Currently does not work because of jujud problems")