func()

in server/api/node.go [42:68]


func (handler *NodeHandler) Create(c *gin.Context) {
	ns := c.Param("namespace")
	cluster, _ := c.MustGet(consts.ContextKeyCluster).(*store.Cluster)
	var req struct {
		Addr     string `json:"addr" binding:"required"`
		Role     string `json:"role"`
		Password string `json:"password"`
	}
	if err := c.ShouldBindJSON(&req); err != nil {
		helper.ResponseBadRequest(c, err)
		return
	}
	if req.Role == "" {
		req.Role = store.RoleSlave
	}
	shardIndex, _ := strconv.Atoi(c.Param("shard"))
	err := cluster.AddNode(shardIndex, req.Addr, req.Role, req.Password)
	if err != nil {
		helper.ResponseError(c, err)
		return
	}
	if err := handler.s.UpdateCluster(c, ns, cluster); err != nil {
		helper.ResponseError(c, err)
		return
	}
	helper.ResponseCreated(c, nil)
}