| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "vamicro/system-service/models" |
| | | "vamicro/system-service/service" |
| | | "vamicro/system-service/vo" |
| | | |
| | | "basic.com/valib/bhomeclient.git" |
| | | "basic.com/valib/logger.git" |
| | | uuid "github.com/satori/go.uuid" |
| | | ) |
| | | |
| | | type ClusterController struct { |
| | | } |
| | | |
| | | // @Summary 查询本地集群 |
| | | // @Description 查询本地集群 |
| | | // @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/findCluster [get] |
| | | func (cc ClusterController) FindCluster(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | var clusterE models.Cluster |
| | | arr, err := clusterE.FindAll() |
| | | if err == nil { |
| | | if arr != nil && len(arr) > 0 { |
| | | var nodeE models.Node |
| | | nodes, _ := nodeE.FindNodesByClusterId(arr[0].ClusterId) |
| | | logger.Debugf("FindCluster nodes=%v", nodes) |
| | | 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, |
| | | }} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: true} |
| | | } |
| | | |
| | | } else { |
| | | return &bhomeclient.Reply{Success: false, Msg: "集群查询失败"} |
| | | } |
| | | } |
| | | |
| | | // @Summary 创建集群 |
| | | // @Description 创建集群 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param clusterArg body vo.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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | var clusterVo vo.ClusterCreateVo |
| | | err := c.BindJSON(&clusterVo) |
| | | if err != nil || len(clusterVo.Password) != 6 || clusterVo.ClusterName == "" { |
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"} |
| | | } |
| | | |
| | | sv := service.NewClusterService(h.Bk) |
| | | b, newCluterId := sv.Create(clusterVo.ClusterName, clusterVo.Password, clusterVo.VirtualIp) |
| | | if b { |
| | | clusterVo.ClusterId = newCluterId |
| | | return &bhomeclient.Reply{Success: true, Data: clusterVo} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: false, Msg: "创建集群失败"} |
| | | } |
| | | } |
| | | |
| | | // @Summary 搜索集群 |
| | | // @Description 搜索集群 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param searchArg body vo.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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | var csv vo.ClusterSearchVo |
| | | err := c.BindJSON(&csv) |
| | | if err != nil || len(csv.Password) != 6 { |
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"} |
| | | } |
| | | searchNum := uuid.NewV4().String() |
| | | sv := service.NewClusterService(h.Bk) |
| | | err = sv.SearchByPwd(csv.Password) |
| | | if err != nil { |
| | | return &bhomeclient.Reply{Success: true, Msg: "搜索中,请稍候..."} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: true, Data: searchNum} |
| | | } |
| | | } |
| | | |
| | | // @Summary 调search后,通过此接口获取查到的集群节点信息 |
| | | // @Description 调search后,通过此接口获取查到的集群节点信息 |
| | | // @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/getSearchNodes [get] |
| | | func (cc ClusterController) GetSearchNodes(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | sv := service.NewClusterService(h.Bk) |
| | | nodes := sv.SearchNodes() |
| | | logger.Debugf("GetSearchNodes nodes=%v, len=%v", nodes, len(nodes)) |
| | | if nodes != nil && len(nodes) > 0 { |
| | | var nodeArr []interface{} |
| | | for _, n := range nodes { |
| | | nodeArr = append(nodeArr, n) |
| | | } |
| | | return &bhomeclient.Reply{Success: true, Msg: "查询成功", Data: nodeArr} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: true, Msg: "查询成功", Data: []interface{}{}} |
| | | } |
| | | } |
| | | |
| | | // @Summary 停止搜索集群 |
| | | // @Description 停止搜索集群 |
| | | // @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/stopSearching [post] |
| | | func (cc ClusterController) StopSearching(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | sv := service.NewClusterService(h.Bk) |
| | | if sv.StopSearching() { |
| | | return &bhomeclient.Reply{Success: true} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: false, Msg: "停止失败"} |
| | | } |
| | | } |
| | | |
| | | // @Summary 加入集群 |
| | | // @Description 加入集群 |
| | | // @Accept json |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param clusterArg body vo.ClusterJoinVo 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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | var arg vo.ClusterJoinVo |
| | | err := c.BindJSON(&arg) |
| | | logger.Debugf("JoinCluster reqParam=%v, err=%v", arg, err) |
| | | if err != nil { |
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"} |
| | | } else if arg.ClusterId == "" { |
| | | return &bhomeclient.Reply{Success: false, Msg: "集群id为空错误"} |
| | | } else if len(arg.Password) != 6 { |
| | | return &bhomeclient.Reply{Success: false, Msg: "集群密码错误,密码必须为6位"} |
| | | } else if len(arg.NodeIps) == 0 { |
| | | return &bhomeclient.Reply{Success: false, Msg: "集群节点参数为空错误"} |
| | | } |
| | | |
| | | sv := service.NewClusterService(h.Bk) |
| | | if b, err := sv.JoinCluster(&arg); b { |
| | | return &bhomeclient.Reply{Success: true, Msg: "加入成功"} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: false, Msg: err.Error()} |
| | | } |
| | | } |
| | | |
| | | // @Summary 保存集群名称 |
| | | // @Description 保存集群名称 |
| | | // @Produce json |
| | | // @Tags cluster |
| | | // @Param clusterName formData string true "集群名称" |
| | | // @Param virtualIp formData string false "虚拟ip" |
| | | // @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/updateClusterName [post] |
| | | func (cc ClusterController) UpdateClusterName(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | clusterName := c.PostForm("clusterName") |
| | | if clusterName == "" { |
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"} |
| | | } |
| | | virtualIp := c.PostForm("virtualIp") |
| | | sv := service.NewClusterService(h.Bk) |
| | | b := sv.UpdateClusterName(clusterName, virtualIp) |
| | | if b { |
| | | return &bhomeclient.Reply{Success: true, Msg: "更新成功"} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: false, Msg: "更新失败"} |
| | | } |
| | | } |
| | | |
| | | type LeaveArg struct { |
| | | IsDel bool `json:"isDel"` //是否删除数据 |
| | | } |
| | | |
| | | // @Summary 退出集群 |
| | | // @Description 退出集群 |
| | | // @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/leave [post] |
| | | func (cc ClusterController) Leave(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | var reqBody LeaveArg |
| | | c.BindJSON(&reqBody) |
| | | sv := service.NewClusterService(h.Bk) |
| | | if b, err := sv.Leave(reqBody.IsDel); b { |
| | | return &bhomeclient.Reply{Success: true, Msg: "退出成功"} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: false, Msg: err.Error()} |
| | | } |
| | | } |
| | | |
| | | func (cc ClusterController) TestSyncSql(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | sv := service.NewClusterService(h.Bk) |
| | | if sv.TestSyncSql() { |
| | | return &bhomeclient.Reply{Success: true, Msg: "测试成功"} |
| | | } else { |
| | | return &bhomeclient.Reply{Success: false, Msg: "测试失败"} |
| | | } |
| | | } |
| | | |
| | | type IpsArgs struct { |
| | | NodeId string `json:"node_id"` //ip列表 |
| | | } |
| | | |
| | | func (cc ClusterController) FindIpByNode(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply { |
| | | var reqBody IpsArgs |
| | | c.BindJSON(&reqBody) |
| | | if reqBody.NodeId == "" { |
| | | return &bhomeclient.Reply{Success: false, Msg: "NodeId不能为空"} |
| | | } |
| | | sv := service.NewClusterService(h.Bk) |
| | | ip, err := sv.FindIpByNode(reqBody.NodeId) |
| | | if err != nil { |
| | | return &bhomeclient.Reply{Success: false, Msg: "ip查询失败"} |
| | | } |
| | | return &bhomeclient.Reply{Success: true, Msg: "IP查询成功", Data: ip} |
| | | } |
| | | package controllers
|
| | |
|
| | | import (
|
| | | "vamicro/system-service/models"
|
| | | "vamicro/system-service/service"
|
| | | "vamicro/system-service/vo"
|
| | |
|
| | | "basic.com/valib/bhomeclient.git"
|
| | | "basic.com/valib/logger.git"
|
| | | uuid "github.com/satori/go.uuid"
|
| | | )
|
| | |
|
| | | type ClusterController struct {
|
| | | }
|
| | |
|
| | | // @Summary 查询本地集群
|
| | | // @Description 查询本地集群
|
| | | // @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/findCluster [get]
|
| | | func (cc ClusterController) FindCluster(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | var clusterE models.Cluster
|
| | | arr, err := clusterE.FindAll()
|
| | | if err == nil {
|
| | | if arr != nil && len(arr) > 0 {
|
| | | var nodeE models.Node
|
| | | nodes, _ := nodeE.FindNodesByClusterId(arr[0].ClusterId)
|
| | | logger.Debugf("FindCluster nodes=%v", nodes)
|
| | | 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,
|
| | | }}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: true}
|
| | | }
|
| | |
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "集群查询失败"}
|
| | | }
|
| | | }
|
| | |
|
| | | // @Summary 创建集群
|
| | | // @Description 创建集群
|
| | | // @Accept json
|
| | | // @Produce json
|
| | | // @Tags cluster
|
| | | // @Param clusterArg body vo.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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | var clusterVo vo.ClusterCreateVo
|
| | | err := c.BindJSON(&clusterVo)
|
| | | if err != nil || len(clusterVo.Password) != 6 || clusterVo.ClusterName == "" {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
|
| | | }
|
| | |
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | b, newCluterId := sv.Create(clusterVo.ClusterName, clusterVo.Password, clusterVo.VirtualIp)
|
| | | if b {
|
| | | clusterVo.ClusterId = newCluterId
|
| | | return &bhomeclient.Reply{Success: true, Data: clusterVo}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "创建集群失败"}
|
| | | }
|
| | | }
|
| | |
|
| | | // @Summary 搜索集群
|
| | | // @Description 搜索集群
|
| | | // @Accept json
|
| | | // @Produce json
|
| | | // @Tags cluster
|
| | | // @Param searchArg body vo.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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | var csv vo.ClusterSearchVo
|
| | | err := c.BindJSON(&csv)
|
| | | if err != nil || len(csv.Password) != 6 {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
|
| | | }
|
| | | searchNum := uuid.NewV4().String()
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | err = sv.SearchByPwd(csv.Password)
|
| | | if err != nil {
|
| | | return &bhomeclient.Reply{Success: true, Msg: "搜索中,请稍候..."}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: true, Data: searchNum}
|
| | | }
|
| | | }
|
| | |
|
| | | // @Summary 调search后,通过此接口获取查到的集群节点信息
|
| | | // @Description 调search后,通过此接口获取查到的集群节点信息
|
| | | // @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/getSearchNodes [get]
|
| | | func (cc ClusterController) GetSearchNodes(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | nodes := sv.SearchNodes()
|
| | | logger.Debugf("GetSearchNodes nodes=%v, len=%v", nodes, len(nodes))
|
| | | if nodes != nil && len(nodes) > 0 {
|
| | | var nodeArr []interface{}
|
| | | for _, n := range nodes {
|
| | | nodeArr = append(nodeArr, n)
|
| | | }
|
| | | return &bhomeclient.Reply{Success: true, Msg: "查询成功", Data: nodeArr}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: true, Msg: "查询成功", Data: []interface{}{}}
|
| | | }
|
| | | }
|
| | |
|
| | | // @Summary 停止搜索集群
|
| | | // @Description 停止搜索集群
|
| | | // @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/stopSearching [post]
|
| | | func (cc ClusterController) StopSearching(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | if sv.StopSearching() {
|
| | | return &bhomeclient.Reply{Success: true}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "停止失败"}
|
| | | }
|
| | | }
|
| | |
|
| | | // @Summary 加入集群
|
| | | // @Description 加入集群
|
| | | // @Accept json
|
| | | // @Produce json
|
| | | // @Tags cluster
|
| | | // @Param clusterArg body vo.ClusterJoinVo 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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | var arg vo.ClusterJoinVo
|
| | | err := c.BindJSON(&arg)
|
| | | logger.Debugf("JoinCluster reqParam=%v, err=%v", arg, err)
|
| | | if err != nil {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
|
| | | } else if arg.ClusterId == "" {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "集群id为空错误"}
|
| | | } else if len(arg.Password) != 6 {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "集群密码错误,密码必须为6位"}
|
| | | } else if len(arg.NodeIps) == 0 {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "集群节点参数为空错误"}
|
| | | }
|
| | |
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | if b, err := sv.JoinCluster(&arg); b {
|
| | | return &bhomeclient.Reply{Success: true, Msg: "加入成功"}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: false, Msg: err.Error()}
|
| | | }
|
| | | }
|
| | |
|
| | | // @Summary 保存集群名称
|
| | | // @Description 保存集群名称
|
| | | // @Produce json
|
| | | // @Tags cluster
|
| | | // @Param clusterName formData string true "集群名称"
|
| | | // @Param virtualIp formData string false "虚拟ip"
|
| | | // @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/updateClusterName [post]
|
| | | func (cc ClusterController) UpdateClusterName(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | clusterName := c.PostForm("clusterName")
|
| | | if clusterName == "" {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
|
| | | }
|
| | | virtualIp := c.PostForm("virtualIp")
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | b := sv.UpdateClusterName(clusterName, virtualIp)
|
| | | if b {
|
| | | return &bhomeclient.Reply{Success: true, Msg: "更新成功"}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "更新失败"}
|
| | | }
|
| | | }
|
| | |
|
| | | type LeaveArg struct {
|
| | | IsDel bool `json:"isDel"` //是否删除数据
|
| | | }
|
| | |
|
| | | // @Summary 退出集群
|
| | | // @Description 退出集群
|
| | | // @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/leave [post]
|
| | | func (cc ClusterController) Leave(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | var reqBody LeaveArg
|
| | | c.BindJSON(&reqBody)
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | if b, err := sv.Leave(reqBody.IsDel); b {
|
| | | return &bhomeclient.Reply{Success: true, Msg: "退出成功"}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: false, Msg: err.Error()}
|
| | | }
|
| | | }
|
| | |
|
| | | func (cc ClusterController) TestSyncSql(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | if sv.TestSyncSql() {
|
| | | return &bhomeclient.Reply{Success: true, Msg: "测试成功"}
|
| | | } else {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "测试失败"}
|
| | | }
|
| | | }
|
| | |
|
| | | type IpsArgs struct {
|
| | | NodeId string `json:"node_id"` //ip列表
|
| | | }
|
| | |
|
| | | func (cc ClusterController) FindIpByNode(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
| | | var reqBody IpsArgs
|
| | | c.BindJSON(&reqBody)
|
| | | if reqBody.NodeId == "" {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "NodeId不能为空"}
|
| | | }
|
| | | sv := service.NewClusterService(h.Bk)
|
| | | ip, err := sv.FindIpByNode(reqBody.NodeId)
|
| | | if err != nil {
|
| | | return &bhomeclient.Reply{Success: false, Msg: "ip查询失败"}
|
| | | }
|
| | | return &bhomeclient.Reply{Success: true, Msg: "IP查询成功", Data: ip}
|
| | | }
|