mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
added typed join result
This commit is contained in:
parent
da0480ad72
commit
9653a54766
8
go/operation/data_struts.go
Normal file
8
go/operation/data_struts.go
Normal file
|
@ -0,0 +1,8 @@
|
|||
package operation
|
||||
|
||||
import ()
|
||||
|
||||
type JoinResult struct {
|
||||
VolumeSizeLimit uint64 `json:"VolumeSizeLimit,omitempty"`
|
||||
Error string `json:"error,omitempty"`
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue