func()

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
}