Merge pull request #7594 from wy65701436/fix-gc-log

Fix get log issue of Periodic job
This commit is contained in:
Wenkai Yin 2019-04-30 10:19:17 +08:00 committed by GitHub
commit e64a71d809
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 4 deletions

View File

@ -108,7 +108,7 @@ func (d *DefaultClient) GetJobLog(uuid string) ([]byte, error) {
// GetExecutions ...
func (d *DefaultClient) GetExecutions(periodicJobID string) ([]job.Stats, error) {
url := fmt.Sprintf("%s/api/v1/jobs/%s/executions", d.endpoint, periodicJobID)
url := fmt.Sprintf("%s/api/v1/jobs/%s/executions?page_number=1&page_size=100", d.endpoint, periodicJobID)
req, err := http.NewRequest(http.MethodGet, url, nil)
if err != nil {
return nil, err

View File

@ -169,7 +169,8 @@ func (aj *AJAPI) getLog(id int64) {
aj.SendNotFoundError(errors.New("Failed to get Job"))
return
}
jobID := job.UUID
var jobID string
// to get the latest execution job id, then to query job log.
if job.Kind == common_job.JobKindPeriodic {
exes, err := utils_core.GetJobServiceClient().GetExecutions(job.UUID)
@ -178,10 +179,24 @@ func (aj *AJAPI) getLog(id int64) {
return
}
if len(exes) == 0 {
aj.SendNotFoundError(errors.New("no execution log "))
aj.SendNotFoundError(errors.New("no execution log found"))
return
}
jobID = exes[0].Info.JobID
// get the latest terminal status execution.
for _, exe := range exes {
if exe.Info.Status == "Error" || exe.Info.Status == "Success" {
jobID = exe.Info.JobID
break
}
}
// no execution found
if jobID == "" {
aj.SendNotFoundError(errors.New("no execution log found"))
return
}
} else {
jobID = job.UUID
}
logBytes, err := utils_core.GetJobServiceClient().GetJobLog(jobID)