func()

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
}