minio/pkg/storage/donut/bucket.go

39 lines
946 B
Go
Raw Normal View History

package donut
2015-03-24 22:58:03 -04:00
import (
"errors"
2015-03-25 20:05:23 -04:00
"github.com/minio-io/iodine"
2015-03-24 22:58:03 -04:00
"strconv"
"strings"
)
type donutBucket struct {
nodes []string
objects map[string][]byte
}
// GetNodes - get list of associated nodes for a given bucket
2015-03-25 20:05:23 -04:00
func (b donutBucket) GetNodes() ([]string, *iodine.Error) {
var nodes []string
2015-03-22 05:53:21 -04:00
for _, node := range b.nodes {
nodes = append(nodes, node)
}
return nodes, nil
}
2015-03-24 22:58:03 -04:00
2015-03-25 20:05:23 -04:00
func (b donutBucket) AddNode(nodeID, bucketID string) *iodine.Error {
2015-03-24 22:58:03 -04:00
tokens := strings.Split(bucketID, ":")
if len(tokens) != 3 {
2015-03-25 20:05:23 -04:00
return iodine.New(errors.New("Bucket ID malformed: "+bucketID), map[string]string{"nodeID": nodeID, "bucketID": bucketID})
2015-03-24 22:58:03 -04:00
}
// bucketName := tokens[0]
// aggregate := tokens[1]
// aggregate := "0"
part, err := strconv.Atoi(tokens[2])
if err != nil {
2015-03-25 20:05:23 -04:00
return iodine.New(errors.New("Part malformed: "+tokens[2]), map[string]string{"nodeID": nodeID, "bucketID": bucketID})
2015-03-24 22:58:03 -04:00
}
b.nodes[part] = nodeID
return nil
}