From dccc4ad12f01ff31e58c803e6f25c130e240b6f1 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期五, 14 五月 2021 10:46:21 +0800
Subject: [PATCH] fix
---
cluster.go | 77 +++++++++++++++++++++++++++++---------
1 files changed, 58 insertions(+), 19 deletions(-)
diff --git a/cluster.go b/cluster.go
index 987d255..b01a79c 100644
--- a/cluster.go
+++ b/cluster.go
@@ -1,33 +1,53 @@
package dbapi
-import "encoding/json"
+import (
+ "basic.com/pubsub/protomsg.git"
+ "encoding/json"
+ "strconv"
+)
type ClusterApi struct {
-
+ Ip string
+ Port int
}
-func (api ClusterApi) FindCluster() (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/findCluster"
+func (api ClusterApi) getBasicUrl() string {
+ if api.Ip == "" {
+ return BASIC_URL
+ }
+ if api.Ip == "" {
+ api.Ip = DEFAULT_IP
+ }
+ if api.Port == 0 {
+ api.Port = DEFAULT_PORT
+ }
+ return "http://"+api.Ip+":"+strconv.Itoa(api.Port)
+}
+
+func (api ClusterApi) FindCluster() (b bool,c protomsg.ClusterAndNodes) {
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/findCluster"
client := NewClient()
body,err := client.DoGetRequest(url, nil,nil)
if err != nil {
- return false,nil
+ return false,c
}
var res Result
if err = json.Unmarshal(body, &res); err != nil {
- return false,nil
+ return false,c
}
-
- return res.Success,res.Data
+ bytes, _ := json.Marshal(res.Data)
+ err = json.Unmarshal(bytes, &c)
+ return res.Success,c
}
-func (api ClusterApi) Create(clusterName string, password string) (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/create"
+func (api ClusterApi) Create(clusterName string, password string, virtualIp string) (bool,interface{}) {
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/create"
client := NewClient()
paramBody := map[string]interface{}{
"clusterName": clusterName,
"password": password,
+ "virtualIp": virtualIp,
}
body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
if err != nil {
@@ -43,7 +63,7 @@
}
func (api ClusterApi) Search(searchNum string, password string) (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/search"
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/search"
client := NewClient()
paramBody := map[string]interface{}{
"searchNum": searchNum,
@@ -63,7 +83,7 @@
}
func (api ClusterApi) GetSearchNodes() (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/getSearchNodes"
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/getSearchNodes"
client := NewClient()
body,err := client.DoGetRequest(url, nil,nil)
if err != nil {
@@ -79,7 +99,7 @@
}
func (api ClusterApi) StopSearching(searchNum string) (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/stopSearching"
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/stopSearching"
client := NewClient()
paramBody := map[string]interface{}{
"searchNum": searchNum,
@@ -97,11 +117,12 @@
return res.Success,res.Data
}
-func (api ClusterApi) UpdateClusterName(clusterName string) (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/updateClusterName"
+func (api ClusterApi) UpdateClusterName(clusterName string, virtualIp string) (bool,interface{}) {
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/updateClusterName"
client := NewClient()
paramBody := map[string]interface{}{
"clusterName": clusterName,
+ "virtualIp": virtualIp,
}
body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, paramBody,nil,nil)
if err != nil {
@@ -116,10 +137,10 @@
return res.Success,res.Data
}
-func (api ClusterApi) Leave() (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/leave"
+func (api ClusterApi) Leave(paramBody map[string]interface{}) (bool,interface{}) {
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/leave"
client := NewClient()
- body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, nil,nil,nil)
+ body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, paramBody,nil,nil)
if err != nil {
return false,nil
}
@@ -134,7 +155,7 @@
func (api ClusterApi) JoinCluster(paramBody map[string]interface{}) (bool,interface{}) {
- url := BASIC_URL + DATA_URL_PREFIX + "/cluster/joinCluster"
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/joinCluster"
client := NewClient()
body,err := client.DoPostRequest(url,CONTENT_TYPE_JSON, paramBody,nil,nil)
if err != nil {
@@ -150,4 +171,22 @@
}
+func (api ClusterApi) UpdateDriftState(driftState string, nodeId string) (bool,interface{}) {
+ url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/updateDriftState"
+ client := NewClient()
+ paramBody := map[string]interface{}{
+ "driftState": driftState,
+ "nodeId": nodeId,
+ }
+ body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, paramBody,nil,nil)
+ if err != nil {
+ return false,nil
+ }
+ var res Result
+ if err = json.Unmarshal(body, &res); err != nil {
+ return false,nil
+ }
+
+ return res.Success,res.Data
+}
--
Gitblit v1.8.0