From 2912212142de9f021e8b2e1ddc4af8fe158c9620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20S=C4=99k?= Date: Fri, 11 Jan 2019 10:21:41 +0100 Subject: [PATCH] Add files synchronization for user/base configuration --- pkg/controller/jenkins/groovy/groovy.go | 69 +++++++++++++++++++++---- 1 file changed, 58 insertions(+), 11 deletions(-) diff --git a/pkg/controller/jenkins/groovy/groovy.go b/pkg/controller/jenkins/groovy/groovy.go index 980b8f18..4e1ec002 100644 --- a/pkg/controller/jenkins/groovy/groovy.go +++ b/pkg/controller/jenkins/groovy/groovy.go @@ -14,6 +14,10 @@ import ( k8s "sigs.k8s.io/controller-runtime/pkg/client" ) +const ( + jobHashParameterName = "hash" +) + // Groovy defines API for groovy scripts execution via jenkins job type Groovy struct { jenkinsClient jenkinsclient.Jenkins @@ -36,7 +40,7 @@ func New(jenkinsClient jenkinsclient.Jenkins, k8sClient k8s.Client, logger logr. // ConfigureGroovyJob configures jenkins job for executing groovy scripts func (g *Groovy) ConfigureGroovyJob() error { - _, err := g.jenkinsClient.CreateOrUpdateJob(fmt.Sprintf(configurationJobXMLFmt, g.scriptsPath, g.scriptsPath), g.jobName) + _, err := g.jenkinsClient.CreateOrUpdateJob(fmt.Sprintf(configurationJobXMLFmt, g.scriptsPath), g.jobName) if err != nil { return err } @@ -47,7 +51,8 @@ func (g *Groovy) ConfigureGroovyJob() error { func (g *Groovy) EnsureGroovyJob(secretOrConfigMapData map[string]string, jenkins *virtuslabv1alpha1.Jenkins) (bool, error) { jobsClient := jobs.New(g.jenkinsClient, g.k8sClient, g.logger) - done, err := jobsClient.EnsureBuildJob(g.jobName, g.calculateHash(secretOrConfigMapData), map[string]string{}, jenkins, true) + hash := g.calculateHash(secretOrConfigMapData) + done, err := jobsClient.EnsureBuildJob(g.jobName, hash, map[string]string{jobHashParameterName: hash}, jenkins, true) if err != nil { return false, err } @@ -66,27 +71,69 @@ func (g *Groovy) calculateHash(secretOrConfigMapData map[string]string) string { hash.Write([]byte(key)) hash.Write([]byte(secretOrConfigMapData[key])) } - return base64.URLEncoding.EncodeToString(hash.Sum(nil)) + return base64.StdEncoding.EncodeToString(hash.Sum(nil)) } const configurationJobXMLFmt = ` - + false - - - false