moby/plugin/errors.go
Brian Goff 87a12421a9 Add helpers to create errdef errors
Instead of having to create a bunch of custom error types that are doing
nothing but wrapping another error in sub-packages, use a common helper
to create errors of the requested type.

e.g. instead of re-implementing this over and over:

```go
type notFoundError struct {
  cause error
}

func(e notFoundError) Error() string {
  return e.cause.Error()
}

func(e notFoundError) NotFound() {}

func(e notFoundError) Cause() error {
  return e.cause
}
```

Packages can instead just do:

```
  errdefs.NotFound(err)
```

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2018-01-11 21:21:43 -05:00

66 lines
1.3 KiB
Go

package plugin
import "fmt"
type errNotFound string
func (name errNotFound) Error() string {
return fmt.Sprintf("plugin %q not found", string(name))
}
func (errNotFound) NotFound() {}
type errAmbiguous string
func (name errAmbiguous) Error() string {
return fmt.Sprintf("multiple plugins found for %q", string(name))
}
func (name errAmbiguous) InvalidParameter() {}
type errDisabled string
func (name errDisabled) Error() string {
return fmt.Sprintf("plugin %s found but disabled", string(name))
}
func (name errDisabled) Conflict() {}
type invalidFilter struct {
filter string
value []string
}
func (e invalidFilter) Error() string {
msg := "Invalid filter '" + e.filter
if len(e.value) > 0 {
msg += fmt.Sprintf("=%s", e.value)
}
return msg + "'"
}
func (invalidFilter) InvalidParameter() {}
type inUseError string
func (e inUseError) Error() string {
return "plugin " + string(e) + " is in use"
}
func (inUseError) Conflict() {}
type enabledError string
func (e enabledError) Error() string {
return "plugin " + string(e) + " is enabled"
}
func (enabledError) Conflict() {}
type alreadyExistsError string
func (e alreadyExistsError) Error() string {
return "plugin " + string(e) + " already exists"
}
func (alreadyExistsError) Conflict() {}