sqlite的api,便于内部使用
liuxiaolong
2021-05-13 9cd362240315ecb0b3e3d36969a575f285400c47
cluster.go
@@ -1,17 +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) Create(clusterName string, password string) (bool,interface{}) {
   url := BASIC_URL + DATA_URL_PREFIX + "/cluster/create"
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,c
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false,c
   }
   bytes, _ := json.Marshal(res.Data)
   err = json.Unmarshal(bytes, &c)
   return res.Success,c
}
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 {
@@ -27,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,
@@ -47,7 +83,7 @@
}
func (api ClusterApi) GetSearchNodes() (bool,interface{}) {
   url := BASIC_URL + DATA_URL_PREFIX + "/cluster/getNodesByNum"
   url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/getSearchNodes"
   client := NewClient()
   body,err := client.DoGetRequest(url, nil,nil)
   if err != nil {
@@ -63,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,
@@ -81,8 +117,45 @@
   return res.Success,res.Data
}
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 {
      return false,nil
   }
   var res Result
   if err = json.Unmarshal(body, &res); err != nil {
      return false,nil
   }
   return res.Success,res.Data
}
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, 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
}
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 {
@@ -98,3 +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
}