Use Peer RPC to propagate bucket policy changes (#2891)

This commit is contained in:
Aditya Manthramurthy
2016-10-13 09:19:04 -07:00
committed by Harshavardhana
parent 55f6828750
commit 0aabc1d8d9
8 changed files with 192 additions and 43 deletions

View File

@@ -118,6 +118,32 @@ func (s3 *s3PeerAPIHandlers) Event(args *EventArgs, reply *GenericReply) error {
return errServerNotInitialized
}
err := globalEventNotifier.SendListenerEvent(args.Arn, args.Event)
return err
return globalEventNotifier.SendListenerEvent(args.Arn, args.Event)
}
// SetBPPArgs - Arguments collection for SetBucketPolicyPeer RPC call
type SetBPPArgs struct {
// For Auth
GenericArgs
Bucket string
// policy config
PCh policyChange
}
// tell receiving server to update a bucket policy
func (s3 *s3PeerAPIHandlers) SetBucketPolicyPeer(args SetBPPArgs, reply *GenericReply) error {
// check auth
if !isRPCTokenValid(args.Token) {
return errInvalidToken
}
// check if object layer is available.
objAPI := s3.ObjectAPI()
if objAPI == nil {
return errServerNotInitialized
}
return globalBucketPolicies.SetBucketPolicy(args.Bucket, args.PCh)
}