bucket: refactor policies and fix bugs related to enforcing policies. (#2766)

This patch also addresses the problem of double caching at
object layer once at XL and another at handler layer.
This commit is contained in:
Harshavardhana
2016-09-22 23:47:48 -07:00
committed by GitHub
parent aa579bbc20
commit ca5ca8332b
10 changed files with 46 additions and 148 deletions
+10 -5
View File
@@ -16,6 +16,11 @@
package cmd
import "errors"
// errServerNotInitialized - server not initialized.
var errServerNotInitialized = errors.New("Server not initialized, please try again.")
/// Auth operations
// Login - login handler.
@@ -59,7 +64,7 @@ type HealListReply struct {
func (c *controllerAPIHandlers) ListObjectsHealHandler(args *HealListArgs, reply *HealListReply) error {
objAPI := c.ObjectAPI()
if objAPI == nil {
return errVolumeBusy
return errServerNotInitialized
}
if !isRPCTokenValid(args.Token) {
return errInvalidToken
@@ -91,11 +96,11 @@ type HealObjectArgs struct {
// HealObjectReply - reply by HealObject RPC.
type HealObjectReply struct{}
// HealObject - heal the object.
// HealObject - heals an object, returns nil error upon success.
func (c *controllerAPIHandlers) HealObjectHandler(args *HealObjectArgs, reply *GenericReply) error {
objAPI := c.ObjectAPI()
if objAPI == nil {
return errVolumeBusy
return errServerNotInitialized
}
if !isRPCTokenValid(args.Token) {
return errInvalidToken
@@ -103,11 +108,11 @@ func (c *controllerAPIHandlers) HealObjectHandler(args *HealObjectArgs, reply *G
return objAPI.HealObject(args.Bucket, args.Object)
}
// HealObject - heal the object.
// HealDiskMetadataHandler - heals disks metadata, returns nil error upon success.
func (c *controllerAPIHandlers) HealDiskMetadataHandler(args *GenericArgs, reply *GenericReply) error {
objAPI := c.ObjectAPI()
if objAPI == nil {
return errVolumeBusy
return errServerNotInitialized
}
if !isRPCTokenValid(args.Token) {
return errInvalidToken