Former-commit-id: 5af0d344af
pull/20/head
| @@ -7,6 +7,21 @@ info( | |||
| email: "" | |||
| ) | |||
| /******************find datasetList start*************************/ | |||
| type ( | |||
| getClusterListReq { | |||
| Id int64 `form:"id"` | |||
| } | |||
| getClusterListResp { | |||
| clusters []ClusterInfo `json:"clusters"` | |||
| } | |||
| ClusterInfo { | |||
| Id int64 `json:"id"` | |||
| Name string `json:"name"` | |||
| Address string `json:"address"` | |||
| Token string `json:"token"` | |||
| MetricsUrl string `json:"metricsUrl"` | |||
| } | |||
| ) | |||
| type ControllerMetricsReq { | |||
| Metrics []string `form:"metrics"` | |||
| @@ -174,7 +174,7 @@ type deleteTaskReq { | |||
| Id int64 `path:"id"` | |||
| } | |||
| type commitTaskReq{ | |||
| type commitTaskReq { | |||
| Name string `json:"name"` | |||
| NsID string `json:"nsID"` | |||
| Replicas int64 `json:"replicas,optional"` | |||
| @@ -237,27 +237,27 @@ type ( | |||
| platform string `json:"platform,optional"` | |||
| } | |||
| ServerCommit { | |||
| allCardRunTime string `json:"allCardRunTime"` | |||
| flavorRef string `json:"flavorRef,optional"` | |||
| name string `json:"name,optional"` | |||
| imageRef string `json:"imageRef,optional"` | |||
| accessIPv4 string `json:"accessIPv4,optional"` | |||
| accessIPv6 string `json:"accessIPv6,optional"` | |||
| adminPass string `json:"adminPass,optional"` | |||
| availability_zone string `json:"availability_zone,optional"` | |||
| key_name string `json:"key_name,optional"` | |||
| hostname string `json:"hostname,optional"` | |||
| host string `json:"host,optional"` | |||
| networks []Networks `json:"networks,optional"` | |||
| allCardRunTime string `json:"allCardRunTime"` | |||
| flavorRef string `json:"flavorRef,optional"` | |||
| name string `json:"name,optional"` | |||
| imageRef string `json:"imageRef,optional"` | |||
| accessIPv4 string `json:"accessIPv4,optional"` | |||
| accessIPv6 string `json:"accessIPv6,optional"` | |||
| adminPass string `json:"adminPass,optional"` | |||
| availability_zone string `json:"availability_zone,optional"` | |||
| key_name string `json:"key_name,optional"` | |||
| hostname string `json:"hostname,optional"` | |||
| host string `json:"host,optional"` | |||
| networks []Networks `json:"networks,optional"` | |||
| } | |||
| Networks { | |||
| uuid string `json:"uuid,optional"` | |||
| port string `json:"port,optional"` | |||
| fixed_ip string `json:"fixed_ip,optional"` | |||
| tag string `json:"tag,optional"` | |||
| uuid string `json:"uuid,optional"` | |||
| port string `json:"port,optional"` | |||
| fixed_ip string `json:"fixed_ip,optional"` | |||
| tag string `json:"tag,optional"` | |||
| } | |||
| Block_device_mapping_v2Commit { | |||
| uuid string `json:"uuid,optional"` | |||
| uuid string `json:"uuid,optional"` | |||
| } | |||
| commitVmTaskResp { | |||
| @@ -169,6 +169,10 @@ service pcm { | |||
| @doc "租户更新" | |||
| @handler updateTenantHandler | |||
| post /cloud/updateTenant (UpdateTenantReq) returns (CloudResp) | |||
| @doc "Obtain cluster list information according to participantId" | |||
| @handler getClusterListHandler | |||
| get /core/clusterList (getClusterListReq) returns (getClusterListResp) | |||
| } | |||
| //智算二级接口 | |||
| @@ -0,0 +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" | |||
| ) | |||
| func GetClusterListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | |||
| return func(w http.ResponseWriter, r *http.Request) { | |||
| var req types.GetClusterListReq | |||
| if err := httpx.Parse(r, &req); err != nil { | |||
| httpx.ErrorCtx(r.Context(), w, err) | |||
| return | |||
| } | |||
| l := cloud.NewGetClusterListLogic(r.Context(), svcCtx) | |||
| resp, err := l.GetClusterList(&req) | |||
| if err != nil { | |||
| httpx.ErrorCtx(r.Context(), w, err) | |||
| } else { | |||
| httpx.OkJsonCtx(r.Context(), w, resp) | |||
| } | |||
| } | |||
| } | |||
| @@ -198,6 +198,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | |||
| Path: "/cloud/updateTenant", | |||
| Handler: cloud.UpdateTenantHandler(serverCtx), | |||
| }, | |||
| { | |||
| Method: http.MethodGet, | |||
| Path: "/core/clusterList", | |||
| Handler: cloud.GetClusterListHandler(serverCtx), | |||
| }, | |||
| }, | |||
| rest.WithPrefix("/pcm/v1"), | |||
| ) | |||
| @@ -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 GetClusterListLogic struct { | |||
| logx.Logger | |||
| ctx context.Context | |||
| svcCtx *svc.ServiceContext | |||
| } | |||
| func NewGetClusterListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetClusterListLogic { | |||
| return &GetClusterListLogic{ | |||
| Logger: logx.WithContext(ctx), | |||
| ctx: ctx, | |||
| svcCtx: svcCtx, | |||
| } | |||
| } | |||
| func (l *GetClusterListLogic) GetClusterList(req *types.GetClusterListReq) (resp *types.GetClusterListResp, err error) { | |||
| resp = &types.GetClusterListResp{} | |||
| //clusters := []models.ScParticipantPhyInfo{} | |||
| l.svcCtx.DbEngin.Find(resp.Clusters).Where("id", req.Id) | |||
| return resp, nil | |||
| } | |||
| @@ -2,13 +2,11 @@ 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" | |||
| "time" | |||
| "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" | |||
| ) | |||
| @@ -39,31 +37,30 @@ func (l *RegisterClusterLogic) RegisterCluster(req *types.RegisterClusterReq) (* | |||
| return &resp, nil | |||
| } | |||
| participant := models.ScParticipantPhyInfo{} | |||
| participant.Token = req.Token | |||
| participant.Name = req.Name | |||
| participant.Address = req.Address | |||
| participant.Type = "CLOUD" | |||
| participant.Id = utils.GenSnowflakeID() | |||
| participant.MetricsUrl = req.MetricsUrl | |||
| participant.CreatedTime = time.Now() | |||
| participant.UpdatedTime = time.Now() | |||
| labelInfo := models.ScParticipantLabelInfo{} | |||
| labelInfo.Id = utils.GenSnowflakeID() | |||
| labelInfo.ParticipantId = participant.Id | |||
| labelInfo.CreatedTime = time.Now() | |||
| labelInfo.Key = "cloud" | |||
| labelInfo.Value = "sealos" | |||
| 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) | |||
| @@ -3463,6 +3463,22 @@ type ShowNodeDetailsResp struct { | |||
| ErrorMsg string `json:"errorMsg,omitempty"` | |||
| } | |||
| type GetClusterListReq struct { | |||
| Id int64 `form:"id"` | |||
| } | |||
| type GetClusterListResp struct { | |||
| Clusters []ClusterInfo `json:"clusters"` | |||
| } | |||
| type ClusterInfo struct { | |||
| Id int64 `json:"id"` | |||
| Name string `json:"name"` | |||
| Address string `json:"address"` | |||
| Token string `json:"token"` | |||
| MetricsUrl string `json:"metricsUrl"` | |||
| } | |||
| type ControllerMetricsReq struct { | |||
| Metrics []string `form:"metrics"` | |||
| ParticipantId int64 `form:"participantId"` | |||
| @@ -1,6 +1,8 @@ | |||
| module gitlink.org.cn/jcce-pcm/pcm-coordinator | |||
| go 1.20 | |||
| go 1.21 | |||
| toolchain go1.21.0 | |||
| require ( | |||
| github.com/JCCE-nudt/zero-contrib/zrpc/registry/nacos v0.0.0-20230419021610-13bbc83fbc3c | |||