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