- package cloud
-
- import (
- "context"
- "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
- "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
- "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models"
- "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/utils"
- "strconv"
-
- "github.com/zeromicro/go-zero/core/logx"
- )
-
- type RegisterClusterLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
-
- func NewRegisterClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RegisterClusterLogic {
- return &RegisterClusterLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
-
- func (l *RegisterClusterLogic) RegisterCluster(req *types.RegisterClusterReq) (*types.CloudResp, error) {
- var phyInfos []models.ScParticipantPhyInfo
- var resp types.CloudResp
-
- l.svcCtx.DbEngin.Raw("select * from sc_participant_phy_info where `name` = ?", req.Name).Scan(&phyInfos)
- if len(phyInfos) != 0 {
- resp.Code = "400"
- resp.Msg = "cluster name already exist"
- resp.Data = ""
- return &resp, nil
- }
-
- participant := models.ScParticipantPhyInfo{
- Token: req.Token,
- Name: req.Name,
- Address: req.Address,
- Type: "CLOUD",
- Id: utils.GenSnowflakeID(),
- MetricsUrl: req.MetricsUrl,
- }
- tx := l.svcCtx.DbEngin.Create(&participant)
- if tx.Error != nil {
- return nil, tx.Error
- }
-
- labelInfo := models.ScParticipantLabelInfo{
- Id: utils.GenSnowflakeID(),
- ParticipantId: participant.Id,
- Key: "cloud",
- Value: "sealos",
- }
- tx2 := l.svcCtx.DbEngin.Create(&labelInfo)
- if tx2.Error != nil {
- return nil, tx.Error
- }
-
- resp.Code = string(200)
- resp.Msg = "success"
- resp.Data = "participantId:" + strconv.FormatInt(participant.Id, 10)
- return &resp, nil
- }
|