|
|
|
@ -516,16 +516,16 @@ func (s3a *S3ApiServer) isVersioningConfigured(bucket string) (bool, error) { |
|
|
|
|
|
|
|
// getVersioningState returns the detailed versioning state for a bucket
|
|
|
|
func (s3a *S3ApiServer) getVersioningState(bucket string) (string, error) { |
|
|
|
config, errCode := s3a.getBucketConfig(bucket) |
|
|
|
if errCode != s3err.ErrNone { |
|
|
|
if errCode == s3err.ErrNoSuchBucket { |
|
|
|
// Signal to callers that the bucket does not exist so they can
|
|
|
|
// decide whether to auto-create it (e.g., in PUT handlers).
|
|
|
|
return "", filer_pb.ErrNotFound |
|
|
|
} |
|
|
|
glog.Errorf("getVersioningState: failed to get bucket config for %s: %v", bucket, errCode) |
|
|
|
return "", fmt.Errorf("failed to get bucket config: %v", errCode) |
|
|
|
} |
|
|
|
config, errCode := s3a.getBucketConfig(bucket) |
|
|
|
if errCode != s3err.ErrNone { |
|
|
|
if errCode == s3err.ErrNoSuchBucket { |
|
|
|
// Signal to callers that the bucket does not exist so they can
|
|
|
|
// decide whether to auto-create it (e.g., in PUT handlers).
|
|
|
|
return "", filer_pb.ErrNotFound |
|
|
|
} |
|
|
|
glog.Errorf("getVersioningState: failed to get bucket config for %s: %v", bucket, errCode) |
|
|
|
return "", fmt.Errorf("failed to get bucket config: %v", errCode) |
|
|
|
} |
|
|
|
|
|
|
|
// If object lock is enabled, versioning must be enabled regardless of explicit setting
|
|
|
|
if config.ObjectLockConfig != nil { |
|
|
|
|