diff --git a/sdks/scheduler/app.go b/sdks/scheduler/app.go index 8076d63..f491cae 100644 --- a/sdks/scheduler/app.go +++ b/sdks/scheduler/app.go @@ -16,18 +16,33 @@ type App struct { UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;default:null;onUpdate:CURRENT_TIMESTAMP" json:"updatedAt"` // 更新时间 DeletedAt time.Time `gorm:"column:deleted_at;type:timestamp;default:null" json:"-"` // 删除时间 } + +func (App) TableName() string { + return "apps" +} + type AppInstanceDao struct { ID int64 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` // 实例ID Name string `gorm:"column:name;type:varchar(200);not null" json:"name"` // 实例名称 Description string `gorm:"column:description;type:varchar(500);default:null" json:"description"` // 实例描述 Content string `gorm:"column:content;type:text;default:null" json:"content"` // 实例内容 AppID int64 `gorm:"column:app_id;type:bigint;not null" json:"appID"` // 关联应用ID - AppName string `gorm:"-" json:"appName"` // 应用名称 + AppName string `json:"appName"` // 应用名称 UserID cdssdk.UserID `gorm:"column:user_id;type:bigint;default:null" json:"userID"` // 创建者 CreatedAt time.Time `gorm:"column:created_at;type:timestamp;default:CURRENT_TIMESTAMP" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;default:null;onUpdate:CURRENT_TIMESTAMP" json:"updatedAt"` // 更新时间 DeletedAt time.Time `gorm:"column:deleted_at;type:timestamp;default:null" json:"-"` // 删除时间 + + //回显 + AppRunRecords []AppRunRecordDao `gorm:"foreignKey:AppInstanceID;references:ID" json:"appRunRecords"` //运行记录 + Status string `json:"status"` //应用状态 + Role string `json:"role"` //应用角色 } + +func (AppInstanceDao) TableName() string { + return "app_instances" +} + type AppInstance struct { ID int64 `json:"id"` // 实例ID Name string `json:"name"` // 实例名称 @@ -40,8 +55,10 @@ type AppInstance struct { UpdatedAt time.Time `json:"updatedAt"` // 更新时间 DeletedAt time.Time `json:"-"` // 删除时间 - //回显应用状态 - Status string `json:"status"` //应用状态 + //回显 + AppRunRecords []AppRunRecordDao `gorm:"foreignKey:AppInstanceID;references:ID" json:"appRunRecords"` //运行记录 + Status string `json:"status"` //应用状态 + Role string `gorm:"-" json:"role"` //应用角色 } type AppRunRecordDao struct { @@ -50,12 +67,18 @@ type AppRunRecordDao struct { 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"` // 运行日志 - RunID JobSetID ` gorm:"column:run_id;type:varchar(100);default:null" json:"runID"` // 运行ID + RunID JobSetID `gorm:"column:run_id;type:varchar(100);default:null" json:"runID"` // 运行ID RunOutput string `gorm:"column:run_output;type:text;default:null" json:"runOutput"` // 运行输出 UserID cdssdk.UserID `gorm:"column:user_id;type:bigint;default:null" json:"userID"` // 创建者 CreatedAt time.Time `gorm:"column:created_at;type:timestamp;default:CURRENT_TIMESTAMP" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;default:null;onUpdate:CURRENT_TIMESTAMP" json:"updatedAt"` // 更新时间 DeletedAt time.Time `gorm:"column:deleted_at;type:timestamp;default:null" json:"-"` // 删除时间 + + AppRecordParams []AppRecordParam `gorm:"foreignKey:RecordID;references:ID" json:"appRecordParams"` // 运行记录参数 +} + +func (AppRunRecordDao) TableName() string { + return "app_run_records" } type AppRunRecord struct { @@ -64,10 +87,24 @@ type AppRunRecord struct { 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"` // 运行日志 - RunID JobSetID ` gorm:"column:run_id;type:varchar(100);default:null" json:"runID"` // 运行ID + RunID JobSetID `gorm:"column:run_id;type:varchar(100);default:null" json:"runID"` // 运行ID RunOutput string `gorm:"column:run_output;type:text;default:null" json:"runOutput"` // 运行输出 UserID cdssdk.UserID `gorm:"column:user_id;type:bigint;default:null" json:"userID"` // 创建者 CreatedAt time.Time `gorm:"column:created_at;type:timestamp;default:CURRENT_TIMESTAMP" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at;type:timestamp;default:null;onUpdate:CURRENT_TIMESTAMP" json:"updatedAt"` // 更新时间 DeletedAt time.Time `gorm:"column:deleted_at;type:timestamp;default:null" json:"-"` // 删除时间 + + AppRecordParams []AppRecordParam `gorm:"foreignKey:RecordID;references:ID" json:"appRecordParams"` // 运行记录参数 +} + +type AppRecordParam struct { + RecordID int64 `gorm:"column:record_id;type:bigint;not null" json:"recordID"` // 应用运行记录ID + InstanceID AppInstanceID `gorm:"column:instance_id;type:bigint;not null" json:"instanceID"` // 应用实例ID + RunID JobSetID `gorm:"column:run_id;type:varchar(100);not null" json:"runID"` // 运行ID + ParamKey string `gorm:"column:param_key;type:varchar(1000);default:null" json:"paramKey"` // 参数键 + ParamValue string `gorm:"column:param_value;type:varchar(1000);default:null" json:"paramValue"` // 参数值 +} + +func (AppRecordParam) TableName() string { + return "app_record_params" } diff --git a/sdks/scheduler/app_models.go b/sdks/scheduler/app_models.go index e33e477..ec27501 100644 --- a/sdks/scheduler/app_models.go +++ b/sdks/scheduler/app_models.go @@ -6,9 +6,15 @@ import ( "gitlink.org.cn/cloudream/common/utils/serder" ) +const ( + Role = "role" + RoleServer = "server" + RoleClient = "client" +) + type AppInstanceID int64 -type ParticipantID string +type ClientID string type AppSetInfo struct { Apps []AppInfo `json:"apps"` @@ -45,21 +51,17 @@ type FederatedLearningAppInfo struct { AppInfoBase Type string `json:"type"` - 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列表 - JoinedCount int64 `json:"joinedCount"` //已经参与的人数 -} - -type ParticipantInfo struct { - DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id + AppInstanceID AppInstanceID `json:"appInstanceID"` + Name string `json:"name"` + Description string `json:"description"` + ClientCount int `json:"clientCount"` //参与者人数 + ServerJobInfo JobInfo `json:"serverJobInfo"` //服务端作业信息 + ClientJobInfo JobInfo `json:"clientJobInfo"` //客户端作业信息 + Role string `json:"role"` //角色,server/client + IsDataReturn bool `json:"isDataReturn"` //是否需要数据回源 + DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定ID + ClientIDs []ClientID `json:"clientIDs"` //参与者ID列表 + JoinedCount int64 `json:"joinedCount"` //已经参与的人数 } type OtherAppInfo struct {