func()

in pkg/service/jenkins/jenkins.go [381:430]


func (j JenkinsServiceImpl) ExposeConfiguration(instance *jenkinsApi.Jenkins) (*jenkinsApi.Jenkins, bool, error) {
	upd := false

	jc, err := jenkinsClient.InitJenkinsClient(instance, j.platformService)
	if err != nil {
		return instance, upd, fmt.Errorf("failed to init Jenkins REST client: %w", err)
	}

	if jc == nil {
		return instance, upd, errors.New("jenkins returns nil client")
	}

	sl, err := jc.GetSlaves()
	if err != nil {
		return instance, upd, fmt.Errorf("failed to get Jenkins slave list: %w", err)
	}

	ss := newSlaveArray(sl)

	if !reflect.DeepEqual(instance.Status.Slaves, ss) {
		instance.Status.Slaves = ss
		upd = true
	}

	scopes := []string{defaultCiJobProvisionsDirectory, defaultCdJobProvisionsDirectory}

	var ps []jenkinsApi.JobProvision

	for _, scope := range scopes {
		pr, getJobProvisionsErr := jc.GetJobProvisions(fmt.Sprintf("/job/%v/job/%v", defaultJobProvisionsDirectory, scope))
		if getJobProvisionsErr != nil {
			return instance, upd, fmt.Errorf("failed to get Jenkins Job provisions list for scope %v: %w", scope, getJobProvisionsErr)
		}

		for _, p := range pr {
			ps = append(ps, jenkinsApi.JobProvision{Name: p, Scope: scope})
		}
	}

	if !reflect.DeepEqual(instance.Status.JobProvisions, ps) {
		instance.Status.JobProvisions = ps
		upd = true
	}

	if err := j.createEDPComponent(instance); err != nil {
		return instance, upd, err
	}

	return instance, upd, nil
}