minio/pkg/drivers/errors.go

164 lines
4.2 KiB
Go
Raw Normal View History

2015-02-08 11:54:21 +01:00
/*
* Minimalist Object Storage, (C) 2015 Minio, Inc.
2015-02-08 11:54:21 +01:00
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package drivers
2015-01-21 08:16:06 +01:00
2015-03-06 05:32:04 +01:00
// BackendError - generic disk backend error
2015-01-28 03:43:55 +01:00
type BackendError struct {
Path string
}
2015-03-06 05:32:04 +01:00
// BackendCorrupted - path has corrupted data
type BackendCorrupted BackendError
2015-01-21 08:16:06 +01:00
2015-03-06 05:32:04 +01:00
// APINotImplemented - generic API not implemented error
type APINotImplemented struct {
API string
}
2015-03-06 05:32:04 +01:00
// GenericBucketError - generic bucket error
type GenericBucketError struct {
2015-01-21 21:44:09 +01:00
Bucket string
2015-01-21 09:50:23 +01:00
}
2015-03-06 05:32:04 +01:00
// GenericObjectError - generic object error
type GenericObjectError struct {
Bucket string
Object string
}
2015-03-06 05:32:04 +01:00
// ImplementationError - generic implementation error
type ImplementationError struct {
Bucket string
Object string
Err error
}
// DigestError - Generic Md5 error
type DigestError struct {
Bucket string
Key string
Md5 string
}
2015-03-06 05:32:04 +01:00
/// Bucket related errors
// BucketPolicyNotFound - missing bucket policy
2015-03-03 11:36:12 +01:00
type BucketPolicyNotFound GenericBucketError
2015-03-06 05:32:04 +01:00
// BucketNameInvalid - bucketname provided is invalid
2015-03-03 11:36:12 +01:00
type BucketNameInvalid GenericBucketError
2015-03-06 05:32:04 +01:00
// BucketExists - bucket already exists
2015-03-03 11:36:12 +01:00
type BucketExists GenericBucketError
2015-03-06 05:32:04 +01:00
// BucketNotFound - requested bucket not found
2015-03-03 11:36:12 +01:00
type BucketNotFound GenericBucketError
2015-03-06 05:32:04 +01:00
/// Object related errors
// ObjectNotFound - requested object not found
type ObjectNotFound GenericObjectError
// ObjectExists - object already exists
type ObjectExists GenericObjectError
// ObjectNameInvalid - object name provided is invalid
2015-03-03 11:36:12 +01:00
type ObjectNameInvalid GenericObjectError
// BadDigest - md5 mismatch from data received
type BadDigest DigestError
// InvalidDigest - md5 in request header invalid
type InvalidDigest DigestError
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e ImplementationError) Error() string {
error := ""
2015-03-06 05:32:04 +01:00
if e.Bucket != "" {
error = error + "Bucket: " + e.Bucket + " "
}
2015-03-06 05:32:04 +01:00
if e.Object != "" {
error = error + "Object: " + e.Object + " "
}
2015-03-06 05:32:04 +01:00
error = error + "Error: " + e.Err.Error()
return error
}
2015-03-06 05:32:04 +01:00
// EmbedError - wrapper function for error object
func EmbedError(bucket, object string, err error) ImplementationError {
return ImplementationError{
Bucket: bucket,
Object: object,
Err: err,
}
}
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e BucketPolicyNotFound) Error() string {
return "Bucket policy not found for: " + e.Bucket
}
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e ObjectNotFound) Error() string {
return "Object not Found: " + e.Bucket + "#" + e.Object
2015-01-21 08:16:06 +01:00
}
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e APINotImplemented) Error() string {
2015-03-06 06:07:19 +01:00
return "Api not implemented: " + e.API
}
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e ObjectExists) Error() string {
return "Object exists: " + e.Bucket + "#" + e.Object
2015-01-21 08:16:06 +01:00
}
2015-01-21 09:50:23 +01:00
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e BucketNameInvalid) Error() string {
return "Bucket name invalid: " + e.Bucket
2015-01-21 09:50:23 +01:00
}
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e BucketExists) Error() string {
return "Bucket exists: " + e.Bucket
2015-01-21 09:50:23 +01:00
}
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e BucketNotFound) Error() string {
return "Bucket not Found: " + e.Bucket
}
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e ObjectNameInvalid) Error() string {
return "Object name invalid: " + e.Bucket + "#" + e.Object
}
2015-01-28 03:43:55 +01:00
2015-03-03 11:36:12 +01:00
// Return string an error formatted as the given text
2015-03-06 05:32:04 +01:00
func (e BackendCorrupted) Error() string {
return "Backend corrupted: " + e.Path
2015-01-28 03:43:55 +01:00
}
// Return string an error formatted as the given text
func (e BadDigest) Error() string {
return "Md5 provided " + e.Md5 + " mismatches for: " + e.Bucket + "#" + e.Key
}
// Return string an error formatted as the given text
func (e InvalidDigest) Error() string {
return "Md5 provided " + e.Md5 + " is invalid"
}