diff options
| author | chrislu <chris.lu@gmail.com> | 2021-12-22 16:05:43 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2021-12-22 16:05:43 -0800 |
| commit | 2bc6fa90ff8a1f3aef8318cb90712c3f23729f7f (patch) | |
| tree | baa3098898d9600c0632fd8e5d1a056a712c71a2 /weed/server | |
| parent | 0ec7bc6710350dec395b33ba44589ee1875586c0 (diff) | |
| parent | 4e73705533c1a8510cd6b3308af37fc851803ed3 (diff) | |
| download | seaweedfs-2bc6fa90ff8a1f3aef8318cb90712c3f23729f7f.tar.xz seaweedfs-2bc6fa90ff8a1f3aef8318cb90712c3f23729f7f.zip | |
Merge branch 'master' of https://github.com/chrislusf/seaweedfs
Diffstat (limited to 'weed/server')
| -rw-r--r-- | weed/server/filer_grpc_server.go | 5 | ||||
| -rw-r--r-- | weed/server/filer_grpc_server_remote.go | 2 | ||||
| -rw-r--r-- | weed/server/filer_server.go | 1 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_write.go | 8 |
4 files changed, 10 insertions, 6 deletions
diff --git a/weed/server/filer_grpc_server.go b/weed/server/filer_grpc_server.go index 1df15d69f..a0385f487 100644 --- a/weed/server/filer_grpc_server.go +++ b/weed/server/filer_grpc_server.go @@ -218,6 +218,7 @@ func (fs *FilerServer) cleanupChunks(fullpath string, existingEntry *filer.Entry newEntry.Attributes.DiskType, "", "", + "", ) // ignore readonly error for capacity needed to manifestize chunks, err = filer.MaybeManifestize(fs.saveAsChunk(so), chunks) if err != nil { @@ -259,7 +260,7 @@ func (fs *FilerServer) AppendToEntry(ctx context.Context, req *filer_pb.AppendTo } entry.Chunks = append(entry.Chunks, req.Chunks...) - so, err := fs.detectStorageOption(string(fullpath), entry.Collection, entry.Replication, entry.TtlSec, entry.DiskType, "", "") + so, err := fs.detectStorageOption(string(fullpath), entry.Collection, entry.Replication, entry.TtlSec, entry.DiskType, "", "", "") if err != nil { glog.Warningf("detectStorageOption: %v", err) return &filer_pb.AppendToEntryResponse{}, err @@ -289,7 +290,7 @@ func (fs *FilerServer) DeleteEntry(ctx context.Context, req *filer_pb.DeleteEntr func (fs *FilerServer) AssignVolume(ctx context.Context, req *filer_pb.AssignVolumeRequest) (resp *filer_pb.AssignVolumeResponse, err error) { - so, err := fs.detectStorageOption(req.Path, req.Collection, req.Replication, req.TtlSec, req.DiskType, req.DataCenter, req.Rack) + so, err := fs.detectStorageOption(req.Path, req.Collection, req.Replication, req.TtlSec, req.DiskType, req.DataCenter, req.Rack, req.DataNode) if err != nil { glog.V(3).Infof("AssignVolume: %v", err) return &filer_pb.AssignVolumeResponse{Error: fmt.Sprintf("assign volume: %v", err)}, nil diff --git a/weed/server/filer_grpc_server_remote.go b/weed/server/filer_grpc_server_remote.go index 59b0c793b..7f31d8cc1 100644 --- a/weed/server/filer_grpc_server_remote.go +++ b/weed/server/filer_grpc_server_remote.go @@ -64,7 +64,7 @@ func (fs *FilerServer) CacheRemoteObjectToLocalCluster(ctx context.Context, req } // detect storage option - so, err := fs.detectStorageOption(req.Directory, "", "", 0, "", "", "") + so, err := fs.detectStorageOption(req.Directory, "", "", 0, "", "", "", "") if err != nil { return resp, err } diff --git a/weed/server/filer_server.go b/weed/server/filer_server.go index cee15848a..c9343a9bf 100644 --- a/weed/server/filer_server.go +++ b/weed/server/filer_server.go @@ -56,6 +56,7 @@ type FilerOption struct { DirListingLimit int DataCenter string Rack string + DataNode string DefaultLevelDbDir string DisableHttp bool Host pb.ServerAddress diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go index 39d983ab7..46b0302aa 100644 --- a/weed/server/filer_server_handlers_write.go +++ b/weed/server/filer_server_handlers_write.go @@ -65,6 +65,7 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request, conte query.Get("disk"), query.Get("dataCenter"), query.Get("rack"), + query.Get("dataNode"), ) if err != nil { if err == ErrReadOnly { @@ -115,7 +116,7 @@ func (fs *FilerServer) DeleteHandler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusNoContent) } -func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication string, ttlSeconds int32, diskType, dataCenter, rack string) (*operation.StorageOption, error) { +func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication string, ttlSeconds int32, diskType, dataCenter, rack, dataNode string) (*operation.StorageOption, error) { rule := fs.filer.FilerConf.MatchStorageRule(requestURI) @@ -143,6 +144,7 @@ func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication Collection: util.Nvl(qCollection, rule.Collection, bucketDefaultCollection, fs.option.Collection), DataCenter: util.Nvl(dataCenter, fs.option.DataCenter), Rack: util.Nvl(rack, fs.option.Rack), + DataNode: util.Nvl(dataNode, fs.option.DataNode), TtlSeconds: ttlSeconds, DiskType: util.Nvl(diskType, rule.DiskType), Fsync: fsync || rule.Fsync, @@ -150,12 +152,12 @@ func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication }, nil } -func (fs *FilerServer) detectStorageOption0(requestURI, qCollection, qReplication string, qTtl string, diskType string, dataCenter, rack string) (*operation.StorageOption, error) { +func (fs *FilerServer) detectStorageOption0(requestURI, qCollection, qReplication string, qTtl string, diskType string, dataCenter, rack, dataNode string) (*operation.StorageOption, error) { ttl, err := needle.ReadTTL(qTtl) if err != nil { glog.Errorf("fail to parse ttl %s: %v", qTtl, err) } - return fs.detectStorageOption(requestURI, qCollection, qReplication, int32(ttl.Minutes())*60, diskType, dataCenter, rack) + return fs.detectStorageOption(requestURI, qCollection, qReplication, int32(ttl.Minutes())*60, diskType, dataCenter, rack, dataNode) } |
