From 2620759f8b7a78376e36d73b3548f3da513d73a4 Mon Sep 17 00:00:00 2001 From: zhouqunjie Date: Thu, 23 Nov 2023 20:23:49 +0800 Subject: [PATCH] jcos registCluster and deleteCluster Former-commit-id: 7dd50995c0bd8163d0445c2a44e4a21692a664e9 --- api/desc/cloud/pcm-cloud.api | 15 ++++++---- api/desc/pcm.api | 2 +- .../handler/cloud/deleteclusterhandler.go | 14 +++++---- .../handler/cloud/updatetenanthandler.go | 12 +++++--- .../logic/cloud/deleteclusterlogic.go | 11 ++++--- .../logic/cloud/registerclusterlogic.go | 19 +++++++++++- api/internal/logic/cloud/updatetenantlogic.go | 30 +++++++++++++++++++ api/internal/types/types.go | 15 ++++++---- 8 files changed, 91 insertions(+), 27 deletions(-) create mode 100644 api/internal/logic/cloud/updatetenantlogic.go diff --git a/api/desc/cloud/pcm-cloud.api b/api/desc/cloud/pcm-cloud.api index 48030127..f6c07b68 100644 --- a/api/desc/cloud/pcm-cloud.api +++ b/api/desc/cloud/pcm-cloud.api @@ -19,12 +19,15 @@ type ControllerMetricsReq { type ( RegisterClusterReq { - Name string `json:"name"` // 名称 - Address string `json:"address"` // 地址 - token string `json:"token"` // 数算集群token - Type string `json:"type"` // 参与者类型:CLOUD-数算集群;AI-智算集群;HPC-超算集群 - ParticipantId int64 `json:"name"` // participant id - MetricsUrl string `json:"metricsUrl"` //监控url + Name string `form:"name"` // 名称 + Address string `form:"address"` // 地址 + token string `form:"token"` // 数算集群token + Type string `form:"type"` // 参与者类型:CLOUD-数算集群;AI-智算集群;HPC-超算集群 + MetricsUrl string `form:"metricsUrl"` //监控url + } + + deleteClusterReq { + Name string `form:"name"` // 名称 } ListCloudResp{ diff --git a/api/desc/pcm.api b/api/desc/pcm.api index d1646825..d8243cdd 100644 --- a/api/desc/pcm.api +++ b/api/desc/pcm.api @@ -152,7 +152,7 @@ service pcm { @doc "数算集群删除" @handler deleteClusterHandler - post /cloud/deleteCluster (RegisterClusterReq) returns (CloudResp) + post /cloud/deleteCluster (deleteClusterReq) returns (CloudResp) @doc "数算集群查询" @handler listCloudClusterHandler diff --git a/api/internal/handler/cloud/deleteclusterhandler.go b/api/internal/handler/cloud/deleteclusterhandler.go index 52a5822e..983fc53c 100644 --- a/api/internal/handler/cloud/deleteclusterhandler.go +++ b/api/internal/handler/cloud/deleteclusterhandler.go @@ -1,24 +1,28 @@ package cloud import ( + "net/http" + "github.com/zeromicro/go-zero/rest/httpx" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/cloud" "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/utils/result" - "net/http" ) func DeleteClusterHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { - var req types.RegisterClusterReq + var req types.DeleteClusterReq if err := httpx.Parse(r, &req); err != nil { - result.ParamErrorResult(r, w, err) + httpx.ErrorCtx(r.Context(), w, err) return } l := cloud.NewDeleteClusterLogic(r.Context(), svcCtx) resp, err := l.DeleteCluster(&req) - result.HttpResult(r, w, resp, err) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } } } diff --git a/api/internal/handler/cloud/updatetenanthandler.go b/api/internal/handler/cloud/updatetenanthandler.go index 8e23c05c..80b7a5d4 100644 --- a/api/internal/handler/cloud/updatetenanthandler.go +++ b/api/internal/handler/cloud/updatetenanthandler.go @@ -1,24 +1,28 @@ package cloud import ( + "net/http" + "github.com/zeromicro/go-zero/rest/httpx" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/cloud" "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/utils/result" - "net/http" ) func UpdateTenantHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { var req types.UpdateTenantReq if err := httpx.Parse(r, &req); err != nil { - result.ParamErrorResult(r, w, err) + httpx.ErrorCtx(r.Context(), w, err) return } l := cloud.NewUpdateTenantLogic(r.Context(), svcCtx) resp, err := l.UpdateTenant(&req) - result.HttpResult(r, w, resp, err) + if err != nil { + httpx.ErrorCtx(r.Context(), w, err) + } else { + httpx.OkJsonCtx(r.Context(), w, resp) + } } } diff --git a/api/internal/logic/cloud/deleteclusterlogic.go b/api/internal/logic/cloud/deleteclusterlogic.go index 06426b1b..fadb5eef 100644 --- a/api/internal/logic/cloud/deleteclusterlogic.go +++ b/api/internal/logic/cloud/deleteclusterlogic.go @@ -2,9 +2,9 @@ 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" "github.com/zeromicro/go-zero/core/logx" ) @@ -23,8 +23,11 @@ func NewDeleteClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Del } } -func (l *DeleteClusterLogic) DeleteCluster(req *types.RegisterClusterReq) (resp *types.CloudResp, err error) { - // todo: add your logic here and delete this line - +func (l *DeleteClusterLogic) DeleteCluster(req *types.DeleteClusterReq) (resp *types.CloudResp, err error) { + // 删除集群信息 + tx := l.svcCtx.DbEngin.Where("name = ?", req.Name).Delete(&models.ScParticipantPhyInfo{}) + if tx.Error != nil { + return nil, tx.Error + } return } diff --git a/api/internal/logic/cloud/registerclusterlogic.go b/api/internal/logic/cloud/registerclusterlogic.go index 44dbfa31..e72e6b10 100644 --- a/api/internal/logic/cloud/registerclusterlogic.go +++ b/api/internal/logic/cloud/registerclusterlogic.go @@ -2,6 +2,9 @@ package cloud import ( "context" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/models" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/utils" + "time" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" @@ -24,7 +27,21 @@ func NewRegisterClusterLogic(ctx context.Context, svcCtx *svc.ServiceContext) *R } func (l *RegisterClusterLogic) RegisterCluster(req *types.RegisterClusterReq) (resp *types.CloudResp, err error) { - // todo: add your logic here and delete this line + // 查询出所有p端信息 + participant := models.ScParticipantPhyInfo{} + participant.Token = req.Token + participant.Name = req.Name + participant.Address = req.Address + participant.Type = req.Type + participant.Id = utils.GenSnowflakeID() + participant.MetricsUrl = req.MetricsUrl + participant.CreatedTime = time.Now() + participant.UpdatedTime = time.Now() + + tx := l.svcCtx.DbEngin.Create(&participant) + if tx.Error != nil { + return nil, tx.Error + } return } diff --git a/api/internal/logic/cloud/updatetenantlogic.go b/api/internal/logic/cloud/updatetenantlogic.go new file mode 100644 index 00000000..c9839b1c --- /dev/null +++ b/api/internal/logic/cloud/updatetenantlogic.go @@ -0,0 +1,30 @@ +package cloud + +import ( + "context" + + "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc" + "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UpdateTenantLogic struct { + logx.Logger + ctx context.Context + svcCtx *svc.ServiceContext +} + +func NewUpdateTenantLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateTenantLogic { + return &UpdateTenantLogic{ + Logger: logx.WithContext(ctx), + ctx: ctx, + svcCtx: svcCtx, + } +} + +func (l *UpdateTenantLogic) UpdateTenant(req *types.UpdateTenantReq) (resp *types.CloudResp, err error) { + // todo: add your logic here and delete this line + + return +} diff --git a/api/internal/types/types.go b/api/internal/types/types.go index 25d7c50b..ad536d31 100644 --- a/api/internal/types/types.go +++ b/api/internal/types/types.go @@ -3337,12 +3337,15 @@ type ControllerMetricsReq struct { } type RegisterClusterReq struct { - Name string `json:"name"` // 名称 - Address string `json:"address"` // 地址 - Token string `json:"token"` // 数算集群token - Type string `json:"type"` // 参与者类型:CLOUD-数算集群;AI-智算集群;HPC-超算集群 - ParticipantId int64 `json:"name"` // participant id - MetricsUrl string `json:"metricsUrl"` //监控url + Name string `form:"name"` // 名称 + Address string `form:"address"` // 地址 + Token string `form:"token"` // 数算集群token + Type string `form:"type"` // 参与者类型:CLOUD-数算集群;AI-智算集群;HPC-超算集群 + MetricsUrl string `form:"metricsUrl"` //监控url +} + +type DeleteClusterReq struct { + Name string `form:"name"` // 名称 } type ListCloudResp struct {