github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/caas/kubernetes/provider/errors.go (about) 1 // Copyright 2019 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package provider 5 6 import ( 7 "github.com/juju/errors" 8 k8serrors "k8s.io/apimachinery/pkg/api/errors" 9 ) 10 11 var ( 12 errNoNamespace = errors.NotProvisionedf("bootstrap broker or no namespace") 13 ) 14 15 // ClusterQueryError represents an issue when querying a cluster. 16 type ClusterQueryError struct { 17 Message string 18 } 19 20 func (e ClusterQueryError) Error() string { 21 return e.Message 22 } 23 24 // IsClusterQueryError returns true if err is a ClusterQueryError. 25 func IsClusterQueryError(err error) bool { 26 _, ok := err.(ClusterQueryError) 27 return ok 28 } 29 30 // NoRecommendedStorageError represents when Juju is unable to determine which storage a cluster uses (or should use) 31 type NoRecommendedStorageError struct { 32 Message string 33 ProviderName string 34 } 35 36 func (e NoRecommendedStorageError) Error() string { 37 return e.Message 38 } 39 40 func (e NoRecommendedStorageError) StorageProvider() string { 41 return e.ProviderName 42 } 43 44 // IsNoRecommendedStorageError returns true if err is a NoRecommendedStorageError 45 func IsNoRecommendedStorageError(err error) bool { 46 _, ok := err.(NoRecommendedStorageError) 47 return ok 48 } 49 50 // MaskError is used to signify that an error 51 // should not be reported back to the caller. 52 func MaskError(err error) bool { 53 _, ok := errors.Cause(err).(*k8serrors.StatusError) 54 return ok 55 }