mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-11-30 23:29:02 +08:00
27c74a7e66
change replication_type to ReplicaPlacement, hopefully cleaner code works for 9 possible ReplicaPlacement xyz x : number of copies on other data centers y : number of copies on other racks z : number of copies on current rack x y z each can be 0,1,2 Minor: weed server "-mdir" default to "-dir" if empty
32 lines
638 B
Go
32 lines
638 B
Go
package operation
|
|
|
|
import (
|
|
"code.google.com/p/weed-fs/go/glog"
|
|
"code.google.com/p/weed-fs/go/util"
|
|
"encoding/json"
|
|
)
|
|
|
|
type ClusterStatusResult struct {
|
|
IsLeader bool
|
|
Leader string
|
|
Peers []string
|
|
}
|
|
|
|
func ListMasters(server string) ([]string, error) {
|
|
jsonBlob, err := util.Get("http://" + server + "/cluster/status")
|
|
glog.V(2).Info("list masters result :", string(jsonBlob))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var ret ClusterStatusResult
|
|
err = json.Unmarshal(jsonBlob, &ret)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
masters := ret.Peers
|
|
if ret.IsLeader {
|
|
masters = append(masters, ret.Leader)
|
|
}
|
|
return masters, nil
|
|
}
|