in internal/master/second_job_update_instance_status_handler.go [154:183]
func (h *secondJobUpdateInstanceStatusHandler) getAllWorkers(appGroupId, jobId int64) (*utils.Set, error) {
url := fmt.Sprintf("http://%s/app/getAllUsefulWorkerList.json?appGroupId=%d&jobId=%d", openapi.GetOpenAPIClient().Domain(), appGroupId, jobId)
resp, err := openapi.GetOpenAPIClient().HttpClient().Get(url)
if err != nil {
return nil, fmt.Errorf("HTTP request getAllWorkers failed, appGroupId:%d, err:%s", appGroupId, err.Error())
}
defer resp.Body.Close()
respData, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("Read http http response failed, err=%s ", err.Error())
}
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("Read http post response failed, statusCode=%s ", resp.Status)
}
jsonResp := new(openapi.JSONResult)
if err := json.Unmarshal(respData, jsonResp); err != nil {
return nil, fmt.Errorf("Unmarshal response body failed, respData=%+v ", respData)
}
set := new(utils.Set)
if jsonResp.Data != nil && reflect.TypeOf(jsonResp.Data).Kind() == reflect.Slice {
sliceValue := reflect.ValueOf(jsonResp.Data)
for i := 0; i < sliceValue.Len(); i++ {
item := sliceValue.Index(i).Interface()
set.Add(item)
}
}
return set, nil
}