refactor: minor fixes
This commit is contained in:
parent
f6d8018106
commit
b7f4e25b71
|
|
@ -79,7 +79,7 @@ func TestValidate(t *testing.T) {
|
||||||
t.Run("Validating when plugins data file is not fetched", func(t *testing.T) {
|
t.Run("Validating when plugins data file is not fetched", func(t *testing.T) {
|
||||||
userplugins := []Plugin{{Name: "script-security", Version: "1.77"}, {Name: "git-client", Version: "3.9"}, {Name: "git", Version: "4.8.1"}, {Name: "plain-credentials", Version: "1.7"}}
|
userplugins := []Plugin{{Name: "script-security", Version: "1.77"}, {Name: "git-client", Version: "3.9"}, {Name: "git", Version: "4.8.1"}, {Name: "plain-credentials", Version: "1.7"}}
|
||||||
jenkinscr := *createJenkinsCR(userplugins, true)
|
jenkinscr := *createJenkinsCR(userplugins, true)
|
||||||
got := jenkinscr.ValidateCreate()
|
_, got := jenkinscr.ValidateCreate()
|
||||||
assert.Equal(t, got, errors.New("plugins data has not been fetched"))
|
assert.Equal(t, got, errors.New("plugins data has not been fetched"))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -95,7 +95,7 @@ func TestValidate(t *testing.T) {
|
||||||
{Name: "plain-credentials"}}}
|
{Name: "plain-credentials"}}}
|
||||||
userplugins := []Plugin{{Name: "script-security", Version: "1.77"}, {Name: "git-client", Version: "3.9"}, {Name: "git", Version: "4.8.1"}, {Name: "plain-credentials", Version: "1.7"}}
|
userplugins := []Plugin{{Name: "script-security", Version: "1.77"}, {Name: "git-client", Version: "3.9"}, {Name: "git", Version: "4.8.1"}, {Name: "plain-credentials", Version: "1.7"}}
|
||||||
jenkinscr := *createJenkinsCR(userplugins, true)
|
jenkinscr := *createJenkinsCR(userplugins, true)
|
||||||
got := jenkinscr.ValidateCreate()
|
_, got := jenkinscr.ValidateCreate()
|
||||||
assert.Nil(t, got)
|
assert.Nil(t, got)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -113,7 +113,7 @@ func TestValidate(t *testing.T) {
|
||||||
}}
|
}}
|
||||||
userplugins := []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
|
userplugins := []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
|
||||||
jenkinscr := *createJenkinsCR(userplugins, true)
|
jenkinscr := *createJenkinsCR(userplugins, true)
|
||||||
got := jenkinscr.ValidateCreate()
|
_, got := jenkinscr.ValidateCreate()
|
||||||
assert.Equal(t, got, errors.New("security vulnerabilities detected in the following user-defined plugins: \nworkflow-cps:2.59\ngoogle-login:1.2\nmailer:1.1"))
|
assert.Equal(t, got, errors.New("security vulnerabilities detected in the following user-defined plugins: \nworkflow-cps:2.59\ngoogle-login:1.2\nmailer:1.1"))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -136,19 +136,19 @@ func TestValidate(t *testing.T) {
|
||||||
|
|
||||||
userplugins = []Plugin{{Name: "handy-uri-templates-2-api", Version: "2.1.8-1.0"}, {Name: "resource-disposer", Version: "0.8"}, {Name: "jjwt-api", Version: "0.11.2-9.c8b45b8bb173"}, {Name: "blueocean-github-pipeline", Version: "1.2.0-beta-3"}, {Name: "ghprb", Version: "1.39"}}
|
userplugins = []Plugin{{Name: "handy-uri-templates-2-api", Version: "2.1.8-1.0"}, {Name: "resource-disposer", Version: "0.8"}, {Name: "jjwt-api", Version: "0.11.2-9.c8b45b8bb173"}, {Name: "blueocean-github-pipeline", Version: "1.2.0-beta-3"}, {Name: "ghprb", Version: "1.39"}}
|
||||||
newjenkinscr := *createJenkinsCR(userplugins, true)
|
newjenkinscr := *createJenkinsCR(userplugins, true)
|
||||||
got := newjenkinscr.ValidateUpdate(&oldjenkinscr)
|
_, got := newjenkinscr.ValidateUpdate(&oldjenkinscr)
|
||||||
assert.Equal(t, got, errors.New("security vulnerabilities detected in the following user-defined plugins: \nhandy-uri-templates-2-api:2.1.8-1.0\nresource-disposer:0.8\nblueocean-github-pipeline:1.2.0-beta-3\nghprb:1.39"))
|
assert.Equal(t, got, errors.New("security vulnerabilities detected in the following user-defined plugins: \nhandy-uri-templates-2-api:2.1.8-1.0\nresource-disposer:0.8\nblueocean-github-pipeline:1.2.0-beta-3\nghprb:1.39"))
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Validation is turned off", func(t *testing.T) {
|
t.Run("Validation is turned off", func(t *testing.T) {
|
||||||
userplugins := []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
|
userplugins := []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
|
||||||
jenkinscr := *createJenkinsCR(userplugins, false)
|
jenkinscr := *createJenkinsCR(userplugins, false)
|
||||||
got := jenkinscr.ValidateCreate()
|
_, got := jenkinscr.ValidateCreate()
|
||||||
assert.Nil(t, got)
|
assert.Nil(t, got)
|
||||||
|
|
||||||
userplugins = []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
|
userplugins = []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
|
||||||
newjenkinscr := *createJenkinsCR(userplugins, false)
|
newjenkinscr := *createJenkinsCR(userplugins, false)
|
||||||
got = newjenkinscr.ValidateUpdate(&jenkinscr)
|
_, got = newjenkinscr.ValidateUpdate(&jenkinscr)
|
||||||
assert.Nil(t, got)
|
assert.Nil(t, got)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
|
|
@ -19,15 +20,15 @@ import (
|
||||||
// enqueueRequestForJenkins enqueues a Request for Secrets and ConfigMaps created by jenkins-operator.
|
// enqueueRequestForJenkins enqueues a Request for Secrets and ConfigMaps created by jenkins-operator.
|
||||||
type enqueueRequestForJenkins struct{}
|
type enqueueRequestForJenkins struct{}
|
||||||
|
|
||||||
func (e *enqueueRequestForJenkins) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) {
|
func (e *enqueueRequestForJenkins) Create(ctx context.Context, evt event.CreateEvent, q workqueue.RateLimitingInterface) {
|
||||||
if req := e.getOwnerReconcileRequests(evt.Object); req != nil {
|
if req := e.getOwnerReconcileRequests(ctx, evt.Object); req != nil {
|
||||||
q.Add(*req)
|
q.Add(*req)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *enqueueRequestForJenkins) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
|
func (e *enqueueRequestForJenkins) Update(ctx context.Context, evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
|
||||||
req1 := e.getOwnerReconcileRequests(evt.ObjectOld)
|
req1 := e.getOwnerReconcileRequests(ctx, evt.ObjectOld)
|
||||||
req2 := e.getOwnerReconcileRequests(evt.ObjectNew)
|
req2 := e.getOwnerReconcileRequests(ctx, evt.ObjectNew)
|
||||||
|
|
||||||
if req1 != nil || req2 != nil {
|
if req1 != nil || req2 != nil {
|
||||||
jenkinsName := "unknown"
|
jenkinsName := "unknown"
|
||||||
|
|
@ -51,19 +52,19 @@ func (e *enqueueRequestForJenkins) Update(evt event.UpdateEvent, q workqueue.Rat
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *enqueueRequestForJenkins) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
|
func (e *enqueueRequestForJenkins) Delete(ctx context.Context, evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
|
||||||
if req := e.getOwnerReconcileRequests(evt.Object); req != nil {
|
if req := e.getOwnerReconcileRequests(ctx, evt.Object); req != nil {
|
||||||
q.Add(*req)
|
q.Add(*req)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *enqueueRequestForJenkins) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) {
|
func (e *enqueueRequestForJenkins) Generic(ctx context.Context, evt event.GenericEvent, q workqueue.RateLimitingInterface) {
|
||||||
if req := e.getOwnerReconcileRequests(evt.Object); req != nil {
|
if req := e.getOwnerReconcileRequests(ctx, evt.Object); req != nil {
|
||||||
q.Add(*req)
|
q.Add(*req)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *enqueueRequestForJenkins) getOwnerReconcileRequests(object metav1.Object) *reconcile.Request {
|
func (e *enqueueRequestForJenkins) getOwnerReconcileRequests(_ context.Context, object metav1.Object) *reconcile.Request {
|
||||||
if object.GetLabels()[constants.LabelAppKey] == constants.LabelAppValue &&
|
if object.GetLabels()[constants.LabelAppKey] == constants.LabelAppValue &&
|
||||||
object.GetLabels()[constants.LabelWatchKey] == constants.LabelWatchValue &&
|
object.GetLabels()[constants.LabelWatchKey] == constants.LabelWatchValue &&
|
||||||
len(object.GetLabels()[constants.LabelJenkinsCRKey]) > 0 {
|
len(object.GetLabels()[constants.LabelJenkinsCRKey]) > 0 {
|
||||||
|
|
@ -79,24 +80,24 @@ type jenkinsDecorator struct {
|
||||||
handler handler.EventHandler
|
handler handler.EventHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *jenkinsDecorator) Create(evt event.CreateEvent, q workqueue.RateLimitingInterface) {
|
func (e *jenkinsDecorator) Create(ctx context.Context, evt event.CreateEvent, q workqueue.RateLimitingInterface) {
|
||||||
log.Log.WithValues("cr", evt.Object.GetName()).Info(fmt.Sprintf("%T/%s was created", evt.Object, evt.Object.GetName()))
|
log.Log.WithValues("cr", evt.Object.GetName()).Info(fmt.Sprintf("%T/%s was created", evt.Object, evt.Object.GetName()))
|
||||||
e.handler.Create(evt, q)
|
e.handler.Create(ctx, evt, q)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *jenkinsDecorator) Update(evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
|
func (e *jenkinsDecorator) Update(ctx context.Context, evt event.UpdateEvent, q workqueue.RateLimitingInterface) {
|
||||||
if !reflect.DeepEqual(evt.ObjectOld.(*v1alpha2.Jenkins).Spec, evt.ObjectNew.(*v1alpha2.Jenkins).Spec) {
|
if !reflect.DeepEqual(evt.ObjectOld.(*v1alpha2.Jenkins).Spec, evt.ObjectNew.(*v1alpha2.Jenkins).Spec) {
|
||||||
log.Log.WithValues("cr", evt.ObjectNew.GetName()).Info(
|
log.Log.WithValues("cr", evt.ObjectNew.GetName()).Info(
|
||||||
fmt.Sprintf("%T/%s has been updated", evt.ObjectNew, evt.ObjectNew.GetName()))
|
fmt.Sprintf("%T/%s has been updated", evt.ObjectNew, evt.ObjectNew.GetName()))
|
||||||
}
|
}
|
||||||
e.handler.Update(evt, q)
|
e.handler.Update(ctx, evt, q)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *jenkinsDecorator) Delete(evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
|
func (e *jenkinsDecorator) Delete(ctx context.Context, evt event.DeleteEvent, q workqueue.RateLimitingInterface) {
|
||||||
log.Log.WithValues("cr", evt.Object.GetName()).Info(fmt.Sprintf("%T/%s was deleted", evt.Object, evt.Object.GetName()))
|
log.Log.WithValues("cr", evt.Object.GetName()).Info(fmt.Sprintf("%T/%s was deleted", evt.Object, evt.Object.GetName()))
|
||||||
e.handler.Delete(evt, q)
|
e.handler.Delete(ctx, evt, q)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *jenkinsDecorator) Generic(evt event.GenericEvent, q workqueue.RateLimitingInterface) {
|
func (e *jenkinsDecorator) Generic(ctx context.Context, evt event.GenericEvent, q workqueue.RateLimitingInterface) {
|
||||||
e.handler.Generic(evt, q)
|
e.handler.Generic(ctx, evt, q)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,8 @@ type JenkinsReconciler struct {
|
||||||
// SetupWithManager sets up the controller with the Manager.
|
// SetupWithManager sets up the controller with the Manager.
|
||||||
func (r *JenkinsReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
func (r *JenkinsReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
||||||
jenkinsHandler := &enqueueRequestForJenkins{}
|
jenkinsHandler := &enqueueRequestForJenkins{}
|
||||||
configMapResource := &source.Kind{Type: &corev1.ConfigMap{TypeMeta: metav1.TypeMeta{APIVersion: APIVersion, Kind: ConfigMapKind}}}
|
// configMapResource := &source.Kind{Type: &corev1.ConfigMap{TypeMeta: metav1.TypeMeta{APIVersion: APIVersion, Kind: ConfigMapKind}}}
|
||||||
|
configMapResource := source.Kind(mgr.GetCache(), internal.Kind())
|
||||||
secretResource := &source.Kind{Type: &corev1.Secret{TypeMeta: metav1.TypeMeta{APIVersion: APIVersion, Kind: SecretKind}}}
|
secretResource := &source.Kind{Type: &corev1.Secret{TypeMeta: metav1.TypeMeta{APIVersion: APIVersion, Kind: SecretKind}}}
|
||||||
decorator := jenkinsDecorator{handler: &handler.EnqueueRequestForObject{}}
|
decorator := jenkinsDecorator{handler: &handler.EnqueueRequestForObject{}}
|
||||||
return ctrl.NewControllerManagedBy(mgr).
|
return ctrl.NewControllerManagedBy(mgr).
|
||||||
|
|
|
||||||
|
|
@ -169,8 +169,8 @@ func TestSMTP_Send(t *testing.T) {
|
||||||
//ts := &testServer{event: e}
|
//ts := &testServer{event: e}
|
||||||
|
|
||||||
// Create fake SMTP server
|
// Create fake SMTP server
|
||||||
|
be := *new(smtp.Backend)
|
||||||
s := smtp.NewServer()
|
s := smtp.NewServer(be)
|
||||||
|
|
||||||
s.Addr = fmt.Sprintf(":%d", testSMTPPort)
|
s.Addr = fmt.Sprintf(":%d", testSMTPPort)
|
||||||
s.Domain = "localhost"
|
s.Domain = "localhost"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue