From d545dd919464b2bc8b56232a170733cfc9ff2ca4 Mon Sep 17 00:00:00 2001 From: jagger Date: Thu, 17 Jul 2025 16:59:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=81=94=E9=82=A6=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=AD=A6=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdks/pcmscheduler/models.go | 2 ++ sdks/scheduler/app.go | 4 ++-- sdks/scheduler/app_models.go | 46 +++++++++++++++++++++++------------- sdks/scheduler/models.go | 10 ++++++++ 4 files changed, 44 insertions(+), 18 deletions(-) diff --git a/sdks/pcmscheduler/models.go b/sdks/pcmscheduler/models.go index eb08aca..f9ce59a 100644 --- a/sdks/pcmscheduler/models.go +++ b/sdks/pcmscheduler/models.go @@ -107,6 +107,8 @@ const ( WaitBroadcast = "WaitBroadcast" Broadcast = "Broadcast" Wait = "Wait" + + FederatedLearning = "federatedLearning" ) type TaskID int64 diff --git a/sdks/scheduler/app.go b/sdks/scheduler/app.go index b7df0f9..877f373 100644 --- a/sdks/scheduler/app.go +++ b/sdks/scheduler/app.go @@ -43,7 +43,7 @@ type AppInstance struct { type AppRunRecordDao struct { ID int64 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` // 运行记录ID - AppInstanceID DataID `gorm:"column:app_instance_id;type:bigint;not null" json:"appInstanceID"` // 关联应用实例ID + AppInstanceID AppInstanceID `gorm:"column:app_instance_id;type:bigint;not null" json:"appInstanceID"` // 关联应用实例ID Content string `gorm:"column:content;type:text;default:null" json:"content"` // 运行内容 Status string `gorm:"column:status;type:varchar(100);not null" json:"status"` // 运行状态 RunLog string `gorm:"column:run_log;type:text;default:null" json:"runLog"` // 运行日志 @@ -57,7 +57,7 @@ type AppRunRecordDao struct { type AppRunRecord struct { ID int64 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` // 运行记录ID - AppInstanceID DataID `gorm:"column:app_instance_id;type:bigint;not null" json:"appInstanceID"` // 关联应用实例ID + AppInstanceID AppInstanceID `gorm:"column:app_instance_id;type:bigint;not null" json:"appInstanceID"` // 关联应用实例ID Content AppInfo `gorm:"column:content;type:text;default:null" json:"content"` // 运行内容 Status string `gorm:"column:status;type:varchar(100);not null" json:"status"` // 运行状态 RunLog string `gorm:"column:run_log;type:text;default:null" json:"runLog"` // 运行日志 diff --git a/sdks/scheduler/app_models.go b/sdks/scheduler/app_models.go index a8e9855..e54caa2 100644 --- a/sdks/scheduler/app_models.go +++ b/sdks/scheduler/app_models.go @@ -6,7 +6,9 @@ import ( "gitlink.org.cn/cloudream/common/utils/serder" ) -type AppInstanceID string +type AppInstanceID int64 + +type ParticipantID string type AppSetInfo struct { Apps []AppInfo `json:"apps"` @@ -43,22 +45,34 @@ type FederatedLearningAppInfo struct { AppInfoBase Type string `json:"type"` - AppInstanceID string `json:"appInstanceID"` - Name string `json:"name"` - Description string `json:"description"` - - ParticipantCount int `json:"participantcount"` //参与者人数 - JobResources JobResources `json:"jobResources"` //作业资源 - JobInfo JobInfo `json:"jobInfo"` - ClientObjectID cdssdk.ObjectID `json:"clientObjectID"` //client代码 - ServerObjectID cdssdk.ObjectID `json:"serverObjectID"` //server代码 - ModelBindID cdssdk.ObjectID `json:"modelBindID"` //模型绑定id - DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id - ImageBindID cdssdk.ObjectID `json:"imageBindID"` //镜像绑定id - JobSetID JobSetID `json:"jobSetID"` //工作集ID - Role string `json:"role"` //角色,initiator/participant + AppInstanceID AppInstanceID `json:"appInstanceID"` + Name string `json:"name"` + Description string `json:"description"` + + ParticipantCount int `json:"participantCount"` //参与者人数 + JobInfo JobInfo `json:"jobInfo"` //作业信息 + Role string `json:"role"` //角色,initiator/participant + IsDataReturn bool `json:"isDataReturn"` // 是否需要数据回源 + ParticipantInfo ParticipantInfo `json:"participantInfo"` + ParticipantIDs []ParticipantID `json:"participantIDs"` //参与者ID列表 + + //ParticipantCount int `json:"participantCount"` //参与者人数 + //JobResources JobResources `json:"jobResources"` //作业资源 + //JobInfo JobInfo `json:"jobInfo"` + //ClientObjectID cdssdk.ObjectID `json:"clientObjectID"` //client代码 + //ServerObjectID cdssdk.ObjectID `json:"serverObjectID"` //server代码 + //ModelBindID cdssdk.ObjectID `json:"modelBindID"` //模型绑定id + //DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id + //ImageBindID cdssdk.ObjectID `json:"imageBindID"` //镜像绑定id + //JobSetID JobSetID `json:"jobSetID"` //工作集ID + //Role string `json:"role"` //角色,initiator/participant //DataReturnJobInfo DataReturnJobInfo `json:"dataReturnJobInfo"` //数据返回作业信息 - IsDataReturn bool `json:"isDataReturn"` + +} + +type ParticipantInfo struct { + DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id + ParticipantID ParticipantID `json:"participantID"` } type OtherAppInfo struct { diff --git a/sdks/scheduler/models.go b/sdks/scheduler/models.go index 1a2c537..837eb0d 100644 --- a/sdks/scheduler/models.go +++ b/sdks/scheduler/models.go @@ -87,6 +87,13 @@ var _ = serder.UseTypeUnionInternallyTagged(&JobInfoTypeUnion, "type") type JobInfoBase struct { LocalJobID string `json:"localJobID"` TargetJob []TargetJobInfo `json:"targetJob"` + + TargetJobType TargetJobType `json:"targetJobType"` +} + +type TargetJobType struct { + JobType string `json:"jobType"` + InputParams map[string]string `json:"inputParams"` } type TargetJobInfo struct { @@ -781,6 +788,9 @@ type BroadcastWaitOutput struct { JobOutputBase Type string `json:"type"` Output JobOutput `json:"output"` + + // 下面是工作流的参数 + WaitIDs []Wait `json:"waitIDs"` } type UploadJobOutput struct { From 1cb0313cb1f758f07bb2496615c941260b0e2f16 Mon Sep 17 00:00:00 2001 From: jagger Date: Fri, 18 Jul 2025 16:15:43 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=81=94=E9=82=A6=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=AD=A6=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdks/scheduler/app.go | 3 +++ sdks/scheduler/app_models.go | 15 +-------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/sdks/scheduler/app.go b/sdks/scheduler/app.go index 877f373..8076d63 100644 --- a/sdks/scheduler/app.go +++ b/sdks/scheduler/app.go @@ -39,6 +39,9 @@ type AppInstance struct { CreatedAt time.Time `json:"createdAt"` // 创建时间 UpdatedAt time.Time `json:"updatedAt"` // 更新时间 DeletedAt time.Time `json:"-"` // 删除时间 + + //回显应用状态 + Status string `json:"status"` //应用状态 } type AppRunRecordDao struct { diff --git a/sdks/scheduler/app_models.go b/sdks/scheduler/app_models.go index e54caa2..e33e477 100644 --- a/sdks/scheduler/app_models.go +++ b/sdks/scheduler/app_models.go @@ -55,24 +55,11 @@ type FederatedLearningAppInfo struct { IsDataReturn bool `json:"isDataReturn"` // 是否需要数据回源 ParticipantInfo ParticipantInfo `json:"participantInfo"` ParticipantIDs []ParticipantID `json:"participantIDs"` //参与者ID列表 - - //ParticipantCount int `json:"participantCount"` //参与者人数 - //JobResources JobResources `json:"jobResources"` //作业资源 - //JobInfo JobInfo `json:"jobInfo"` - //ClientObjectID cdssdk.ObjectID `json:"clientObjectID"` //client代码 - //ServerObjectID cdssdk.ObjectID `json:"serverObjectID"` //server代码 - //ModelBindID cdssdk.ObjectID `json:"modelBindID"` //模型绑定id - //DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id - //ImageBindID cdssdk.ObjectID `json:"imageBindID"` //镜像绑定id - //JobSetID JobSetID `json:"jobSetID"` //工作集ID - //Role string `json:"role"` //角色,initiator/participant - //DataReturnJobInfo DataReturnJobInfo `json:"dataReturnJobInfo"` //数据返回作业信息 - + JoinedCount int64 `json:"joinedCount"` //已经参与的人数 } type ParticipantInfo struct { DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id - ParticipantID ParticipantID `json:"participantID"` } type OtherAppInfo struct {