add other replica locations when assigning volumes

This commit is contained in:
Chris Lu
2021-09-05 23:32:25 -07:00
parent 7a13816e94
commit e93d4935e3
5 changed files with 519 additions and 406 deletions

View File

@@ -150,12 +150,20 @@ func (ms *MasterServer) Assign(ctx context.Context, req *master_pb.AssignRequest
fid, count, dnList, err := ms.Topo.PickForWrite(req.Count, option)
if err == nil {
dn := dnList.Head()
var replicas []*master_pb.AssignResponse_Replica
for _, r := range dnList.Rest() {
replicas = append(replicas, &master_pb.AssignResponse_Replica{
Url: r.Url(),
PublicUrl: r.PublicUrl,
})
}
return &master_pb.AssignResponse{
Fid: fid,
Url: dn.Url(),
PublicUrl: dn.PublicUrl,
Count: count,
Auth: string(security.GenJwt(ms.guard.SigningKey, ms.guard.ExpiresAfterSec, fid)),
Replicas: replicas,
}, nil
}
//glog.V(4).Infoln("waiting for volume growing...")