Browse Source

fix volume_layout bug, add new feature for volume etag write,filer pass through query params'

pull/333/head
霍晓栋 9 years ago
parent
commit
079fdbad13
  1. 7
      weed/server/filer_server_handlers_read.go
  2. 2
      weed/server/volume_server_handlers_write.go
  3. 4
      weed/topology/volume_layout.go

7
weed/server/filer_server_handlers_read.go

@ -70,6 +70,13 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request,
return
}
u, _ := url.Parse(urlString)
q := u.Query()
for key, values := range r.URL.Query() {
for _, value := range values {
q.Add(key, value)
}
}
u.RawQuery = q.Encode()
request := &http.Request{
Method: r.Method,
URL: u,

2
weed/server/volume_server_handlers_write.go

@ -42,6 +42,8 @@ func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) {
ret.Name = string(needle.Name)
}
ret.Size = size
etag := needle.Etag()
w.Header().Set("Etag", etag)
writeJsonQuiet(w, r, httpStatus, ret)
}

4
weed/topology/volume_layout.go

@ -79,11 +79,11 @@ func (vl *VolumeLayout) addToWritable(vid storage.VolumeId) {
}
func (vl *VolumeLayout) isOversized(v *storage.VolumeInfo) bool {
return uint64(v.Size) < vl.volumeSizeLimit
return uint64(v.Size) >= vl.volumeSizeLimit
}
func (vl *VolumeLayout) isWritable(v *storage.VolumeInfo) bool {
return vl.isOversized(v) &&
return !vl.isOversized(v) &&
v.Version == storage.CurrentVersion &&
!v.ReadOnly
}

Loading…
Cancel
Save