From 088c04d027ff3a833238160772a788a3a0ec1bf5 Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Wed, 30 Mar 2022 15:52:29 +0800 Subject: [PATCH] #1654 fix bug --- routers/api/v1/repo/cloudbrain.go | 12 +++++++----- routers/repo/cloudbrain.go | 6 +++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/routers/api/v1/repo/cloudbrain.go b/routers/api/v1/repo/cloudbrain.go index b2f529dfb..f6fbdc286 100755 --- a/routers/api/v1/repo/cloudbrain.go +++ b/routers/api/v1/repo/cloudbrain.go @@ -71,14 +71,12 @@ func GetCloudbrainTask(ctx *context.APIContext) { } job.Status = result.JobStatus.State + taskRoles := result.TaskRoles + taskRes, _ := models.ConvertToTaskPod(taskRoles[cloudbrain.SubTaskName].(map[string]interface{})) if result.JobStatus.State != string(models.JobWaiting) && result.JobStatus.State != string(models.JobFailed) { - taskRoles := result.TaskRoles - taskRes, _ := models.ConvertToTaskPod(taskRoles[cloudbrain.SubTaskName].(map[string]interface{})) - job.ContainerIp = taskRes.TaskStatuses[0].ContainerIP job.ContainerID = taskRes.TaskStatuses[0].ContainerID job.Status = taskRes.TaskStatuses[0].State - if job.StartTime == 0 && !taskRes.TaskStatuses[0].StartAt.IsZero() { job.StartTime = timeutil.TimeStamp(taskRes.TaskStatuses[0].StartAt.Unix()) } @@ -86,7 +84,11 @@ func GetCloudbrainTask(ctx *context.APIContext) { if result.JobStatus.State != string(models.JobWaiting) { if job.EndTime == 0 && models.IsCloudBrainOneDebugJobTerminal(job.Status) { - job.EndTime = timeutil.TimeStampNow() + if taskRes.TaskStatuses[0].FinishedAt.IsZero() { + job.EndTime = timeutil.TimeStampNow() + } else { + job.EndTime = timeutil.TimeStamp(taskRes.TaskStatuses[0].FinishedAt.Unix()) + } } job.ComputeAndSetDuration() err = models.UpdateJob(job) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index fc1dbfbd0..921dba68a 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -969,7 +969,11 @@ func SyncCloudbrainStatus() { task.StartTime = timeutil.TimeStamp(taskRes.TaskStatuses[0].StartAt.Unix()) } if task.EndTime == 0 && models.IsCloudBrainOneDebugJobTerminal(task.Status) { - task.EndTime = timeutil.TimeStampNow() + if taskRes.TaskStatuses[0].FinishedAt.IsZero() { + task.EndTime = timeutil.TimeStampNow() + } else { + task.EndTime = timeutil.TimeStamp(taskRes.TaskStatuses[0].FinishedAt.Unix()) + } } task.ComputeAndSetDuration() err = models.UpdateJob(task)