in pkg/client/jenkins/jenkins.go [165:204]
func (jc JenkinsClient) GetSlaves() ([]string, error) {
crumb, err := jc.GetCrumb()
if err != nil {
return nil, fmt.Errorf("failed to get crumb: %w", err)
}
headers := make(map[string]string)
if crumb != "" {
headers[jenkinsCrumbKey] = crumb
}
directory, err := platformHelper.CreatePathToTemplateDirectory(defaultTechScriptsDirectory)
if err != nil {
return nil, fmt.Errorf("failed to create path to template dir: %w", err)
}
path := fmt.Sprintf("%v/%v", directory, defaultGetSlavesScript)
cn, err := os.ReadFile(filepath.Clean(path))
if err != nil {
return nil, fmt.Errorf("failed to read File: %w", err)
}
pr := map[string]string{"script": string(cn)}
resp, err := jc.resty.R().
SetQueryParams(pr).
SetHeaders(headers).
Post("/scriptText")
if err != nil {
return nil, fmt.Errorf("failed to obtain Jenkins slaves list: %w", err)
}
if resp.IsError() {
return nil, fmt.Errorf("failed to run tech script %v: status: %s", defaultGetSlavesScript, resp.Status())
}
return helper.GetSlavesList(resp.String()), nil
}