Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 10 additions & 19 deletions pkg/cmd/release-payload-controller/job_state_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ import (
releasepayloadinformers "github.com/openshift/release-controller/pkg/client/informers/externalversions"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)

func TestJobStateSync(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
input *v1alpha1.ReleasePayload
Expand Down Expand Up @@ -367,22 +367,9 @@ func TestJobStateSync(t *testing.T) {
releasePayloadInformerFactory := releasepayloadinformers.NewSharedInformerFactory(releasePayloadClient, controllerDefaultResyncDuration)
releasePayloadInformer := releasePayloadInformerFactory.Release().V1alpha1().ReleasePayloads()

c := &JobStateController{
ReleasePayloadController: NewReleasePayloadController("Job State Controller",
releasePayloadInformer,
releasePayloadClient.ReleaseV1alpha1(),
events.NewInMemoryRecorder("job-state-controller-test"),
workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "JobStateController")),
}

if _, err := releasePayloadInformer.Informer().AddEventHandler(&cache.ResourceEventHandlerFuncs{
AddFunc: c.Enqueue,
UpdateFunc: func(oldObj, newObj interface{}) {
c.Enqueue(newObj)
},
DeleteFunc: c.Enqueue,
}); err != nil {
t.Errorf("Failed to add release payload event handler: %v", err)
c, err := NewJobStateController(releasePayloadInformer, releasePayloadClient.ReleaseV1alpha1(), events.NewInMemoryRecorder("job-state-controller-test"))
if err != nil {
t.Fatalf("Failed to create Job State Controller: %v", err)
}

releasePayloadInformerFactory.Start(context.Background().Done())
Expand All @@ -392,8 +379,7 @@ func TestJobStateSync(t *testing.T) {
return
}

err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name))
if err != nil {
if err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name)); err != nil {
t.Errorf("%s: unexpected err: %v", testCase.name, err)
}

Expand All @@ -407,6 +393,7 @@ func TestJobStateSync(t *testing.T) {
}

