1
0
Fork 0
mirror of https://github.com/chrislusf/seaweedfs synced 2024-09-18 15:00:53 +02:00

added typed join result

This commit is contained in:
Chris Lu 2014-04-16 17:29:58 -07:00
parent da0480ad72
commit 9653a54766
4 changed files with 16 additions and 9 deletions

View file

@ -0,0 +1,8 @@
package operation
import ()
type JoinResult struct {
VolumeSizeLimit uint64 `json:"VolumeSizeLimit,omitempty"`
Error string `json:"error,omitempty"`
}

View file

@ -251,10 +251,6 @@ func (s *Store) Status() []*VolumeInfo {
return stats
}
type JoinResult struct {
VolumeSizeLimit uint64
}
func (s *Store) SetDataCenter(dataCenter string) {
s.dataCenter = dataCenter
}
@ -303,10 +299,13 @@ func (s *Store) Join() error {
s.masterNodes.reset()
return err
}
var ret JoinResult
var ret operation.JoinResult
if err := json.Unmarshal(jsonBlob, &ret); err != nil {
return err
}
if ret.Error != "" {
return errors.New(ret.Error)
}
s.volumeSizeLimit = ret.VolumeSizeLimit
s.connected = true
return nil

View file

@ -1,6 +1,7 @@
package weed_server
import (
"code.google.com/p/weed-fs/go/operation"
"code.google.com/p/weed-fs/go/storage"
"code.google.com/p/weed-fs/go/topology"
"code.google.com/p/weed-fs/go/util"
@ -39,14 +40,12 @@ func (ms *MasterServer) dirJoinHandler(w http.ResponseWriter, r *http.Request) {
publicUrl := r.FormValue("publicUrl")
volumes := new([]storage.VolumeInfo)
if err := json.Unmarshal([]byte(r.FormValue("volumes")), volumes); err != nil {
writeJsonQuiet(w, r, map[string]string{"error": "Cannot unmarshal \"volumes\": " + err.Error()})
writeJsonQuiet(w, r, operation.JoinResult{Error: "Cannot unmarshal \"volumes\": " + err.Error()})
return
}
debug(s, "volumes", r.FormValue("volumes"))
ms.Topo.RegisterVolumes(init, *volumes, ip, port, publicUrl, maxVolumeCount, r.FormValue("dataCenter"), r.FormValue("rack"))
m := make(map[string]interface{})
m["VolumeSizeLimit"] = uint64(ms.volumeSizeLimitMB) * 1024 * 1024
writeJsonQuiet(w, r, m)
writeJsonQuiet(w, r, operation.JoinResult{VolumeSizeLimit: uint64(ms.volumeSizeLimitMB) * 1024 * 1024})
}
func (ms *MasterServer) dirStatusHandler(w http.ResponseWriter, r *http.Request) {

View file

@ -57,6 +57,7 @@ func NewVolumeServer(r *http.ServeMux, ip string, port int, publicUrl string, fo
glog.V(0).Infoln("Reconnected with master")
}
} else {
glog.V(4).Infoln("Failing to talk with master:", err.Error())
if connected {
connected = false
}