zhangzengfei
2023-10-24 c5654846d3b8b002284dee57aa50e95d67649f0e
system-service/controllers/cluster.go
@@ -25,7 +25,7 @@
   var clusterE models.Cluster
   var reply = bhomeclient.Reply{
      Success: false,
      Msg:     "leave",
      Msg:     "",
      Data:    nil,
   }
@@ -37,9 +37,9 @@
         var nodeE models.Node
         nodes, _ := nodeE.FindNodesByClusterId(arr[0].ClusterId)
         logger.Debug("查询集群节点:", nodes)
         //logger.Debug("查询集群节点:", nodes)
         for _, node := range nodes {
            logger.Debug("节点:", node.NodeId, " servceId:", config.Server.AnalyServerId, " stat:", node.DriftState)
            //logger.Debug("节点:", node.NodeId, " serverId:", config.Server.AnalyServerId, " stat:", node.DriftState)
            if node.NodeId == config.Server.AnalyServerId {
               if node.DriftState == "master" {
                  reply.Msg = "master"
@@ -50,6 +50,7 @@
               break
            }
         }
         reply.Data = nodes
      }
   }
@@ -74,9 +75,10 @@
         return &bhomeclient.Reply{Success: true, Data: map[string]interface{}{
            "clusterId":   arr[0].ClusterId,
            "clusterName": arr[0].ClusterName,
            "password":    arr[0].Password,
            "nodes":       nodes,
            "virtualIp":   arr[0].VirtualIp,
            //"password":    arr[0].Password,
            "nodes":     nodes,
            "virtualIp": arr[0].VirtualIp,
            "localId":   config.Server.AnalyServerId,
         }}
      } else {
         return &bhomeclient.Reply{Success: true}
@@ -110,6 +112,22 @@
      return &bhomeclient.Reply{Success: true, Data: clusterVo}
   } else {
      return &bhomeclient.Reply{Success: false, Msg: "创建集群失败"}
   }
}
func (cc ClusterController) Update2Master(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
   var nodeVo vo.UpdateClusterVo
   err := c.BindJSON(&nodeVo)
   if err != nil || nodeVo.NodeId == "" {
      return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
   }
   sv := service.NewClusterService(h.Bk)
   b, _ := sv.UpdateDriftStateByNodeId(nodeVo.ClusterId, nodeVo.NodeId, "master")
   if b {
      return &bhomeclient.Reply{Success: true, Data: nil}
   } else {
      return &bhomeclient.Reply{Success: false, Msg: "变更失败"}
   }
}
@@ -233,7 +251,8 @@
}
type LeaveArg struct {
   IsDel bool `json:"isDel"` //是否删除数据
   IsDel bool   `json:"isDel"`    //是否删除数据
   Pwd   string `json:"password"` //是否删除数据
}
// @Summary 退出集群
@@ -246,6 +265,21 @@
func (cc ClusterController) Leave(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
   var reqBody LeaveArg
   c.BindJSON(&reqBody)
   var clusterE models.Cluster
   arr, err := clusterE.FindAll()
   if err != nil {
      return &bhomeclient.Reply{Success: false, Msg: "集群查询失败"}
   }
   if arr != nil && len(arr) > 0 {
      if config.ClusterSet.PwdPre+reqBody.Pwd != arr[0].Password {
         return &bhomeclient.Reply{Success: false, Msg: "密码错误"}
      }
   } else {
      return &bhomeclient.Reply{Success: false, Msg: "集群查询失败"}
   }
   sv := service.NewClusterService(h.Bk)
   if b, err := sv.Leave(reqBody.IsDel); b {
      return &bhomeclient.Reply{Success: true, Msg: "退出成功"}