diff options
Diffstat (limited to 'go/operation/list_masters.go')
| -rw-r--r-- | go/operation/list_masters.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/go/operation/list_masters.go b/go/operation/list_masters.go new file mode 100644 index 000000000..05235aed0 --- /dev/null +++ b/go/operation/list_masters.go @@ -0,0 +1,27 @@ +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 + } + return ret.Peers, nil +} |
