/* * Minio Cloud Storage, (C) 2017 Minio, Inc. * * 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 cmd import ( "io" "time" "github.com/minio/minio-go/pkg/policy" "github.com/minio/minio/pkg/errors" "github.com/minio/minio/pkg/hash" "github.com/minio/minio/pkg/madmin" ) // GatewayUnsupported list of unsupported call stubs for gateway. type GatewayUnsupported struct{} // ListMultipartUploads lists all multipart uploads. func (a GatewayUnsupported) ListMultipartUploads(bucket string, prefix string, keyMarker string, uploadIDMarker string, delimiter string, maxUploads int) (lmi ListMultipartsInfo, err error) { return lmi, errors.Trace(NotImplemented{}) } // NewMultipartUpload upload object in multiple parts func (a GatewayUnsupported) NewMultipartUpload(bucket string, object string, metadata map[string]string) (uploadID string, err error) { return "", errors.Trace(NotImplemented{}) } // CopyObjectPart copy part of object to uploadID for another object func (a GatewayUnsupported) CopyObjectPart(srcBucket, srcObject, destBucket, destObject, uploadID string, partID int, startOffset, length int64, metadata map[string]string, srcETag string) (pi PartInfo, err error) { return pi, errors.Trace(NotImplemented{}) } // PutObjectPart puts a part of object in bucket func (a GatewayUnsupported) PutObjectPart(bucket string, object string, uploadID string, partID int, data *hash.Reader) (pi PartInfo, err error) { return pi, errors.Trace(NotImplemented{}) } // ListObjectParts returns all object parts for specified object in specified bucket func (a GatewayUnsupported) ListObjectParts(bucket string, object string, uploadID string, partNumberMarker int, maxParts int) (lpi ListPartsInfo, err error) { return lpi, errors.Trace(NotImplemented{}) } // AbortMultipartUpload aborts a ongoing multipart upload func (a GatewayUnsupported) AbortMultipartUpload(bucket string, object string, uploadID string) error { return errors.Trace(NotImplemented{}) } // CompleteMultipartUpload completes ongoing multipart upload and finalizes object func (a GatewayUnsupported) CompleteMultipartUpload(bucket string, object string, uploadID string, uploadedParts []CompletePart) (oi ObjectInfo, err error) { return oi, errors.Trace(NotImplemented{}) } // SetBucketPolicies sets policy on bucket func (a GatewayUnsupported) SetBucketPolicies(bucket string, policyInfo policy.BucketAccessPolicy) error { return errors.Trace(NotImplemented{}) } // GetBucketPolicies will get policy on bucket func (a GatewayUnsupported) GetBucketPolicies(bucket string) (bal policy.BucketAccessPolicy, err error) { return bal, errors.Trace(NotImplemented{}) } // DeleteBucketPolicies deletes all policies on bucket func (a GatewayUnsupported) DeleteBucketPolicies(bucket string) error { return errors.Trace(NotImplemented{}) } // HealBucket - Not implemented stub func (a GatewayUnsupported) HealBucket(bucket string, dryRun bool) ([]madmin.HealResultItem, error) { return nil, errors.Trace(NotImplemented{}) } // ListBucketsHeal - Not implemented stub func (a GatewayUnsupported) ListBucketsHeal() (buckets []BucketInfo, err error) { return nil, errors.Trace(NotImplemented{}) } // HealObject - Not implemented stub func (a GatewayUnsupported) HealObject(bucket, object string, dryRun bool) (h madmin.HealResultItem, e error) { return h, errors.Trace(NotImplemented{}) } // ListObjectsV2 - Not implemented stub func (a GatewayUnsupported) ListObjectsV2(bucket, prefix, continuationToken, delimiter string, maxKeys int, fetchOwner bool, startAfter string) (result ListObjectsV2Info, err error) { return result, errors.Trace(NotImplemented{}) } // ListObjectsHeal - Not implemented stub func (a GatewayUnsupported) ListObjectsHeal(bucket, prefix, marker, delimiter string, maxKeys int) (loi ListObjectsInfo, e error) { return loi, errors.Trace(NotImplemented{}) } // AnonListObjects - List objects anonymously func (a GatewayUnsupported) AnonListObjects(bucket string, prefix string, marker string, delimiter string, maxKeys int) (loi ListObjectsInfo, err error) { return loi, errors.Trace(NotImplemented{}) } // AnonListObjectsV2 - List objects in V2 mode, anonymously func (a GatewayUnsupported) AnonListObjectsV2(bucket, prefix, continuationToken, delimiter string, maxKeys int, fetchOwner bool, startAfter string) (loi ListObjectsV2Info, err error) { return loi, errors.Trace(NotImplemented{}) } // AnonGetBucketInfo - Get bucket metadata anonymously. func (a GatewayUnsupported) AnonGetBucketInfo(bucket string) (bi BucketInfo, err error) { return bi, errors.Trace(NotImplemented{}) } // AnonPutObject creates a new object anonymously with the incoming data, func (a GatewayUnsupported) AnonPutObject(bucket, object string, data *hash.Reader, metadata map[string]string) (ObjectInfo, error) { return ObjectInfo{}, errors.Trace(NotImplemented{}) } // AnonGetObject downloads object anonymously. func (a GatewayUnsupported) AnonGetObject(bucket, object string, startOffset int64, length int64, writer io.Writer, etag string) (err error) { return errors.Trace(NotImplemented{}) } // AnonGetObjectInfo returns stat information about an object anonymously. func (a GatewayUnsupported) AnonGetObjectInfo(bucket, object string) (objInfo ObjectInfo, err error) { return objInfo, errors.Trace(NotImplemented{}) } // CopyObject copies a blob from source container to destination container. func (a GatewayUnsupported) CopyObject(srcBucket string, srcObject string, destBucket string, destObject string, metadata map[string]string, srcEtag string) (objInfo ObjectInfo, err error) { return objInfo, errors.Trace(NotImplemented{}) } // Locking operations // ListLocks lists namespace locks held in object layer func (a GatewayUnsupported) ListLocks(bucket, prefix string, duration time.Duration) ([]VolumeLockInfo, error) { return []VolumeLockInfo{}, errors.Trace(NotImplemented{}) } // ClearLocks clears namespace locks held in object layer func (a GatewayUnsupported) ClearLocks([]VolumeLockInfo) error { return errors.Trace(NotImplemented{}) }