Error handler cleanup
Cleanup per additional comments in PR #992. Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package metadata
|
||||
|
||||
import "github.com/pkg/errors"
|
||||
|
||||
type metadataExistsErr struct {
|
||||
desc string
|
||||
}
|
||||
@@ -15,9 +17,9 @@ func ErrExists(msg string) error {
|
||||
if msg == "" {
|
||||
msg = "metadata: exists"
|
||||
}
|
||||
return metadataExistsErr{
|
||||
return errors.WithStack(metadataExistsErr{
|
||||
desc: msg,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// ErrNotFound is returned when an item cannot be found in metadata
|
||||
@@ -25,9 +27,9 @@ func ErrNotFound(msg string) error {
|
||||
if msg == "" {
|
||||
msg = "metadata: not found"
|
||||
}
|
||||
return metadataNotFoundErr{
|
||||
return errors.WithStack(metadataNotFoundErr{
|
||||
desc: msg,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// ErrNotEmpty is returned when a metadata item can't be deleted because it is not empty
|
||||
@@ -35,9 +37,9 @@ func ErrNotEmpty(msg string) error {
|
||||
if msg == "" {
|
||||
msg = "metadata: namespace not empty"
|
||||
}
|
||||
return metadataNotEmptyErr{
|
||||
return errors.WithStack(metadataNotEmptyErr{
|
||||
desc: msg,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func (m metadataExistsErr) Error() string {
|
||||
@@ -64,54 +66,30 @@ func (m metadataNotEmptyErr) NotEmpty() bool {
|
||||
|
||||
// IsNotFound returns true if the error is due to a missing metadata item
|
||||
func IsNotFound(err error) bool {
|
||||
if err, ok := err.(interface {
|
||||
if err, ok := errors.Cause(err).(interface {
|
||||
NotFound() bool
|
||||
}); ok {
|
||||
return err.NotFound()
|
||||
}
|
||||
|
||||
causal, ok := err.(interface {
|
||||
Cause() error
|
||||
})
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
return IsNotFound(causal.Cause())
|
||||
return false
|
||||
}
|
||||
|
||||
// IsExists returns true if the error is due to an already existing metadata item
|
||||
func IsExists(err error) bool {
|
||||
if err, ok := err.(interface {
|
||||
if err, ok := errors.Cause(err).(interface {
|
||||
Exists() bool
|
||||
}); ok {
|
||||
return err.Exists()
|
||||
}
|
||||
|
||||
causal, ok := err.(interface {
|
||||
Cause() error
|
||||
})
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
return IsExists(causal.Cause())
|
||||
return false
|
||||
}
|
||||
|
||||
// IsNotEmpty returns true if the error is due to delete request of a non-empty metadata item
|
||||
func IsNotEmpty(err error) bool {
|
||||
if err, ok := err.(interface {
|
||||
if err, ok := errors.Cause(err).(interface {
|
||||
NotEmpty() bool
|
||||
}); ok {
|
||||
return err.NotEmpty()
|
||||
}
|
||||
|
||||
causal, ok := err.(interface {
|
||||
Cause() error
|
||||
})
|
||||
if !ok {
|
||||
return false
|
||||
}
|
||||
|
||||
return IsNotEmpty(causal.Cause())
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user