You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2021/04/08 08:43:14 UTC
[camel-k] 03/03: fix: Remove deep derivative comparison from
deployer
This is an automated email from the ASF dual-hosted git repository.
nferraro pushed a commit to branch release-1.3.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 25fe071211a1d552f7bd95c5fa2fcc753077a6fc
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Tue Apr 6 15:12:08 2021 +0200
fix: Remove deep derivative comparison from deployer
---
pkg/trait/deployer.go | 28 +++++++++++-----------------
pkg/util/patch/patch.go | 39 ---------------------------------------
2 files changed, 11 insertions(+), 56 deletions(-)
diff --git a/pkg/trait/deployer.go b/pkg/trait/deployer.go
index e21b0bd..6c705f3 100644
--- a/pkg/trait/deployer.go
+++ b/pkg/trait/deployer.go
@@ -94,23 +94,17 @@ func (t *deployerTrait) Apply(e *Environment) error {
return err
}
- // If both objects have "ObjectMeta" and "Spec" fields and they contain all the expected fields
- // (plus optional others), then avoid patching.
- if !patch.ObjectMetaEqualDeepDerivative(object, resource) ||
- !patch.SpecEqualDeepDerivative(object, resource) {
-
- p, err := patch.PositiveMergePatch(object, resource)
- if err != nil {
- return err
- } else if len(p) == 0 {
- // Avoid triggering a patch request for nothing
- continue
- }
-
- err = env.Client.Patch(env.C, resource, client.RawPatch(types.MergePatchType, p))
- if err != nil {
- return errors.Wrap(err, "error during patch resource")
- }
+ p, err := patch.PositiveMergePatch(object, resource)
+ if err != nil {
+ return err
+ } else if len(p) == 0 {
+ // Avoid triggering a patch request for nothing
+ continue
+ }
+
+ err = env.Client.Patch(env.C, resource, client.RawPatch(types.MergePatchType, p))
+ if err != nil {
+ return errors.Wrap(err, "error during patch resource")
}
}
return nil
diff --git a/pkg/util/patch/patch.go b/pkg/util/patch/patch.go
index e2c54b1..e0ae632 100644
--- a/pkg/util/patch/patch.go
+++ b/pkg/util/patch/patch.go
@@ -21,7 +21,6 @@ import (
"reflect"
jsonpatch "github.com/evanphx/json-patch"
- "k8s.io/apimachinery/pkg/api/equality"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/json"
@@ -90,41 +89,3 @@ func removeNilValues(v reflect.Value, parent reflect.Value) {
}
}
}
-
-func ObjectMetaEqualDeepDerivative(object runtime.Object, expected runtime.Object) (res bool) {
- defer func() {
- if r := recover(); r != nil {
- res = false
- }
- }()
-
- if expected == nil {
- return true
- } else if object == nil {
- return false
- }
-
- objectMeta := reflect.ValueOf(object).Elem().FieldByName("ObjectMeta").Interface()
- expectedMeta := reflect.ValueOf(expected).Elem().FieldByName("ObjectMeta").Interface()
-
- return equality.Semantic.DeepDerivative(expectedMeta, objectMeta)
-}
-
-func SpecEqualDeepDerivative(object runtime.Object, expected runtime.Object) (res bool) {
- defer func() {
- if r := recover(); r != nil {
- res = false
- }
- }()
-
- if expected == nil {
- return true
- } else if object == nil {
- return false
- }
-
- objectSpec := reflect.ValueOf(object).Elem().FieldByName("Spec").Interface()
- expectedSpec := reflect.ValueOf(expected).Elem().FieldByName("Spec").Interface()
-
- return equality.Semantic.DeepDerivative(expectedSpec, objectSpec)
-}