Update comments across the codebase

This commit is contained in:
Harshavardhana
2015-03-03 02:36:12 -08:00
parent 137584d658
commit 3a3c8645fc
24 changed files with 198 additions and 346 deletions

View File

@@ -47,6 +47,7 @@ type EncoderParams struct {
Technique EncoderTechnique
}
// populate new header
func NewHeader(key string, part uint8, metadata Metadata, encoderParams EncoderParams) DataHeader {
header := DataHeader{}
header.Key = key
@@ -61,6 +62,7 @@ func NewHeader(key string, part uint8, metadata Metadata, encoderParams EncoderP
return header
}
// validate populated header
func ValidateHeader(header DataHeader) bool {
if header.Key == "" || header.Part < 0 || len(header.Metadata) < 2 {
return false
@@ -73,6 +75,7 @@ func ValidateHeader(header DataHeader) bool {
return true
}
// Write data, returns error upon any failure
func WriteData(target io.Writer, header DataHeader, data io.Reader) error {
if !ValidateHeader(header) {
return fmt.Errorf("Invalid header")

View File

@@ -73,6 +73,7 @@ type DonutFrameFooter struct {
type Data bytes.Buffer
// Write Donut format to input io.Writer, returns error upon any failure
func WriteFrame(target io.Writer, reader io.Reader, length uint64) error {
// write header
header := DonutFrameHeader{

View File

@@ -29,7 +29,6 @@ import (
"sync"
mstorage "github.com/minio-io/minio/pkg/storage"
"github.com/minio-io/minio/pkg/utils/helpers"
"github.com/minio-io/minio/pkg/utils/policy"
)
@@ -42,6 +41,7 @@ type SerializedMetadata struct {
ContentType string
}
// Start filesystem channel
func Start(root string) (chan<- string, <-chan error, *storage) {
ctrlChannel := make(chan string)
errorChannel := make(chan error)
@@ -67,7 +67,9 @@ func appendUniq(slice []string, i string) []string {
return append(slice, i)
}
// Bucket Operations
/// Bucket Operations
// GET - Service
func (storage *storage) ListBuckets() ([]mstorage.BucketMetadata, error) {
files, err := ioutil.ReadDir(storage.root)
if err != nil {
@@ -92,6 +94,7 @@ func (storage *storage) ListBuckets() ([]mstorage.BucketMetadata, error) {
return metadataList, nil
}
// PUT - Bucket
func (storage *storage) StoreBucket(bucket string) error {
storage.lock.Lock()
defer storage.lock.Unlock()
@@ -119,6 +122,7 @@ func (storage *storage) StoreBucket(bucket string) error {
return nil
}
// GET - Bucket policy
func (storage *storage) GetBucketPolicy(bucket string) (interface{}, error) {
storage.lock.Lock()
defer storage.lock.Unlock()
@@ -163,6 +167,7 @@ func (storage *storage) GetBucketPolicy(bucket string) (interface{}, error) {
}
// PUT - Bucket policy
func (storage *storage) StoreBucketPolicy(bucket string, policy interface{}) error {
storage.lock.Lock()
defer storage.lock.Unlock()
@@ -203,8 +208,9 @@ func (storage *storage) StoreBucketPolicy(bucket string, policy interface{}) err
return nil
}
// Object Operations
/// Object Operations
// GET Object
func (storage *storage) CopyObjectToWriter(w io.Writer, bucket string, object string) (int64, error) {
// validate bucket
if mstorage.IsValidBucket(bucket) == false {
@@ -247,6 +253,7 @@ func (storage *storage) CopyObjectToWriter(w io.Writer, bucket string, object st
return count, nil
}
// HEAD Object
func (storage *storage) GetObjectMetadata(bucket string, object string) (mstorage.ObjectMetadata, error) {
if mstorage.IsValidBucket(bucket) == false {
return mstorage.ObjectMetadata{}, mstorage.BucketNameInvalid{Bucket: bucket}
@@ -340,10 +347,16 @@ func delimiter(path, delimiter string) string {
type ByObjectKey []mstorage.ObjectMetadata
func (b ByObjectKey) Len() int { return len(b) }
func (b ByObjectKey) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
// Len
func (b ByObjectKey) Len() int { return len(b) }
// Swap
func (b ByObjectKey) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
// Less
func (b ByObjectKey) Less(i, j int) bool { return b[i].Key < b[j].Key }
// GET bucket (list objects)
func (storage *storage) ListObjects(bucket string, resources mstorage.BucketResourcesMetadata) ([]mstorage.ObjectMetadata, mstorage.BucketResourcesMetadata, error) {
p := Path{}
p.files = make(map[string]os.FileInfo)
@@ -388,7 +401,7 @@ func (storage *storage) ListObjects(bucket string, resources mstorage.BucketReso
}
metadataList = append(metadataList, metadata)
case delimited != "":
resources.CommonPrefixes = helpers.appendUniq(resources.CommonPrefixes, delimited)
resources.CommonPrefixes = appendUniq(resources.CommonPrefixes, delimited)
}
case resources.Delimiter != "" && strings.HasPrefix(name, resources.Prefix):
delimited := delimiter(name, resources.Delimiter)
@@ -403,7 +416,7 @@ func (storage *storage) ListObjects(bucket string, resources mstorage.BucketReso
}
metadataList = append(metadataList, metadata)
case delimited != "":
resources.CommonPrefixes = helpers.AppendUniqStr(resources.CommonPrefixes, delimited)
resources.CommonPrefixes = appendUniq(resources.CommonPrefixes, delimited)
}
case strings.HasPrefix(name, resources.Prefix):
metadata := mstorage.ObjectMetadata{
@@ -422,6 +435,7 @@ ret:
return metadataList, resources, nil
}
// PUT object
func (storage *storage) StoreObject(bucket, key, contentType string, data io.Reader) error {
// TODO Commits should stage then move instead of writing directly
storage.lock.Lock()

View File

@@ -67,6 +67,7 @@ type BucketResourcesMetadata struct {
Notification string
}
// Verify Bucket name in accordance with http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html
func IsValidBucket(bucket string) bool {
if len(bucket) < 3 || len(bucket) > 63 {
return false
@@ -82,6 +83,7 @@ func IsValidBucket(bucket string) bool {
return match
}
// Verify Object name in accordance with http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
func IsValidObject(object string) bool {
if len(object) > 1024 || len(object) == 0 {
return false

View File

@@ -24,6 +24,7 @@ import (
. "gopkg.in/check.v1"
)
// API test suite
func APITestSuite(c *C, create func() Storage) {
testCreateBucket(c, create)
testMultipleObjectCreation(c, create)

View File

@@ -51,6 +51,14 @@ type ImplementationError struct {
Err error
}
type BackendCorrupted BackendError
type BucketPolicyNotFound GenericBucketError
type BucketNameInvalid GenericBucketError
type BucketExists GenericBucketError
type BucketNotFound GenericBucketError
type ObjectNameInvalid GenericObjectError
// Return string an error formatted as the given text
func (self ImplementationError) Error() string {
error := ""
if self.Bucket != "" {
@@ -63,6 +71,7 @@ func (self ImplementationError) Error() string {
return error
}
// Wrapper function for error object
func EmbedError(bucket, object string, err error) ImplementationError {
return ImplementationError{
Bucket: bucket,
@@ -71,45 +80,47 @@ func EmbedError(bucket, object string, err error) ImplementationError {
}
}
type BackendCorrupted BackendError
type BucketPolicyNotFound GenericBucketError
type BucketNameInvalid GenericBucketError
type BucketExists GenericBucketError
type BucketNotFound GenericBucketError
type ObjectNameInvalid GenericObjectError
// Return string an error formatted as the given text
func (self BucketPolicyNotFound) Error() string {
return "Bucket policy not found for: " + self.Bucket
}
// Return string an error formatted as the given text
func (self ObjectNotFound) Error() string {
return "Object not Found: " + self.Bucket + "#" + self.Object
}
// Return string an error formatted as the given text
func (self ApiNotImplemented) Error() string {
return "Api not implemented: " + self.Api
}
// Return string an error formatted as the given text
func (self ObjectExists) Error() string {
return "Object exists: " + self.Bucket + "#" + self.Key
}
// Return string an error formatted as the given text
func (self BucketNameInvalid) Error() string {
return "Bucket name invalid: " + self.Bucket
}
// Return string an error formatted as the given text
func (self BucketExists) Error() string {
return "Bucket exists: " + self.Bucket
}
// Return string an error formatted as the given text
func (self BucketNotFound) Error() string {
return "Bucket not Found: " + self.Bucket
}
// Return string an error formatted as the given text
func (self ObjectNameInvalid) Error() string {
return "Object name invalid: " + self.Bucket + "#" + self.Object
}
// Return string an error formatted as the given text
func (self BackendCorrupted) Error() string {
return "Backend corrupted: " + self.Path
}