Signed-off-by: jagger <cossjie@foxmail.com>
Former-commit-id: ac8e28da5b
pull/209/head
| @@ -1234,12 +1234,24 @@ type TaskStatusResp { | |||||
| Saved int `json:"Saved"` | Saved int `json:"Saved"` | ||||
| } | } | ||||
| type TaskDetailsResp { | |||||
| Name string `json:"name"` | |||||
| description string `json:"description"` | |||||
| StartTime string `json:"startTime"` | |||||
| EndTime string `json:"endTime"` | |||||
| Strategy int64 `json:"strategy"` | |||||
| SynergyStatus int64 `json:"synergyStatus"` | |||||
| ClusterInfos []*ClusterInfo `json:"clusterInfos"` | |||||
| } | |||||
| type ( | |||||
| TaskDetailsResp { | |||||
| Name string `json:"name"` | |||||
| description string `json:"description"` | |||||
| StartTime string `json:"startTime"` | |||||
| EndTime string `json:"endTime"` | |||||
| Strategy int64 `json:"strategy"` | |||||
| SynergyStatus int64 `json:"synergyStatus"` | |||||
| ClusterInfos []*ClusterInfo `json:"clusterInfos"` | |||||
| SubTaskInfos []*SubTaskInfo `json:"subTaskInfos"` | |||||
| } | |||||
| SubTaskInfo{ | |||||
| Id string `json:"id" db:"id"` | |||||
| Name string `json:"name" db:"name"` | |||||
| ClusterId string `json:"clusterId" db:"cluster_id"` | |||||
| ClusterName string `json:"clusterName" db:"cluster_name"` | |||||
| Status string `json:"status" db:"status"` | |||||
| Remark string `json:"remark" db:"remark"` | |||||
| } | |||||
| ) | |||||
| @@ -106,6 +106,7 @@ func (l *CommitGeneralTaskLogic) CommitGeneralTask(req *types.GeneralTaskReq) er | |||||
| sStruct := UnMarshalK8sStruct(s, int64(r.Replica)) | sStruct := UnMarshalK8sStruct(s, int64(r.Replica)) | ||||
| unString, _ := sStruct.MarshalJSON() | unString, _ := sStruct.MarshalJSON() | ||||
| taskCloud.Id = utils.GenSnowflakeIDUint() | taskCloud.Id = utils.GenSnowflakeIDUint() | ||||
| taskCloud.Name = sStruct.GetName() + "-" + sStruct.GetKind() | |||||
| taskCloud.TaskId = uint(taskModel.Id) | taskCloud.TaskId = uint(taskModel.Id) | ||||
| clusterId, _ := strconv.ParseUint(r.ClusterId, 10, 64) | clusterId, _ := strconv.ParseUint(r.ClusterId, 10, 64) | ||||
| taskCloud.AdapterId = uint(adapterId) | taskCloud.AdapterId = uint(adapterId) | ||||
| @@ -32,18 +32,22 @@ func (l *TaskDetailsLogic) TaskDetails(req *types.FId) (resp *types.TaskDetailsR | |||||
| if errors.Is(l.svcCtx.DbEngin.Where("id", req.Id).First(&task).Error, gorm.ErrRecordNotFound) { | if errors.Is(l.svcCtx.DbEngin.Where("id", req.Id).First(&task).Error, gorm.ErrRecordNotFound) { | ||||
| return nil, errors.New("记录不存在") | return nil, errors.New("记录不存在") | ||||
| } | } | ||||
| clusterIds := make([]int64, 0) | |||||
| clusterIds := make([]string, 0) | |||||
| var cList []*types.ClusterInfo | var cList []*types.ClusterInfo | ||||
| var subList []*types.SubTaskInfo | |||||
| switch task.AdapterTypeDict { | switch task.AdapterTypeDict { | ||||
| case 0: | case 0: | ||||
| l.svcCtx.DbEngin.Table("task_cloud").Select("cluster_id").Where("task_id", task.Id).Scan(&clusterIds) | |||||
| if len(clusterIds) <= 0 { | |||||
| l.svcCtx.DbEngin.Table("task_vm").Select("cluster_id").Where("task_id", task.Id).Find(&clusterIds) | |||||
| l.svcCtx.DbEngin.Table("task_cloud").Where("task_id", task.Id).Scan(&subList) | |||||
| if len(subList) <= 0 { | |||||
| l.svcCtx.DbEngin.Table("task_vm").Where("task_id", task.Id).Find(&subList) | |||||
| } | } | ||||
| case 1: | case 1: | ||||
| l.svcCtx.DbEngin.Table("task_ai").Select("cluster_id").Where("task_id", task.Id).Scan(&clusterIds) | |||||
| l.svcCtx.DbEngin.Table("task_ai").Where("task_id", task.Id).Scan(&subList) | |||||
| case 2: | case 2: | ||||
| l.svcCtx.DbEngin.Table("task_hpc").Select("cluster_id").Where("task_id", task.Id).Scan(&clusterIds) | |||||
| l.svcCtx.DbEngin.Table("task_hpc").Where("task_id", task.Id).Scan(&subList) | |||||
| } | |||||
| for _, sub := range subList { | |||||
| clusterIds = append(clusterIds, sub.ClusterId) | |||||
| } | } | ||||
| err = l.svcCtx.DbEngin.Table("t_cluster").Where("id in ?", clusterIds).Scan(&cList).Error | err = l.svcCtx.DbEngin.Table("t_cluster").Where("id in ?", clusterIds).Scan(&cList).Error | ||||
| if err != nil { | if err != nil { | ||||
| @@ -51,5 +55,6 @@ func (l *TaskDetailsLogic) TaskDetails(req *types.FId) (resp *types.TaskDetailsR | |||||
| } | } | ||||
| utils.Convert(&task, &resp) | utils.Convert(&task, &resp) | ||||
| resp.ClusterInfos = cList | resp.ClusterInfos = cList | ||||
| resp.SubTaskInfos = subList | |||||
| return | return | ||||
| } | } | ||||
| @@ -91,7 +91,7 @@ func NewServiceContext(c config.Config) *ServiceContext { | |||||
| NamingStrategy: schema.NamingStrategy{ | NamingStrategy: schema.NamingStrategy{ | ||||
| SingularTable: true, // 使用单数表名,启用该选项,此时,`User` 的表名应该是 `t_user` | SingularTable: true, // 使用单数表名,启用该选项,此时,`User` 的表名应该是 `t_user` | ||||
| }, | }, | ||||
| Logger: logger.Default.LogMode(logger.Error), | |||||
| Logger: logger.Default.LogMode(logger.Info), | |||||
| }) | }) | ||||
| if err != nil { | if err != nil { | ||||
| logx.Errorf("数据库连接失败, err%v", err) | logx.Errorf("数据库连接失败, err%v", err) | ||||
| @@ -1166,6 +1166,16 @@ type TaskDetailsResp struct { | |||||
| Strategy int64 `json:"strategy"` | Strategy int64 `json:"strategy"` | ||||
| SynergyStatus int64 `json:"synergyStatus"` | SynergyStatus int64 `json:"synergyStatus"` | ||||
| ClusterInfos []*ClusterInfo `json:"clusterInfos"` | ClusterInfos []*ClusterInfo `json:"clusterInfos"` | ||||
| SubTaskInfos []*SubTaskInfo `json:"subTaskInfos"` | |||||
| } | |||||
| type SubTaskInfo struct { | |||||
| Id string `json:"id" db:"id"` | |||||
| Name string `json:"name" db:"name"` | |||||
| ClusterId string `json:"clusterId" db:"cluster_id"` | |||||
| ClusterName string `json:"clusterName" db:"cluster_name"` | |||||
| Status string `json:"status" db:"status"` | |||||
| Remark string `json:"remark" db:"remark"` | |||||
| } | } | ||||
| type CommitHpcTaskReq struct { | type CommitHpcTaskReq struct { | ||||
| @@ -7,6 +7,7 @@ import ( | |||||
| type TaskCloudModel struct { | type TaskCloudModel struct { | ||||
| Id uint `json:"id" gorm:"primarykey;not null;comment:id"` | Id uint `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"` | TaskId uint `json:"taskId" gorm:"not null;comment:task表id"` | ||||
| AdapterId uint `json:"adapterId" gorm:"not null;comment:适配器id"` | AdapterId uint `json:"adapterId" gorm:"not null;comment:适配器id"` | ||||
| AdapterName string `json:"adapterName" gorm:"not null;comment:适配器名称"` | AdapterName string `json:"adapterName" gorm:"not null;comment:适配器名称"` | ||||