|
|
|
@@ -26,6 +26,8 @@ const ( |
|
|
|
JobHasBeenStopped = "S410" |
|
|
|
Public = "public" |
|
|
|
Custom = "custom" |
|
|
|
LogPageSize = 500 |
|
|
|
LogPageTokenExpired = "5m" |
|
|
|
) |
|
|
|
|
|
|
|
func getRestyClient() *resty.Client { |
|
|
|
@@ -279,7 +281,7 @@ func GetJobLog(jobID string) (*models.GetJobLogResult, error) { |
|
|
|
client := getRestyClient() |
|
|
|
var result models.GetJobLogResult |
|
|
|
req := models.GetJobLogParams{ |
|
|
|
Size: "5000", |
|
|
|
Size: strconv.Itoa(LogPageSize), |
|
|
|
Sort: "log.offset", |
|
|
|
QueryInfo: models.QueryInfo{ |
|
|
|
MatchInfo: models.MatchInfo{ |
|
|
|
@@ -293,17 +295,79 @@ func GetJobLog(jobID string) (*models.GetJobLogResult, error) { |
|
|
|
SetAuthToken(TOKEN). |
|
|
|
SetBody(req). |
|
|
|
SetResult(&result). |
|
|
|
Post(HOST + "es/_search?_source=message&scroll=5m") |
|
|
|
Post(HOST + "es/_search?_source=message&scroll=" + LogPageTokenExpired) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
log.Info("GetJobLog failed: %v", err) |
|
|
|
log.Error("GetJobLog failed: %v", err) |
|
|
|
return &result, fmt.Errorf("resty GetJobLog: %v, %s", err, res.String()) |
|
|
|
} |
|
|
|
|
|
|
|
if !strings.Contains(res.Status(), strconv.Itoa(http.StatusOK)) { |
|
|
|
log.Info("res.Status(): %s, response: %s", res.Status(), res.String()) |
|
|
|
log.Error("res.Status(): %s, response: %s", res.Status(), res.String()) |
|
|
|
return &result, errors.New(res.String()) |
|
|
|
} |
|
|
|
|
|
|
|
return &result, nil |
|
|
|
} |
|
|
|
|
|
|
|
func GetJobAllLog(scrollID string) (*models.GetJobLogResult, error) { |
|
|
|
checkSetting() |
|
|
|
client := getRestyClient() |
|
|
|
var result models.GetJobLogResult |
|
|
|
req := models.GetAllJobLogParams{ |
|
|
|
Scroll: LogPageTokenExpired, |
|
|
|
ScrollID: scrollID, |
|
|
|
} |
|
|
|
|
|
|
|
res, err := client.R(). |
|
|
|
SetHeader("Content-Type", "application/json"). |
|
|
|
SetAuthToken(TOKEN). |
|
|
|
SetBody(req). |
|
|
|
SetResult(&result). |
|
|
|
Post(HOST + "es/_search/scroll") |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
log.Error("GetJobAllLog failed: %v", err) |
|
|
|
return &result, fmt.Errorf("resty GetJobAllLog: %v, %s", err, res.String()) |
|
|
|
} |
|
|
|
|
|
|
|
if !strings.Contains(res.Status(), strconv.Itoa(http.StatusOK)) { |
|
|
|
log.Error("res.Status(): %s, response: %s", res.Status(), res.String()) |
|
|
|
return &result, errors.New(res.String()) |
|
|
|
} |
|
|
|
|
|
|
|
return &result, nil |
|
|
|
} |
|
|
|
|
|
|
|
func DeleteJobLogToken(scrollID string) (error) { |
|
|
|
checkSetting() |
|
|
|
client := getRestyClient() |
|
|
|
var result models.DeleteJobLogTokenResult |
|
|
|
req := models.DeleteJobLogTokenParams{ |
|
|
|
ScrollID: scrollID, |
|
|
|
} |
|
|
|
|
|
|
|
res, err := client.R(). |
|
|
|
SetHeader("Content-Type", "application/json"). |
|
|
|
SetAuthToken(TOKEN). |
|
|
|
SetBody(req). |
|
|
|
SetResult(&result). |
|
|
|
Delete(HOST + "es/_search/scroll") |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
log.Error("DeleteJobLogToken failed: %v", err) |
|
|
|
return fmt.Errorf("resty DeleteJobLogToken: %v, %s", err, res.String()) |
|
|
|
} |
|
|
|
|
|
|
|
if !strings.Contains(res.Status(), strconv.Itoa(http.StatusOK)) { |
|
|
|
log.Error("res.Status(): %s, response: %s", res.Status(), res.String()) |
|
|
|
return errors.New(res.String()) |
|
|
|
} |
|
|
|
|
|
|
|
if !result.Succeeded { |
|
|
|
log.Error("DeleteJobLogToken failed") |
|
|
|
return errors.New("DeleteJobLogToken failed") |
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
} |