From 318d9d5aa85ea7863c3ea980fb2bc266f1ed9a8d Mon Sep 17 00:00:00 2001 From: "Frederick F. Kautz IV" Date: Mon, 30 Mar 2015 11:40:21 -0700 Subject: [PATCH] API Bucket Handlers errors simplified --- pkg/api/api_bucket_handlers.go | 96 ++++------------------------------ 1 file changed, 11 insertions(+), 85 deletions(-) diff --git a/pkg/api/api_bucket_handlers.go b/pkg/api/api_bucket_handlers.go index ca2ad28fe..299269eb9 100644 --- a/pkg/api/api_bucket_handlers.go +++ b/pkg/api/api_bucket_handlers.go @@ -59,57 +59,19 @@ func (server *minioAPI) listObjectsHandler(w http.ResponseWriter, req *http.Requ } case drivers.BucketNotFound: { - // get error - error := getErrorCode(NoSuchBucket) - errorResponse := getErrorResponse(error, bucket) - - // write headers - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(error.HTTPStatusCode) - - // write body - encodedErrorResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedErrorResponse) + writeErrorResponse(w, req, NoSuchBucket, acceptsContentType, req.URL.Path) } case drivers.ImplementationError: { - // get error - error := getErrorCode(InternalError) - errorResponse := getErrorResponse(error, bucket) - - // write headers - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(error.HTTPStatusCode) - - // write body - encodedErrorResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedErrorResponse) + writeErrorResponse(w, req, InternalError, acceptsContentType, req.URL.Path) } case drivers.BucketNameInvalid: { - error := getErrorCode(InvalidBucketName) - errorResponse := getErrorResponse(error, bucket) - - // write headers - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(error.HTTPStatusCode) - - // write body - encodedErrorResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedErrorResponse) + writeErrorResponse(w, req, InvalidBucketName, acceptsContentType, req.URL.Path) } case drivers.ObjectNameInvalid: { - error := getErrorCode(NoSuchKey) - errorResponse := getErrorResponse(error, resources.Prefix) - - // write headers - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(error.HTTPStatusCode) - - // write body - encodedErrorResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedErrorResponse) + writeErrorResponse(w, req, NoSuchKey, acceptsContentType, req.URL.Path) } } } @@ -134,28 +96,13 @@ func (server *minioAPI) listBucketsHandler(w http.ResponseWriter, req *http.Requ } case drivers.BackendCorrupted: { - log.Error.Println(err) - // get error - errorCode := getErrorCode(InternalError) - errorResponse := getErrorResponse(errorCode, "") - // write headers - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(errorCode.HTTPStatusCode) - // write - encodedErrorResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedErrorResponse) + log.Error.Println("Backend Corrupted") + writeErrorResponse(w, req, InternalError, acceptsContentType, req.URL.Path) } default: { log.Error.Println(err) - // get error - errorCode := getErrorCode(InternalError) - errorResponse := getErrorResponse(errorCode, "") - // write headers - w.WriteHeader(errorCode.HTTPStatusCode) - // write body - encodedError := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedError) + writeErrorResponse(w, req, InternalError, acceptsContentType, req.URL.Path) } } } @@ -180,40 +127,19 @@ func (server *minioAPI) putBucketHandler(w http.ResponseWriter, req *http.Reques { w.Header().Set("Server", "Minio") w.Header().Set("Connection", "close") + w.WriteHeader(http.StatusOK) } case drivers.BucketNameInvalid: { - error := getErrorCode(InvalidBucketName) - errorResponse := getErrorResponse(error, bucket) - // write header - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(error.HTTPStatusCode) - // write object - encodedResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedResponse) + writeErrorResponse(w, req, InvalidBucketName, acceptsContentType, req.URL.Path) } case drivers.BucketExists: { - error := getErrorCode(BucketAlreadyExists) - errorResponse := getErrorResponse(error, bucket) - // write header - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(error.HTTPStatusCode) - // write object - encodedResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedResponse) + writeErrorResponse(w, req, InvalidBucketName, acceptsContentType, req.URL.Path) } case drivers.ImplementationError: { - // Embed errors log on server side - error := getErrorCode(InternalError) - errorResponse := getErrorResponse(error, bucket) - // write header - setCommonHeaders(w, getContentTypeString(acceptsContentType)) - w.WriteHeader(error.HTTPStatusCode) - // write object - encodedResponse := encodeErrorResponse(errorResponse, acceptsContentType) - w.Write(encodedResponse) + writeErrorResponse(w, req, InternalError, acceptsContentType, req.URL.Path) } } }