func (s *UpgradeCharmSuccessStateSuite) TestForcedSeriesUpgrade(c *gc.C) { path := testcharms.Repo.ClonedDirPath(c.MkDir(), "multi-series") err := runDeploy(c, path, "multi-series", "--series", "precise") c.Assert(err, jc.ErrorIsNil) application, err := s.State.Application("multi-series") c.Assert(err, jc.ErrorIsNil) ch, _, err := application.Charm() c.Assert(err, jc.ErrorIsNil) c.Assert(ch.Revision(), gc.Equals, 1) // Copy files from a charm supporting a different set of series // so we can try an upgrade requiring --force-series. for _, f := range []string{"metadata.yaml", "revision"} { err = utils.CopyFile( filepath.Join(path, f), filepath.Join(testcharms.Repo.CharmDirPath("multi-series2"), f)) c.Assert(err, jc.ErrorIsNil) } err = runUpgradeCharm(c, "multi-series", "--path", path, "--force-series") c.Assert(err, jc.ErrorIsNil) err = application.Refresh() c.Assert(err, jc.ErrorIsNil) ch, force, err := application.Charm() c.Assert(err, jc.ErrorIsNil) c.Assert(ch.Revision(), gc.Equals, 8) c.Assert(force, gc.Equals, false) s.AssertCharmUploaded(c, ch.URL()) c.Assert(ch.URL().String(), gc.Equals, "local:precise/multi-series2-8") }
func (s *serviceSuite) TestSetServiceMetricCredentialsNoMocks(c *gc.C) { application := s.Factory.MakeApplication(c, nil) err := s.client.SetMetricCredentials(application.Name(), []byte("creds")) c.Assert(err, jc.ErrorIsNil) err = application.Refresh() c.Assert(err, jc.ErrorIsNil) c.Assert(application.MetricCredentials(), gc.DeepEquals, []byte("creds")) }
func (s *UpgradeCharmSuccessStateSuite) TestForcedSeriesUpgrade(c *gc.C) { path := testcharms.Repo.ClonedDirPath(c.MkDir(), "multi-series") err := runDeploy(c, path, "multi-series", "--series", "precise") c.Assert(err, jc.ErrorIsNil) application, err := s.State.Application("multi-series") c.Assert(err, jc.ErrorIsNil) ch, _, err := application.Charm() c.Assert(err, jc.ErrorIsNil) c.Assert(ch.Revision(), gc.Equals, 1) // Overwrite the metadata.yaml to change the supported series. metadataPath := filepath.Join(path, "metadata.yaml") file, err := os.OpenFile(metadataPath, os.O_TRUNC|os.O_RDWR, 0666) if err != nil { c.Fatal(errors.Annotate(err, "cannot open metadata.yaml for overwriting")) } defer file.Close() metadata := strings.Join( []string{ `name: multi-series`, `summary: "That's a dummy charm with multi-series."`, `description: |`, ` This is a longer description which`, ` potentially contains multiple lines.`, `series:`, ` - trusty`, ` - wily`, }, "\n", ) if _, err := file.WriteString(metadata); err != nil { c.Fatal(errors.Annotate(err, "cannot write to metadata.yaml")) } err = runUpgradeCharm(c, "multi-series", "--path", path, "--force-series") c.Assert(err, jc.ErrorIsNil) err = application.Refresh() c.Assert(err, jc.ErrorIsNil) ch, force, err := application.Charm() c.Assert(err, jc.ErrorIsNil) c.Check(ch.Revision(), gc.Equals, 2) c.Check(force, gc.Equals, false) }