From 4aa95f8c69b66c1c34e76bc514038afd84e3d33e Mon Sep 17 00:00:00 2001 From: qiwang <1364512070@qq.com> Date: Thu, 27 Feb 2025 18:52:38 +0800 Subject: [PATCH 1/2] fix:update flavor_id in modelarts --- internal/storeLink/modelarts.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/storeLink/modelarts.go b/internal/storeLink/modelarts.go index 806baa04b..db5070431 100644 --- a/internal/storeLink/modelarts.go +++ b/internal/storeLink/modelarts.go @@ -204,7 +204,7 @@ func (m *ModelArtsLink) SubmitTask(ctx context.Context, imageId string, cmd stri }, Spec: &modelarts.SpecsC{ Resource: &modelarts.ResourceCreateTraining{ - FlavorId: "modelarts.kat1.xlarge", + FlavorId: resourceId, NodeCount: 1, }, }, @@ -647,7 +647,13 @@ func (m *ModelArtsLink) Execute(ctx context.Context, option *option.AiOption, mo if ascendNum == v.FlavorInfo.Npu.UnitNum { option.ResourceId = v.FlavorId break - } else if ascendNum == 3 { + } else if ascendNum <= 1 { + option.ResourceId = "modelarts.kat1.xlarge" + break + } else if ascendNum == 2 { + option.ResourceId = "modelarts.kat1.2xlarge" + break + } else if ascendNum > 2 && ascendNum <= 4 { option.ResourceId = "modelarts.kat1.4xlarge" break } else if ascendNum >= 5 && ascendNum <= 8 { From a229b9ff7f0ed9cc0d2e0dba354ecde49715cbfa Mon Sep 17 00:00:00 2001 From: zhangwei <894646498@qq.com> Date: Mon, 3 Mar 2025 09:42:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=B6=85=E7=AE=97?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=B8=8A=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- desc/core/pcm-core.api | 6 ++-- desc/hpc/pcm-hpc.api | 29 ++++++++++--------- internal/handler/hpc/commithpctaskhandler.go | 4 +++ internal/logic/adapters/createclusterlogic.go | 9 +++++- .../logic/cloud/commitgeneraltasklogic.go | 11 +++---- internal/logic/hpc/commithpctasklogic.go | 5 +--- internal/types/types.go | 3 ++ pkg/constants/cost.go | 5 ++++ 8 files changed, 46 insertions(+), 26 deletions(-) create mode 100644 pkg/constants/cost.go diff --git a/desc/core/pcm-core.api b/desc/core/pcm-core.api index 0f79fd639..de5caf3d5 100644 --- a/desc/core/pcm-core.api +++ b/desc/core/pcm-core.api @@ -902,6 +902,8 @@ type ( RegionDict string `json:"regionDict,optional"` RegionName string `json:"regionName,optional"` Environment map[string]string `json:"environment,optional"` + CostType string `json:"costType,optional"` + Price int `json:"price,optional"` } ClusterInfo { Id string `json:"id,omitempty" db:"id"` @@ -1366,7 +1368,7 @@ type ( } ) -type ResourcePrice struct { +type ResourcePrice { ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` ResourceID int64 `json:"resourceId" gorm:"column:resource_id"` Price int `json:"price" gorm:"column:price"` @@ -1374,7 +1376,7 @@ type ResourcePrice struct { ResourceType string `json:"resourceType" gorm:"column:resource_type"` } -type ResourceCostRecord struct { +type ResourceCostRecord { ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` ResourcePriceID int64 `json:"resourcePriceId" gorm:"column:resource_price_id"` UserId int64 `json:"userId" gorm:"column:user_id"` diff --git a/desc/hpc/pcm-hpc.api b/desc/hpc/pcm-hpc.api index d173232d7..13adfa200 100644 --- a/desc/hpc/pcm-hpc.api +++ b/desc/hpc/pcm-hpc.api @@ -30,8 +30,9 @@ type ( StdInput string `json:"stdInput,optional"` ClusterType string `json:"clusterType,optional"` Partition string `json:"partition"` - UserId int64 `json:"userId,optional"` - Token string `json:"token,optional"` + UserId int64 `json:"userId,optional"` + Token string `json:"token,optional"` + UserIp string `json:"userIp,optional"` } commitHpcTaskResp { @@ -155,24 +156,24 @@ type QueueAsset { type ( /******************instance center*************************/ - HpcInstanceCenterReq{ - InstanceType int32 `form:"instanceType,optional"` - InstanceClass string `form:"instanceClass,optional"` - InstanceName string `form:"instanceName,optional"` + HpcInstanceCenterReq { + InstanceType int32 `form:"instanceType,optional"` + InstanceClass string `form:"instanceClass,optional"` + InstanceName string `form:"instanceName,optional"` PageInfo } HpcInstanceCenterResp { InstanceCenterList []HpcInstanceCenterList `json:"instanceCenterList" copier:"InstanceCenterList"` - TotalCount int `json:"totalCount"` + TotalCount int `json:"totalCount"` } HpcInstanceCenterList { - LogoPath string `json:"logo_path"` - InstanceName string `json:"instance_name"` - InstanceType int32 `json:"instance_type"` - InstanceClass string `json:"instance_class"` - InstanceClassChinese string `json:"instance_class_chinese"` - Description string `json:"description"` - Version string `json:"version"` + LogoPath string `json:"logo_path"` + InstanceName string `json:"instance_name"` + InstanceType int32 `json:"instance_type"` + InstanceClass string `json:"instance_class"` + InstanceClassChinese string `json:"instance_class_chinese"` + Description string `json:"description"` + Version string `json:"version"` } /******************instance center*************************/ diff --git a/internal/handler/hpc/commithpctaskhandler.go b/internal/handler/hpc/commithpctaskhandler.go index 1f096c88a..e116dd100 100644 --- a/internal/handler/hpc/commithpctaskhandler.go +++ b/internal/handler/hpc/commithpctaskhandler.go @@ -7,6 +7,7 @@ import ( "gitlink.org.cn/JointCloud/pcm-coordinator/internal/types" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/models" "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils" "k8s.io/apimachinery/pkg/util/json" "net/http" ) @@ -18,6 +19,9 @@ func CommitHpcTaskHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { result.ParamErrorResult(r, w, err) return } + // 获取ip信息 + ip := utils.GetClientIP(r) + req.UserIp = ip // 获取token信息 token := r.Header.Get("Authorization") req.Token = token diff --git a/internal/logic/adapters/createclusterlogic.go b/internal/logic/adapters/createclusterlogic.go index d57640ad4..4e14fc473 100644 --- a/internal/logic/adapters/createclusterlogic.go +++ b/internal/logic/adapters/createclusterlogic.go @@ -6,6 +6,7 @@ import ( "fmt" "gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc" "gitlink.org.cn/JointCloud/pcm-coordinator/internal/types" + "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/constants" tool "gitlink.org.cn/JointCloud/pcm-coordinator/pkg/utils" "gorm.io/gorm" "io/ioutil" @@ -63,7 +64,13 @@ func (l *CreateClusterLogic) CreateCluster(req *types.ClusterCreateReq) (resp *t logx.Errorf(tx.Error.Error()) return nil, errors.New("cluster create failed") } - + // 创建资源价格信息 + resourcePrice := &types.ResourcePrice{ + Price: req.Price, + ResourceType: constants.CLUSTER, + CostType: req.CostType, + } + tx = l.svcCtx.DbEngin.Table("resource_cost").Create(resourcePrice) // push cluster info to adapter go func() { var adapterServer string diff --git a/internal/logic/cloud/commitgeneraltasklogic.go b/internal/logic/cloud/commitgeneraltasklogic.go index 8289c199d..8b4f0453f 100644 --- a/internal/logic/cloud/commitgeneraltasklogic.go +++ b/internal/logic/cloud/commitgeneraltasklogic.go @@ -134,8 +134,13 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er db := tx.Table("task").Create(&taskModel) db = tx.Table("task_cloud").Create(&taskClouds) db = tx.Table("t_notice").Create(¬iceInfo) + + if db.Error != nil { + logx.Errorf("Task creation failure, err: %v", db.Error) + return errors.New("task creation failure") + } // 数据上链 - bytes, err := json.Marshal(taskModel) + bytes, _ := json.Marshal(taskModel) if err != nil { return err } @@ -148,10 +153,6 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er Token: req.Token, Args: []string{strconv.FormatInt(taskModel.Id, 10), string(bytes)}, }) - if db.Error != nil { - logx.Errorf("Task creation failure, err: %v", db.Error) - return errors.New("task creation failure") - } return nil } diff --git a/internal/logic/hpc/commithpctasklogic.go b/internal/logic/hpc/commithpctasklogic.go index 374dd7674..e2d99a81b 100644 --- a/internal/logic/hpc/commithpctasklogic.go +++ b/internal/logic/hpc/commithpctasklogic.go @@ -97,10 +97,6 @@ func (l *CommitHpcTaskLogic) CommitHpcTask(req *types.CommitHpcTaskReq) (resp *t logx.Info("提交job到指定集群") jobId, err := submitJob(&hpcInfo, &clusterInfo, server) - //if err != nil { - // return nil, err - //} - //logx.Info("提交job到指定集群完成") // 保存操作记录 noticeInfo := clientCore.NoticeInfo{ AdapterId: clusterInfo.AdapterId, @@ -122,6 +118,7 @@ func (l *CommitHpcTaskLogic) CommitHpcTask(req *types.CommitHpcTaskReq) (resp *t // 数据上链 bytes, _ := json.Marshal(taskModel) remoteUtil.Evidence(remoteUtil.EvidenceParam{ + UserIp: req.UserIp, Url: l.svcCtx.Config.BlockChain.Url, ContractAddress: l.svcCtx.Config.BlockChain.ContractAddress, FunctionName: l.svcCtx.Config.BlockChain.FunctionName, diff --git a/internal/types/types.go b/internal/types/types.go index 82e26cbef..f9de96885 100644 --- a/internal/types/types.go +++ b/internal/types/types.go @@ -835,6 +835,8 @@ type ClusterCreateReq struct { RegionDict string `json:"regionDict,optional"` RegionName string `json:"regionName,optional"` Environment map[string]string `json:"environment,optional"` + CostType string `json:"costType,optional"` + Price int `json:"price,optional"` } type ClusterInfo struct { @@ -1323,6 +1325,7 @@ type CommitHpcTaskReq struct { Partition string `json:"partition"` UserId int64 `json:"userId,optional"` Token string `json:"token,optional"` + UserIp string `json:"userIp,optional"` } type CommitHpcTaskResp struct { diff --git a/pkg/constants/cost.go b/pkg/constants/cost.go new file mode 100644 index 000000000..6c15af61d --- /dev/null +++ b/pkg/constants/cost.go @@ -0,0 +1,5 @@ +package constants + +const ( + CLUSTER = "0" +)