This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit b5a8e17d41a88673b47333bf4d9e95adae15736c
Author: Antonin Stefanutti <[email protected]>
AuthorDate: Tue Dec 17 12:48:11 2019 +0100

    chore(build): Use positive patching to update build status in routine 
strategy too
---
 pkg/controller/build/schedule_routine.go | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/pkg/controller/build/schedule_routine.go 
b/pkg/controller/build/schedule_routine.go
index f4abe59..61a9173 100644
--- a/pkg/controller/build/schedule_routine.go
+++ b/pkg/controller/build/schedule_routine.go
@@ -23,11 +23,13 @@ import (
        "sync"
 
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+       "k8s.io/apimachinery/pkg/types"
 
        "sigs.k8s.io/controller-runtime/pkg/client"
 
        "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
        "github.com/apache/camel-k/pkg/builder"
+       "github.com/apache/camel-k/pkg/util/patch"
 )
 
 // NewScheduleRoutineAction creates a new schedule routine action
@@ -143,8 +145,13 @@ func (action *scheduleRoutineAction) updateBuildStatus(ctx 
context.Context, buil
        target.Status = status
        // Copy the failure field from the build to persist recovery state
        target.Status.Failure = build.Status.Failure
-       // Patch the build status with the current progress
-       err := action.client.Status().Patch(ctx, target, 
client.MergeFrom(build))
+       // Patch the build status with the result
+       p, err := patch.PositiveMergePatch(build, target)
+       if err != nil {
+               action.L.Errorf(err, "Cannot patch build status: %s", 
build.Name)
+               return err
+       }
+       err = action.client.Status().Patch(ctx, target, 
client.ConstantPatch(types.MergePatchType, p))
        if err != nil {
                action.L.Errorf(err, "Cannot update build status: %s", 
build.Name)
                return err

Reply via email to