diff --git a/apiserver/facades/controller/caasapplicationprovisioner/mock_test.go b/apiserver/facades/controller/caasapplicationprovisioner/mock_test.go index 0fe4c007947..db9b1f8afc9 100644 --- a/apiserver/facades/controller/caasapplicationprovisioner/mock_test.go +++ b/apiserver/facades/controller/caasapplicationprovisioner/mock_test.go @@ -27,6 +27,7 @@ import ( "github.com/juju/juju/core/objectstore" "github.com/juju/juju/core/resources" "github.com/juju/juju/core/status" + storageerrors "github.com/juju/juju/domain/storage/errors" "github.com/juju/juju/environs/config" "github.com/juju/juju/internal/docker" "github.com/juju/juju/internal/storage" @@ -161,6 +162,9 @@ func (m *mockStoragePoolGetter) GetStoragePoolByName(_ context.Context, name str if err := m.NextErr(); err != nil { return nil, err } + if name == "notpool" { + return nil, storageerrors.PoolNotFoundError + } return storage.NewConfig(name, k8sconstants.StorageProviderType, map[string]interface{}{"foo": "bar"}) } diff --git a/apiserver/facades/controller/caasapplicationprovisioner/provisioner.go b/apiserver/facades/controller/caasapplicationprovisioner/provisioner.go index dcaee5ef121..fa0642a91d1 100644 --- a/apiserver/facades/controller/caasapplicationprovisioner/provisioner.go +++ b/apiserver/facades/controller/caasapplicationprovisioner/provisioner.go @@ -518,7 +518,7 @@ func CharmStorageParams( } providerType, attrs, err := poolStorageProvider(ctx, storagePoolGetter, registry, maybePoolName) - if err != nil && (!errors.Is(err, errors.NotFound) || poolName != "") { + if err != nil && (!errors.Is(err, storageerrors.PoolNotFoundError) || poolName != "") { return nil, errors.Trace(err) } if err == nil { diff --git a/apiserver/facades/controller/caasapplicationprovisioner/provisioner_test.go b/apiserver/facades/controller/caasapplicationprovisioner/provisioner_test.go index 26190c0eb8b..30cdedd002f 100644 --- a/apiserver/facades/controller/caasapplicationprovisioner/provisioner_test.go +++ b/apiserver/facades/controller/caasapplicationprovisioner/provisioner_test.go @@ -24,6 +24,7 @@ import ( jujuresource "github.com/juju/juju/core/resources" "github.com/juju/juju/core/status" "github.com/juju/juju/core/watcher/eventsource" + envconfig "github.com/juju/juju/environs/config" "github.com/juju/juju/internal/docker" "github.com/juju/juju/rpc/params" "github.com/juju/juju/state" @@ -680,3 +681,20 @@ func (s *CAASApplicationProvisionerSuite) TestProvisionerConfig(c *gc.C) { c.Assert(result.ProvisionerConfig, gc.NotNil) c.Assert(result.ProvisionerConfig.UnmanagedApplications.Entities, gc.DeepEquals, []params.Entity{{Tag: "application-controller"}}) } + +func (s *CAASApplicationProvisionerSuite) TestCharmStorageParamsPoolNotFound(c *gc.C) { + cfg, err := envconfig.New(envconfig.NoDefaults, coretesting.FakeConfig()) + c.Assert(err, jc.ErrorIsNil) + p, err := caasapplicationprovisioner.CharmStorageParams( + context.Background(), coretesting.ControllerTag.Id(), + "notpool", cfg, "", s.storagePoolGetter, s.registry, + ) + c.Assert(err, jc.ErrorIsNil) + c.Assert(p, jc.DeepEquals, ¶ms.KubernetesFilesystemParams{ + StorageName: "charm", + Size: 1024, + Provider: "kubernetes", + Attributes: map[string]any{"storage-class": "notpool"}, + Tags: map[string]string{"juju-controller-uuid": coretesting.ControllerTag.Id(), "juju-model-uuid": coretesting.ModelTag.Id()}, + }) +}