From f82a46e7d6c4c1f6ad5d9999215beb663d1ddedf Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 25 Jul 2016 12:15:54 +0200 Subject: [PATCH] make network errors less DRY There's existing code to generate these kind of errors, so make the errors added in commit cc493a52a46271df82dbebea26038502b85788b9 less DRY. Signed-off-by: Sebastiaan van Stijn Upstream-commit: 3fa9d77bf312652ae04e902a2b6e73a0b91ec007 Component: engine --- .../server/router/network/network_routes.go | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/components/engine/api/server/router/network/network_routes.go b/components/engine/api/server/router/network/network_routes.go index c38ba3d7f4..7a50e6c31b 100644 --- a/components/engine/api/server/router/network/network_routes.go +++ b/components/engine/api/server/router/network/network_routes.go @@ -8,6 +8,7 @@ import ( "golang.org/x/net/context" "github.com/docker/docker/api/server/httputils" + "github.com/docker/docker/errors" "github.com/docker/engine-api/types" "github.com/docker/engine-api/types/filters" "github.com/docker/engine-api/types/network" @@ -121,7 +122,8 @@ func (n *networkRouter) postNetworkConnect(ctx context.Context, w http.ResponseW } if nw.Info().Dynamic() { - return newNetworkForbiddenError("operation not supported for swarm scoped networks") + err := fmt.Errorf("operation not supported for swarm scoped networks") + return errors.NewRequestForbiddenError(err) } return n.backend.ConnectContainerToNetwork(connect.Container, nw.Name(), connect.EndpointConfig) @@ -147,7 +149,8 @@ func (n *networkRouter) postNetworkDisconnect(ctx context.Context, w http.Respon } if nw.Info().Dynamic() { - return newNetworkForbiddenError("operation not supported for swarm scoped networks") + err := fmt.Errorf("operation not supported for swarm scoped networks") + return errors.NewRequestForbiddenError(err) } return n.backend.DisconnectContainerFromNetwork(disconnect.Container, nw, disconnect.Force) @@ -292,17 +295,3 @@ func buildEndpointResource(e libnetwork.Endpoint) types.EndpointResource { } return er } - -// networkForbiddenError represents an authorization deny error -type networkForbiddenError struct { - error -} - -// HTTPErrorStatusCode returns the authorization error status code (forbidden) -func (e networkForbiddenError) HTTPErrorStatusCode() int { - return http.StatusForbidden -} - -func newNetworkForbiddenError(msg string) networkForbiddenError { - return networkForbiddenError{error: fmt.Errorf("%s", msg)} -}