容器接口更新

This commit is contained in:
zhangwei 2025-07-30 14:40:32 +08:00
parent db6179e9ef
commit c98ab4a888
8 changed files with 64 additions and 16 deletions

View File

@ -2,6 +2,7 @@ package cloud
import (
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/cloud"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result"
"io"
"k8s.io/apimachinery/pkg/util/json"
@ -24,7 +25,11 @@ func ContainerCreateHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
result.ParamErrorResult(r, w, err)
return
}
// 获取用户信息
userStr := r.Header.Get("User")
user := &models.JccUserInfo{}
json.Unmarshal([]byte(userStr), user)
req.UserId = user.Id
l := cloud.NewContainerCreateLogic(r.Context(), svcCtx)
resp, err := l.ContainerCreate(&req)
result.HttpResult(r, w, resp, err)

View File

@ -37,11 +37,11 @@ func (l *UpdateClusterLogic) UpdateCluster(req *types.ClusterCreateReq) (resp *t
}
utils.Convert(req, &cluster)
// 获取集群经纬度
location, err := GeoMap(req.RegionName)
if err != nil {
return nil, err
}
cluster.Location = location
//location, err := GeoMap(req.RegionName)
//if err != nil {
// return nil, err
//}
//cluster.Location = location
l.svcCtx.DbEngin.Table("t_cluster").Model(&cluster).Updates(&cluster)
// 更新资源价格表
clusterId, err := strconv.ParseInt(req.Id, 10, 64)

View File

@ -60,7 +60,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) (r
logx.Info("commit success")
}
}()
adapterId, _ := strconv.ParseUint(req.AdapterIds[0], 10, 64)
adapterId, _ := strconv.ParseInt(req.AdapterIds[0], 10, 64)
var clusters []*models.CloudModel
err = tx.Raw("SELECT * FROM `t_cluster` where adapter_id in ? and id in ?", req.AdapterIds, req.ClusterIds).Scan(&clusters).Error
if err != nil {
@ -111,11 +111,11 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) (r
for _, s := range req.ReqBody {
sStruct := UnMarshalK8sStruct(s, int64(r.Replica))
unString, _ := sStruct.MarshalJSON()
taskCloud.Id = utils.GenSnowflakeIDUint()
taskCloud.Id = utils.GenSnowflakeID()
taskCloud.Name = sStruct.GetName() + "-" + sStruct.GetKind()
taskCloud.TaskId = uint(taskModel.Id)
taskCloud.TaskId = taskModel.Id
clusterId, _ := strconv.ParseUint(r.ClusterId, 10, 64)
taskCloud.AdapterId = uint(adapterId)
taskCloud.AdapterId = adapterId
taskCloud.AdapterName = adapterName
taskCloud.UserId = req.UserId
taskCloud.ClusterId = uint(clusterId)

View File

@ -21,7 +21,12 @@ import (
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/participant/cloud"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
container "gitlink.org.cn/JointCloud/pcm-coordinator/internal/types/cloud"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models"
cloud2 "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models/cloud"
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils"
"net/http"
"time"
)
type ContainerCreateLogic struct {
@ -39,8 +44,10 @@ func NewContainerCreateLogic(ctx context.Context, svcCtx *svc.ServiceContext) *C
}
func (l *ContainerCreateLogic) ContainerCreate(req *container.CreateParam) (resp interface{}, err error) {
param := &cloud.CreateParam{
Name: req.Name,
Description: req.Description,
Port: req.Port,
Cpu: req.Cpu,
Memory: req.Memory,
@ -59,6 +66,38 @@ func (l *ContainerCreateLogic) ContainerCreate(req *container.CreateParam) (resp
if create.Code != http.StatusOK {
return nil, errors.New(create.Message)
}
resp = create.Data
// 构建主任务结构体
taskModel := models.Task{
Id: utils.GenSnowflakeID(),
Status: constants.Saved,
Description: req.Description,
Name: req.Name,
UserId: req.UserId,
AdapterTypeDict: "0",
CommitTime: time.Now(),
}
// 保存任务数据到数据库
tx := l.svcCtx.DbEngin.Create(&taskModel)
if tx.Error != nil {
}
var adapterId int64
tx.Table("t_cluster").Select("adapter_id").Where("id=?", req.ClusterId).Find(&adapterId)
// 构建cloud任务结构体
cloudTaskModel := cloud2.TaskCloudModel{
Id: utils.GenSnowflakeID(),
TaskId: taskModel.Id,
Name: req.Name,
AdapterId: adapterId,
Status: constants.Saved,
Namespace: "default",
UserId: req.UserId,
}
// 保存任务数据到数据库
tx = l.svcCtx.DbEngin.Create(&cloudTaskModel)
if tx.Error != nil {
}
resp = taskModel.Id
return
}

View File

@ -13,6 +13,7 @@ type Resp struct {
type CreateParam struct {
ContainerGroupName string `json:"containerGroupName"`
Description string `json:"description,omitempty"`
Name string `json:"name"`
Image string `json:"image"`
Cpu string `json:"cpu,omitempty"`

View File

@ -59,8 +59,8 @@ func NewCloudScheduler(ctx context.Context, val string, scheduler *scheduler.Sch
func (as *CloudScheduler) GetNewStructForDb(task *response.TaskInfo, resource string, participantId int64) (interface{}, error) {
c := cloud.TaskCloudModel{
AdapterId: uint(participantId),
TaskId: uint(task.TaskId),
AdapterId: (participantId),
TaskId: (task.TaskId),
Status: constants.Saved,
YamlString: as.yamlString,
}

View File

@ -12,6 +12,8 @@ type ContainerDeleteParameter interface {
type CreateParam struct {
ClusterId string `json:"clusterId,omitempty"`
ContainerGroupName string `json:"containerGroupName"`
Description string `json:"description,omitempty"`
UserId int64 `json:"userId"`
Name string `json:"name"`
Image string `json:"image"`
Cpu string `json:"cpu,omitempty"`
@ -61,6 +63,7 @@ type EciDeleteParam struct {
// 获取容器信息
type GetParam struct {
TaskId string `json:"taskId"`
ClusterId string `json:"clusterId,omitempty"`
Name string `json:"name,omitempty"`
GetParameter ContainerGetParameter `json:"getParameter,omitempty"`

View File

@ -6,10 +6,10 @@ import (
)
type TaskCloudModel struct {
Id uint `json:"id" gorm:"primarykey;not null;comment:id"`
Id int64 `json:"id" gorm:"primarykey;not null;comment:id"`
Name string `json:"name" gorm:"null;comment:名称"`
TaskId uint `json:"taskId" gorm:"not null;comment:task表id"`
AdapterId uint `json:"adapterId" gorm:"not null;comment:适配器id"`
TaskId int64 `json:"taskId" gorm:"not null;comment:task表id"`
AdapterId int64 `json:"adapterId" gorm:"not null;comment:适配器id"`
AdapterName string `json:"adapterName" gorm:"not null;comment:适配器名称"`
ClusterId uint `json:"clusterId" gorm:"not null;comment:集群id"`
ClusterName string `json:"clusterName" gorm:"not null;comment:集群名称"`