From 007c4a196519066d04924f3cd5ba56a1598d0856 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 10 Jul 2018 00:20:50 -0700 Subject: [PATCH] alt request for dc preferred requests --- weed/server/filer_grpc_server.go | 6 +++--- weed/server/filer_server_handlers_write.go | 13 ++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/weed/server/filer_grpc_server.go b/weed/server/filer_grpc_server.go index 96b08eeda..3242057f8 100644 --- a/weed/server/filer_grpc_server.go +++ b/weed/server/filer_grpc_server.go @@ -173,7 +173,7 @@ func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVol ttlStr = strconv.Itoa(int(req.TtlSec)) } - var backupRequest *operation.VolumeAssignRequest + var altRequest *operation.VolumeAssignRequest assignRequest := &operation.VolumeAssignRequest{ Count: uint64(req.Count), @@ -183,7 +183,7 @@ func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVol DataCenter: fs.option.DataCenter, } if fs.option.DataCenter != "" { - backupRequest = &operation.VolumeAssignRequest{ + altRequest = &operation.VolumeAssignRequest{ Count: uint64(req.Count), Replication: req.Replication, Collection: req.Collection, @@ -191,7 +191,7 @@ func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVol DataCenter: "", } } - assignResult, err := operation.Assign(fs.filer.GetMaster(), assignRequest, backupRequest) + assignResult, err := operation.Assign(fs.filer.GetMaster(), assignRequest, altRequest) if err != nil { return nil, fmt.Errorf("assign volume: %v", err) } diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go index 1f8bda51e..83e62a8e7 100644 --- a/weed/server/filer_server_handlers_write.go +++ b/weed/server/filer_server_handlers_write.go @@ -47,8 +47,19 @@ func (fs *FilerServer) assignNewFileInfo(w http.ResponseWriter, r *http.Request, Replication: replication, Collection: collection, Ttl: r.URL.Query().Get("ttl"), + DataCenter: fs.option.DataCenter, } - assignResult, ae := operation.Assign(fs.filer.GetMaster(), ar) + var altRequest *operation.VolumeAssignRequest + if fs.option.DataCenter != "" { + altRequest = &operation.VolumeAssignRequest{ + Count: 1, + Replication: replication, + Collection: collection, + Ttl: r.URL.Query().Get("ttl"), + DataCenter: "", + } + } + assignResult, ae := operation.Assign(fs.filer.GetMaster(), ar, altRequest) if ae != nil { glog.V(0).Infoln("failing to assign a file id", ae.Error()) writeJsonError(w, r, http.StatusInternalServerError, ae)