diff --git a/cmd/juju/application/deployer/charm.go b/cmd/juju/application/deployer/charm.go index 6f328ea7926a..252e62cb9b6e 100644 --- a/cmd/juju/application/deployer/charm.go +++ b/cmd/juju/application/deployer/charm.go @@ -21,6 +21,7 @@ import ( "github.com/juju/juju/cmd/juju/application/utils" "github.com/juju/juju/cmd/juju/common" corebase "github.com/juju/juju/core/base" + corecharm "github.com/juju/juju/core/charm" "github.com/juju/juju/core/constraints" "github.com/juju/juju/core/devices" "github.com/juju/juju/core/instance" @@ -440,7 +441,7 @@ func (c *repositoryCharm) PrepareAndDeploy(ctx *cmd.Context, deployAPI DeployerA } } - if charm.IsUnsupportedSeriesError(err) { + if corecharm.IsUnsupportedSeriesError(err) { msg := fmt.Sprintf("%v. Use --force to deploy the charm anyway.", err) if usingDefaultSeries { msg += " Used the default-series." diff --git a/cmd/juju/application/deployer/charm_test.go b/cmd/juju/application/deployer/charm_test.go index 4d95a127970a..48dcf874f20d 100644 --- a/cmd/juju/application/deployer/charm_test.go +++ b/cmd/juju/application/deployer/charm_test.go @@ -103,6 +103,7 @@ func (s *charmSuite) TestRepositoryCharmDeployDryRunDefaultSeriesForce(c *gc.C) dCharm.validateCharmSeriesWithName = func(series, name string, imageStream string) error { return nil } + repoCharm := &repositoryCharm{ deployCharm: *dCharm, userRequestedURL: s.url, @@ -129,6 +130,30 @@ func (s *charmSuite) TestRepositoryCharmDeployDryRunDefaultSeriesForce(c *gc.C) c.Check(output.String(), gc.Equals, "\"testme\" from charm \"testme\", revision -1 on ubuntu@22.04 would be deployed\n") } +func (s *charmSuite) TestRepositoryCharmDeployDryRunUnsupportedSeries(c *gc.C) { + ctrl := s.setupMocks(c) + defer ctrl.Finish() + s.resolver = mocks.NewMockResolver(ctrl) + s.expectResolveChannel() + s.expectDeployerAPIModelGet(c, corebase.Base{}) + + dCharm := s.newDeployCharm() + dCharm.dryRun = true + dCharm.validateCharmSeriesWithName = func(series, name string, imageStream string) error { + return nil + } + dCharm.baseFlag = corebase.MustParseBaseFromString("ubuntu@12.04") + + repoCharm := &repositoryCharm{ + deployCharm: *dCharm, + userRequestedURL: s.url, + clock: clock.WallClock, + } + + err := repoCharm.PrepareAndDeploy(s.ctx, s.deployerAPI, s.resolver) + c.Assert(err, gc.ErrorMatches, `series "precise" not supported by charm, .* Use --force to deploy the charm anyway.`) +} + func (s *charmSuite) newDeployCharm() *deployCharm { return &deployCharm{ configOptions: s.configFlag, diff --git a/cmd/juju/application/deployer/series_selector.go b/cmd/juju/application/deployer/series_selector.go index 4d395d8e5fee..255856dd3551 100644 --- a/cmd/juju/application/deployer/series_selector.go +++ b/cmd/juju/application/deployer/series_selector.go @@ -141,10 +141,6 @@ func (s seriesSelector) userRequested(requestedSeries string) (string, error) { if supported.IsEmpty() { return "", errors.NewNotSupported(nil, fmt.Sprintf("series: %s", requestedSeries)) } - return "", errors.Errorf( - "series %q is not supported, supported series are: %s", - requestedSeries, strings.Join(supported.SortedValues(), ","), - ) } return "", err } diff --git a/cmd/juju/application/deployer/series_selector_test.go b/cmd/juju/application/deployer/series_selector_test.go index aeb80461d890..80c951aba70c 100644 --- a/cmd/juju/application/deployer/series_selector_test.go +++ b/cmd/juju/application/deployer/series_selector_test.go @@ -146,7 +146,7 @@ func (s *SeriesSelectorSuite) TestCharmSeries(c *gc.C) { conf: defaultBase{"ubuntu@15.10", true}, supportedJujuSeries: set.NewStrings("bionic", "cosmic"), }, - err: `series "wily" is not supported, supported series are: bionic,cosmic`, + err: `series "wily" not supported by charm, the charm supported series are: bionic,cosmic`, }, { title: "juju deploy multiseries # use model series defaults if supported by charm",