diff --git a/pkg/build/controller/build/build_controller_test.go b/pkg/build/controller/build/build_controller_test.go index 04a1c9c01a70..1c66a802e89c 100644 --- a/pkg/build/controller/build/build_controller_test.go +++ b/pkg/build/controller/build/build_controller_test.go @@ -371,10 +371,7 @@ func TestHandleBuild(t *testing.T) { t.Errorf("%s: did not get an update. Expected: %v", tc.name, tc.expectUpdate) return } - expectedBuild, err := buildutil.BuildDeepCopy(tc.build) - if err != nil { - t.Fatalf("unexpected: %v", err) - } + expectedBuild := tc.build.DeepCopy() tc.expectUpdate.apply(expectedBuild) // For start/completion/duration fields, simply validate that they are set/not set diff --git a/pkg/image/controller/imagestream_controller_test.go b/pkg/image/controller/imagestream_controller_test.go index 6a7bee549cdf..b5b95ae4e3df 100644 --- a/pkg/image/controller/imagestream_controller_test.go +++ b/pkg/image/controller/imagestream_controller_test.go @@ -233,7 +233,7 @@ func TestHandleImageStream(t *testing.T) { for i, test := range testCases { fake := imageclient.NewSimpleClientset() - other = test.stream.DeepCopy() + other := test.stream.DeepCopy() if err := handleImageStream(test.stream, fake.Image(), nil); err != nil { t.Errorf("%d: unexpected error: %v", i, err) diff --git a/pkg/image/controller/trigger/image_trigger_controller.go b/pkg/image/controller/trigger/image_trigger_controller.go index eb2ca36d7c32..13e92a6c1e1f 100644 --- a/pkg/image/controller/trigger/image_trigger_controller.go +++ b/pkg/image/controller/trigger/image_trigger_controller.go @@ -10,6 +10,7 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" @@ -373,5 +374,5 @@ func (c *TriggerController) syncResource(key string) error { return nil } - return source.Reactor.ImageChanged(obj, c.tagRetriever) + return source.Reactor.ImageChanged(obj.(runtime.Object), c.tagRetriever) } diff --git a/pkg/image/controller/trigger/image_trigger_controller_test.go b/pkg/image/controller/trigger/image_trigger_controller_test.go index 55e2b0bd218e..8bf2b9f44d75 100644 --- a/pkg/image/controller/trigger/image_trigger_controller_test.go +++ b/pkg/image/controller/trigger/image_trigger_controller_test.go @@ -811,13 +811,13 @@ type fakeImageReactor struct { err error } -type imageReactorFunc func(obj interface{}, tagRetriever trigger.TagRetriever) error +type imageReactorFunc func(obj runtime.Object, tagRetriever trigger.TagRetriever) error -func (fn imageReactorFunc) ImageChanged(obj interface{}, tagRetriever trigger.TagRetriever) error { +func (fn imageReactorFunc) ImageChanged(obj runtime.Object, tagRetriever trigger.TagRetriever) error { return fn(obj, tagRetriever) } -func (r *fakeImageReactor) ImageChanged(obj interface{}, tagRetriever trigger.TagRetriever) error { +func (r *fakeImageReactor) ImageChanged(obj runtime.Object, tagRetriever trigger.TagRetriever) error { r.lock.Lock() defer r.lock.Unlock() err := r.err @@ -972,10 +972,9 @@ func updateBuildConfigImages(bc *buildapi.BuildConfig, tagRetriever trigger.TagR // alterBuildConfigFromTriggers will alter the incoming build config based on the trigger // changes passed to it and send it back on the watch as a modification. func alterBuildConfigFromTriggers(bcWatch *consistentWatch) imageReactorFunc { - return imageReactorFunc(func(obj interface{}, tagRetriever trigger.TagRetriever) error { - bc := obj.DeepCopy() - - updated, err := updateBuildConfigImages(bc, tagRetriever) + return imageReactorFunc(func(obj runtime.Object, tagRetriever trigger.TagRetriever) error { + bc := obj.DeepCopyObject() + updated, err := updateBuildConfigImages(bc.(*buildapi.BuildConfig), tagRetriever) if err != nil { return err } @@ -987,9 +986,9 @@ func alterBuildConfigFromTriggers(bcWatch *consistentWatch) imageReactorFunc { } func alterDeploymentConfigFromTriggers(dcWatch *consistentWatch) imageReactorFunc { - return imageReactorFunc(func(obj interface{}, tagRetriever trigger.TagRetriever) error { - dc := obj.DeepCopy() - updated, resolvable, err := deploymentconfigs.UpdateDeploymentConfigImages(dc, tagRetriever) + return imageReactorFunc(func(obj runtime.Object, tagRetriever trigger.TagRetriever) error { + dc := obj.DeepCopyObject() + updated, resolvable, err := deploymentconfigs.UpdateDeploymentConfigImages(dc.(*deployapi.DeploymentConfig), tagRetriever) if err != nil { return err } @@ -1004,10 +1003,10 @@ func alterDeploymentConfigFromTriggers(dcWatch *consistentWatch) imageReactorFun // changes passed to it and send it back on the watch as a modification. func alterPodFromTriggers(podWatch *watch.RaceFreeFakeWatcher) imageReactorFunc { count := 2 - return imageReactorFunc(func(obj interface{}, tagRetriever trigger.TagRetriever) error { - pod := obj.DeepCopy() + return imageReactorFunc(func(obj runtime.Object, tagRetriever trigger.TagRetriever) error { + pod := obj.DeepCopyObject() - updated, err := annotations.UpdateObjectFromImages(pod, kapi.Scheme, tagRetriever) + updated, err := annotations.UpdateObjectFromImages(pod.(*kapi.Pod), kapi.Scheme, tagRetriever) if err != nil { return err } @@ -1224,7 +1223,8 @@ func TestTriggerController(t *testing.T) { if len(items) == 0 { continue } - bc := items[rnd.Int31n(int32(len(items)))].DeepCopy() + originalBc := items[rnd.Int31n(int32(len(items)))].(*buildapi.BuildConfig) + bc := originalBc.DeepCopy() if len(bc.Spec.Triggers) > 0 { index := rnd.Int31n(int32(len(bc.Spec.Triggers))) trigger := &bc.Spec.Triggers[index] diff --git a/pkg/image/trigger/annotations/annotations.go b/pkg/image/trigger/annotations/annotations.go index b45bfbfa8882..c3158c88312f 100644 --- a/pkg/image/trigger/annotations/annotations.go +++ b/pkg/image/trigger/annotations/annotations.go @@ -261,8 +261,8 @@ type AnnotationReactor struct { Copier runtime.ObjectCopier } -func (r *AnnotationReactor) ImageChanged(obj interface{}, tagRetriever trigger.TagRetriever) error { - changed, err := UpdateObjectFromImages(obj.(runtime.Object), r.Copier, tagRetriever) +func (r *AnnotationReactor) ImageChanged(obj runtime.Object, tagRetriever trigger.TagRetriever) error { + changed, err := UpdateObjectFromImages(obj, r.Copier, tagRetriever) if err != nil { return err } diff --git a/pkg/image/trigger/buildconfigs/buildconfigs.go b/pkg/image/trigger/buildconfigs/buildconfigs.go index a8bead8c869e..1e96d383d64b 100644 --- a/pkg/image/trigger/buildconfigs/buildconfigs.go +++ b/pkg/image/trigger/buildconfigs/buildconfigs.go @@ -6,6 +6,7 @@ import ( clientv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" v1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/rest" @@ -131,7 +132,7 @@ func NewBuildConfigReactor(instantiator BuildConfigInstantiator, restclient rest // ImageChanged is passed a build config and a set of changes and updates the object if // necessary. -func (r *buildConfigReactor) ImageChanged(obj interface{}, tagRetriever trigger.TagRetriever) error { +func (r *buildConfigReactor) ImageChanged(obj runtime.Object, tagRetriever trigger.TagRetriever) error { bc := obj.(*buildapi.BuildConfig) var request *buildapi.BuildRequest diff --git a/pkg/image/trigger/deploymentconfigs/deploymentconfigs.go b/pkg/image/trigger/deploymentconfigs/deploymentconfigs.go index d5c3480b03ad..d875b77b2a8a 100644 --- a/pkg/image/trigger/deploymentconfigs/deploymentconfigs.go +++ b/pkg/image/trigger/deploymentconfigs/deploymentconfigs.go @@ -7,6 +7,7 @@ import ( "github.com/golang/glog" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/cache" kapi "k8s.io/kubernetes/pkg/api" @@ -226,7 +227,7 @@ func UpdateDeploymentConfigImages(dc *appsapi.DeploymentConfig, tagRetriever tri } // ImageChanged is passed a deployment config and a set of changes. -func (r *DeploymentConfigReactor) ImageChanged(obj interface{}, tagRetriever trigger.TagRetriever) error { +func (r *DeploymentConfigReactor) ImageChanged(obj runtime.Object, tagRetriever trigger.TagRetriever) error { dc := obj.(*appsapi.DeploymentConfig) newDC := dc.DeepCopy() diff --git a/pkg/image/trigger/interfaces.go b/pkg/image/trigger/interfaces.go index 41913ccbd323..de934ba78cce 100644 --- a/pkg/image/trigger/interfaces.go +++ b/pkg/image/trigger/interfaces.go @@ -1,6 +1,7 @@ package trigger import ( + "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/tools/cache" "github.com/openshift/origin/pkg/image/apis/image/v1/trigger" @@ -27,5 +28,5 @@ type TagRetriever interface { } type ImageReactor interface { - ImageChanged(obj interface{}, tagRetriever TagRetriever) error + ImageChanged(obj runtime.Object, tagRetriever TagRetriever) error }