From f3093cdbbc5aacc349b858871f3badb3e9f1f922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20S=C4=99k?= Date: Tue, 25 Dec 2018 17:09:20 +0100 Subject: [PATCH] Fix CreateOrUpdateJob function --- pkg/controller/jenkins/client/jenkins.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pkg/controller/jenkins/client/jenkins.go b/pkg/controller/jenkins/client/jenkins.go index 4ea5d99e..af2e54c0 100644 --- a/pkg/controller/jenkins/client/jenkins.go +++ b/pkg/controller/jenkins/client/jenkins.go @@ -2,15 +2,17 @@ package client import ( "bytes" + "errors" "fmt" "net/http" "os/exec" "strings" "github.com/bndr/gojenkins" - "errors" ) +var errorNotFound = errors.New("404") + // Jenkins defines Jenkins API type Jenkins interface { GenerateToken(userName, tokenName string) (*UserToken, error) @@ -30,7 +32,7 @@ type Jenkins interface { GetLabel(name string) (*gojenkins.Label, error) GetBuild(jobName string, number int64) (*gojenkins.Build, error) GetJob(id string, parentIDs ...string) (*gojenkins.Job, error) - GetSubJob(parentId string, childId string) (*gojenkins.Job, error) + GetSubJob(parentID string, childID string) (*gojenkins.Job, error) GetFolder(id string, parents ...string) (*gojenkins.Folder, error) GetAllNodes() ([]*gojenkins.Node, error) GetAllBuildIds(job string) ([]gojenkins.JobBuild, error) @@ -64,21 +66,22 @@ func (jenkins *jenkins) CreateOrUpdateJob(config string, options ...interface{}) } else { return nil, errors.New("error creating job, job name is missing") } + // create or update job, err := jenkins.GetJob(qr["name"]) - if jobNotExists(err) { - _, err := jenkins.CreateJob(config, options) - return nil, err + if isNotFoundError(err) { + return jenkins.CreateJob(config, options...) } else if err != nil { - err := job.UpdateConfig(config) return nil, err } + + err = job.UpdateConfig(config) return job, err } -func jobNotExists(err error) bool { +func isNotFoundError(err error) bool { if err != nil { - return err.Error() == errors.New("404").Error() + return err.Error() == errorNotFound.Error() } return false }