| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "github.com/gin-gonic/gin" |
| | | "webserver/extend/code" |
| | | "webserver/extend/util" |
| | | ) |
| | | |
| | | type ClusterController struct { |
| | | |
| | | } |
| | | |
| | | type Cluster struct { |
| | | ClusterId string `json:"cluster_id"` |
| | | ClusterName string `json:"cluster_name"` |
| | | Password string `json:"password"` |
| | | VirtualIp string `json:"virtual_ip"` |
| | | } |
| | | |
| | | type Node struct { |
| | | Id string `json:"id"` |
| | | ClusterId string `json:"cluster_id"` |
| | | NodeName string `json:"node_name"` |
| | | NodeId string `json:"node_id"` |
| | | NodeIp string `json:"node_ip"` |
| | | CreateTime string `json:"create_time"` |
| | | IsAlive int |
| | | } |
| | | |
| | | type ClusterVo struct { |
| | | ClusterInfo Cluster `json:"clusterInfo"` |
| | | Nodes []Node `json:"nodes"` |
| | | } |
| | | |
| | | type ClusterCreateVo struct { |
| | | Password string `json:"password"` |
| | | ClusterName string `json:"clusterName"` |
| | | ClusterId string `json:"clusterId"` |
| | | } |
| | | |
| | | type ClusterSearchVo struct { |
| | | Password string `json:"password"` |
| | | SearchNum string `json:"searchNum"` |
| | | } |
| | | |
| | | type ClusterJoinVo struct { |
| | | ClusterId string `json:"clusterId"` |
| | | Password string `json:"password"` |
| | | NodeIps []string `json:"nodeIps"` |
| | | } |
| | | |
| | | // @Summary 创建集群 |
| | | // @Description 创建集群 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param clusterArg body controllers.ClusterCreateVo true "集群创建参数" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/cluster/create [post] |
| | | func (cc ClusterController) Create(c *gin.Context) { |
| | | var clusterVo ClusterCreateVo |
| | | err := c.BindJSON(&clusterVo) |
| | | if err !=nil || clusterVo.Password == "" || clusterVo.ClusterName == "" { |
| | | util.ResponseFormat(c,code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.ClusterApi |
| | | b, d := api.Create(clusterVo.ClusterName, clusterVo.Password) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success, d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"创建失败") |
| | | } |
| | | } |
| | | |
| | | // @Summary 搜索集群 |
| | | // @Description 搜索集群 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param searchArg body controllers.ClusterSearchVo true "集群搜索参数" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/cluster/search [post] |
| | | func (cc ClusterController) Search(c *gin.Context) { |
| | | var csv ClusterSearchVo |
| | | err := c.BindJSON(&csv) |
| | | if err !=nil || csv.Password == ""{ |
| | | util.ResponseFormat(c,code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.ClusterApi |
| | | b,d := api.Search(csv.SearchNum, csv.Password) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success, d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"搜索失败") |
| | | } |
| | | } |
| | | |
| | | // @Summary 通过searchNum异步获取集群节点信息 |
| | | // @Description 通过searchNum异步获取集群节点信息 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/cluster/getNodesByNum [get] |
| | | func (cc ClusterController) GetSearchNodes(c *gin.Context) { |
| | | var api dbapi.ClusterApi |
| | | b, d := api.GetSearchNodes() |
| | | if b { |
| | | util.ResponseFormat(c,code.Success,d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ClusterNodesEmpty,[]interface{}{}) |
| | | } |
| | | } |
| | | |
| | | // @Summary 通过searchNum停止搜索 |
| | | // @Description 通过searchNum停止搜索 |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param searchNum query string true "搜索编号" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/cluster/stopSearching [post] |
| | | func (cc ClusterController) StopSearching(c *gin.Context) { |
| | | searchNum := c.Query("searchNum") |
| | | if searchNum == "" { |
| | | util.ResponseFormat(c,code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.ClusterApi |
| | | b, d := api.StopSearching(searchNum) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success, d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"停止失败") |
| | | } |
| | | } |
| | | |
| | | |
| | | // @Summary 加入集群 |
| | | // @Description 加入集群 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param clusterArg body controllers.ClusterCreateVo true "集群创建参数" |
| | | // @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}" |
| | | // @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}" |
| | | // @Router /data/api-v/cluster/joinCluster [post] |
| | | func (cc ClusterController) JoinCluster(c *gin.Context) { |
| | | var arg ClusterJoinVo |
| | | err := c.BindJSON(&arg) |
| | | if err!=nil || arg.ClusterId == "" || arg.Password == "" || len(arg.NodeIps) == 0{ |
| | | util.ResponseFormat(c,code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | var api dbapi.ClusterApi |
| | | paramBody := util.Struct2Map(arg) |
| | | b, d := api.JoinCluster(paramBody) |
| | | if b { |
| | | util.ResponseFormat(c,code.Success,d) |
| | | } else { |
| | | util.ResponseFormat(c,code.ComError,"加入失败") |
| | | } |
| | | } |