You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docker-net-dhcp/pkg/util/errors.go

40 lines
1.6 KiB
Go

package util
import (
"errors"
"net/http"
)
var (
// ErrIPAM indicates an unsupported IPAM driver was used
ErrIPAM = errors.New("only the null IPAM driver is supported")
// ErrBridgeRequired indicates a network bridge was not provided for network creation
ErrBridgeRequired = errors.New("bridge required")
// ErrBridgeNotFound indicates that a bridge could not be found
ErrBridgeNotFound = errors.New("bridge not found")
// ErrBridgeUsed indicates that a bridge is already in use
ErrBridgeUsed = errors.New("bridge already in use by Docker")
// ErrMACAddress indicates an invalid MAC address
ErrMACAddress = errors.New("invalid MAC address")
// ErrNoLease indicates a DHCP lease was not obtained from udhcpc
ErrNoLease = errors.New("udhcpc did not output a lease")
// ErrNoHint indicates missing state from the CreateEndpoint stage in Join
ErrNoHint = errors.New("missing CreateEndpoint hints")
// ErrNotVEth indicates a host link was unexpectedly not a veth interface
ErrNotVEth = errors.New("host link is not a veth interface")
// ErrNoContainer indicates a container was unexpectedly not found
ErrNoContainer = errors.New("couldn't find container by endpoint on the network")
// ErrNoSandbox indicates missing state from the Join stage
ErrNoSandbox = errors.New("missing joined endpoint state")
)
func ErrToStatus(err error) int {
switch {
case errors.Is(err, ErrIPAM), errors.Is(err, ErrBridgeRequired), errors.Is(err, ErrBridgeNotFound),
errors.Is(err, ErrBridgeUsed), errors.Is(err, ErrMACAddress):
return http.StatusBadRequest
default:
return http.StatusInternalServerError
}
}