aboutsummaryrefslogtreecommitdiff
path: root/go/operation/list_masters.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/operation/list_masters.go')
-rw-r--r--go/operation/list_masters.go27
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
+}