| | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | 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, |
| | |
| | | } |
| | | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | 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, |
| | |
| | | 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() (bool,interface{}) { |
| | | url := api.getBasicUrl() + DATA_URL_PREFIX + "/cluster/leave" |
| | | client := NewClient() |
| | | body,err := client.DoPostRequest(url,CONTENT_TYPE_FORM, nil,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 { |
| | |
| | | } |
| | | |
| | | |
| | | 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 |
| | | } |