func TestComputeJobState(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
input v1alpha1.JobStatus
Expand Down Expand Up @@ -666,6 +653,7 @@ func TestComputeJobState(t *testing.T) {
}

func TestInterrogateJobResults(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
results []v1alpha1.JobRunResult
Expand Down Expand Up @@ -757,6 +745,7 @@ func TestInterrogateJobResults(t *testing.T) {
}

func TestProcessJobResults(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
results []v1alpha1.JobRunResult
Expand Down Expand Up @@ -864,6 +853,7 @@ func TestProcessJobResults(t *testing.T) {
}

func TestProcessAnalysisJobResults(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
results []v1alpha1.JobRunResult
Expand Down Expand Up @@ -944,6 +934,7 @@ func TestProcessAnalysisJobResults(t *testing.T) {
}

func TestProcessRetryJobResults(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
results []v1alpha1.JobRunResult
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)

func newLegacyJobStatus(name string, results []v1alpha1.JobRunResult) v1alpha1.JobStatus {
Expand Down Expand Up @@ -57,6 +56,7 @@ func newImageStream(name, namespace string, tags []imagev1.TagReference) *imagev
}

func TestSetLegacyJobStatus(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
input *v1alpha1.ReleasePayloadStatus
Expand Down Expand Up @@ -138,6 +138,7 @@ func TestSetLegacyJobStatus(t *testing.T) {
}

func TestFindLegacyJobStatus(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
payloadName string
Expand Down Expand Up @@ -233,6 +234,7 @@ func TestFindLegacyJobStatus(t *testing.T) {
}

func TestLegacyJobStatusSync(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
imagestream []runtime.Object
Expand Down Expand Up @@ -931,25 +933,13 @@ func TestLegacyJobStatusSync(t *testing.T) {
releasePayloadInformerFactory := releasepayloadinformers.NewSharedInformerFactory(releasePayloadClient, controllerDefaultResyncDuration)
releasePayloadInformer := releasePayloadInformerFactory.Release().V1alpha1().ReleasePayloads()

c := &LegacyJobStatusController{
ReleasePayloadController: NewReleasePayloadController("Legacy Job Status Controller",
releasePayloadInformer,
releasePayloadClient.ReleaseV1alpha1(),
events.NewInMemoryRecorder("legacy-job-status-controller"),
workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "LegacyJobStatusController")),
imageStreamLister: imageStreamInformer.Lister(),
c, err := NewLegacyJobStatusController(releasePayloadInformer, releasePayloadClient.ReleaseV1alpha1(), imageStreamInformer, events.NewInMemoryRecorder("legacy-job-status-controller"))
if err != nil {
t.Fatalf("Failed to create Legacy Job Status Controller: %v", err)
}

c.cachesToSync = append(c.cachesToSync, imageStreamInformer.Informer().HasSynced, releasePayloadInformer.Informer().HasSynced)

if _, err := releasePayloadInformer.Informer().AddEventHandler(&cache.ResourceEventHandlerFuncs{
AddFunc: c.Enqueue,
UpdateFunc: func(old, new interface{}) { c.Enqueue(new) },
DeleteFunc: c.Enqueue,
}); err != nil {
t.Errorf("Failed to add release payload event handler: %v", err)
}

releasePayloadInformerFactory.Start(context.Background().Done())
imageStreamInformerFactory.Start(context.Background().Done())

Expand All @@ -958,12 +948,13 @@ func TestLegacyJobStatusSync(t *testing.T) {
return
}

err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name))
if err != nil && testCase.expectedErr == nil {
t.Fatalf("%s - encountered unexpected error: %v", testCase.name, err)
}
if err != nil && !cmp.Equal(err.Error(), testCase.expectedErr.Error()) {
t.Errorf("%s - expected error: %v, got: %v", testCase.name, testCase.expectedErr, err)
if err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name)); err != nil {
if testCase.expectedErr == nil {
t.Fatalf("%s - encountered unexpected error: %v", testCase.name, err)
}
if !cmp.Equal(err.Error(), testCase.expectedErr.Error()) {
t.Errorf("%s - expected error: %v, got: %v", testCase.name, testCase.expectedErr, err)
}
}

// Performing a live lookup instead of having to wait for the cache to sink (again)...
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ import (
releasepayloadinformers "github.com/openshift/release-controller/pkg/client/informers/externalversions"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)

func TestPayloadAcceptedSync(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
input *v1alpha1.ReleasePayload
Expand Down Expand Up @@ -446,22 +446,9 @@ func TestPayloadAcceptedSync(t *testing.T) {
releasePayloadInformerFactory := releasepayloadinformers.NewSharedInformerFactory(releasePayloadClient, controllerDefaultResyncDuration)
releasePayloadInformer := releasePayloadInformerFactory.Release().V1alpha1().ReleasePayloads()

c := &PayloadAcceptedController{
ReleasePayloadController: NewReleasePayloadController("Payload Accepted Controller",
releasePayloadInformer,
releasePayloadClient.ReleaseV1alpha1(),
events.NewInMemoryRecorder("payload-accepted-controller-test"),
workqueue.NewRateLimitingQueueWithConfig(workqueue.DefaultControllerRateLimiter(), workqueue.RateLimitingQueueConfig{Name: "PayloadAcceptedController"})),
}

if _, err := releasePayloadInformer.Informer().AddEventHandler(&cache.ResourceEventHandlerFuncs{
AddFunc: c.Enqueue,
UpdateFunc: func(oldObj, newObj interface{}) {
c.Enqueue(newObj)
},
DeleteFunc: c.Enqueue,
}); err != nil {
t.Errorf("Failed to add release payload event handler: %v", err)
c, err := NewPayloadAcceptedController(releasePayloadInformer, releasePayloadClient.ReleaseV1alpha1(), events.NewInMemoryRecorder("payload-accepted-controller-test"))
if err != nil {
t.Fatalf("Failed to create Payload Accepted Controller: %v", err)
}

releasePayloadInformerFactory.Start(context.Background().Done())
Expand All @@ -471,8 +458,7 @@ func TestPayloadAcceptedSync(t *testing.T) {
return
}

err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name))
if err != nil {
if err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name)); err != nil {
t.Errorf("%s: unexpected err: %v", testCase.name, err)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,15 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/openshift/library-go/pkg/operator/events"
"github.com/openshift/library-go/pkg/operator/v1helpers"
"github.com/openshift/release-controller/pkg/apis/release/v1alpha1"
"github.com/openshift/release-controller/pkg/client/clientset/versioned/fake"
releasepayloadinformers "github.com/openshift/release-controller/pkg/client/informers/externalversions"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)

func TestPayloadCreationSync(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
payload *v1alpha1.ReleasePayload
Expand Down Expand Up @@ -250,37 +249,9 @@ func TestPayloadCreationSync(t *testing.T) {
releasePayloadInformerFactory := releasepayloadinformers.NewSharedInformerFactory(releasePayloadClient, controllerDefaultResyncDuration)
releasePayloadInformer := releasePayloadInformerFactory.Release().V1alpha1().ReleasePayloads()

c := &PayloadCreationController{
ReleasePayloadController: NewReleasePayloadController("Payload Creation Controller",
releasePayloadInformer,
releasePayloadClient.ReleaseV1alpha1(),
events.NewInMemoryRecorder("payload-creation-controller-test"),
workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "ReleaseCreationJobController")),
}

releasePayloadFilter := func(obj interface{}) bool {
if releasePayload, ok := obj.(*v1alpha1.ReleasePayload); ok {
// If the conditions are both in their respective terminal states, then there is nothing else to do...
if (v1helpers.IsConditionTrue(releasePayload.Status.Conditions, v1alpha1.ConditionPayloadCreated) ||
v1helpers.IsConditionFalse(releasePayload.Status.Conditions, v1alpha1.ConditionPayloadCreated)) &&
(v1helpers.IsConditionTrue(releasePayload.Status.Conditions, v1alpha1.ConditionPayloadFailed) ||
v1helpers.IsConditionFalse(releasePayload.Status.Conditions, v1alpha1.ConditionPayloadFailed)) {
return false
}
return true
}
return false
}

if _, err := releasePayloadInformer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
FilterFunc: releasePayloadFilter,
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: c.Enqueue,
UpdateFunc: func(old, new interface{}) { c.Enqueue(new) },
DeleteFunc: c.Enqueue,
},
}); err != nil {
t.Errorf("Failed to add release payload event handler: %v", err)
c, err := NewPayloadCreationController(releasePayloadInformer, releasePayloadClient.ReleaseV1alpha1(), events.NewInMemoryRecorder("payload-creation-controller-test"))
if err != nil {
t.Fatalf("Failed to create Payload Creation Controller: %v", err)
}

releasePayloadInformerFactory.Start(context.Background().Done())
Expand All @@ -290,8 +261,7 @@ func TestPayloadCreationSync(t *testing.T) {
return
}

err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.payload.Namespace, testCase.payload.Name))
if err != nil {
if err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.payload.Namespace, testCase.payload.Name)); err != nil {
t.Errorf("%s: unexpected err: %v", testCase.name, err)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ import (
releasepayloadinformers "github.com/openshift/release-controller/pkg/client/informers/externalversions"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)

func TestPayloadRejectedSync(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
input *v1alpha1.ReleasePayload
Expand Down Expand Up @@ -446,22 +446,9 @@ func TestPayloadRejectedSync(t *testing.T) {
releasePayloadInformerFactory := releasepayloadinformers.NewSharedInformerFactory(releasePayloadClient, controllerDefaultResyncDuration)
releasePayloadInformer := releasePayloadInformerFactory.Release().V1alpha1().ReleasePayloads()

c := &PayloadRejectedController{
ReleasePayloadController: NewReleasePayloadController("Payload Rejected Controller",
releasePayloadInformer,
releasePayloadClient.ReleaseV1alpha1(),
events.NewInMemoryRecorder("payload-rejected-controller-test"),
workqueue.NewRateLimitingQueueWithConfig(workqueue.DefaultControllerRateLimiter(), workqueue.RateLimitingQueueConfig{Name: "PayloadRejectedController"})),
}

if _, err := releasePayloadInformer.Informer().AddEventHandler(&cache.ResourceEventHandlerFuncs{
AddFunc: c.Enqueue,
UpdateFunc: func(oldObj, newObj interface{}) {
c.Enqueue(newObj)
},
DeleteFunc: c.Enqueue,
}); err != nil {
t.Errorf("Failed to add release payload event handler: %v", err)
c, err := NewPayloadRejectedController(releasePayloadInformer, releasePayloadClient.ReleaseV1alpha1(), events.NewInMemoryRecorder("payload-rejected-controller-test"))
if err != nil {
t.Fatalf("Failed to create Payload Rejected Controller: %v", err)
}

releasePayloadInformerFactory.Start(context.Background().Done())
Expand All @@ -471,8 +458,7 @@ func TestPayloadRejectedSync(t *testing.T) {
return
}

err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name))
if err != nil {
if err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name)); err != nil {
t.Errorf("%s: unexpected err: %v", testCase.name, err)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ import (
releasepayloadinformers "github.com/openshift/release-controller/pkg/client/informers/externalversions"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)

func TestPayloadVerificationSync(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
input *v1alpha1.ReleasePayload
Expand Down Expand Up @@ -407,22 +407,9 @@ func TestPayloadVerificationSync(t *testing.T) {
releasePayloadInformerFactory := releasepayloadinformers.NewSharedInformerFactory(releasePayloadClient, controllerDefaultResyncDuration)
releasePayloadInformer := releasePayloadInformerFactory.Release().V1alpha1().ReleasePayloads()

c := &PayloadVerificationController{
ReleasePayloadController: NewReleasePayloadController("Payload Verification Controller",
releasePayloadInformer,
releasePayloadClient.ReleaseV1alpha1(),
events.NewInMemoryRecorder("payload-verification-controller-test"),
workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "PayloadVerificationController")),
}

if _, err := releasePayloadInformer.Informer().AddEventHandler(&cache.ResourceEventHandlerFuncs{
AddFunc: c.Enqueue,
UpdateFunc: func(oldObj, newObj interface{}) {
c.Enqueue(newObj)
},
DeleteFunc: c.Enqueue,
}); err != nil {
t.Errorf("Failed to add release payload event handler: %v", err)
c, err := NewPayloadVerificationController(releasePayloadInformer, releasePayloadClient.ReleaseV1alpha1(), events.NewInMemoryRecorder("payload-verification-controller-test"))
if err != nil {
t.Fatalf("Failed to create Payload Verification Controller: %v", err)
}

releasePayloadInformerFactory.Start(context.Background().Done())
Expand All @@ -432,8 +419,7 @@ func TestPayloadVerificationSync(t *testing.T) {
return
}

err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name))
if err != nil {
if err := c.sync(context.TODO(), fmt.Sprintf("%s/%s", testCase.input.Namespace, testCase.input.Name)); err != nil {
t.Errorf("%s: unexpected err: %v", testCase.name, err)
}

Expand Down
Loading