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
}