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 2020/02/21 15:25:42 UTC

[camel-k] branch master updated (6689759 -> e9635ca)

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

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


    from 6689759  Fix #1255: disable on openshift and add init-container dump
     new 0fc7c3b  Related to #1190: add more logs when patch fails
     new e9635ca  Related to #1190: do not patch if same content and split big tests

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 e2e/init_test.go           | 63 ++++++++++++++++++++++++++++++++++++++++++++++
 e2e/run_test.go            | 26 -------------------
 pkg/cmd/builder/builder.go | 21 ++++++++++------
 3 files changed, 77 insertions(+), 33 deletions(-)
 create mode 100644 e2e/init_test.go


[camel-k] 01/02: Related to #1190: add more logs when patch fails

Posted by nf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 0fc7c3b7a9d97abc6dbdef4597fb41e3cce1d03f
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Fri Feb 21 10:49:42 2020 +0100

    Related to #1190: add more logs when patch fails
---
 pkg/cmd/builder/builder.go | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/pkg/cmd/builder/builder.go b/pkg/cmd/builder/builder.go
index 9561ef8..b8d2f28 100644
--- a/pkg/cmd/builder/builder.go
+++ b/pkg/cmd/builder/builder.go
@@ -60,13 +60,13 @@ func Run(namespace string, buildName string, taskName string) {
 	printVersion()
 
 	c, err := client.NewClient(false)
-	exitOnError(err)
+	exitOnError(err, "")
 
 	ctx := cancellable.NewContext()
 
 	build := &v1.Build{}
 	exitOnError(
-		c.Get(ctx, types.NamespacedName{Namespace: namespace, Name: buildName}, build),
+		c.Get(ctx, types.NamespacedName{Namespace: namespace, Name: buildName}, build), "",
 	)
 
 	var task *v1.BuilderTask
@@ -77,7 +77,7 @@ func Run(namespace string, buildName string, taskName string) {
 	}
 	if task == nil {
 		exitOnError(errors.Errorf("No task of type [%s] with name [%s] in build [%s/%s]",
-			reflect.TypeOf(v1.BuilderTask{}).Name(), taskName, namespace, buildName))
+			reflect.TypeOf(v1.BuilderTask{}).Name(), taskName, namespace, buildName), "")
 	}
 
 	status := builder.New(c).Run(*task)
@@ -87,8 +87,11 @@ func Run(namespace string, buildName string, taskName string) {
 	target.Status.Failure = build.Status.Failure
 	// Patch the build status with the result
 	p, err := patch.PositiveMergePatch(build, target)
-	exitOnError(err)
-	exitOnError(c.Status().Patch(ctx, target, controller.ConstantPatch(types.MergePatchType, p)))
+	exitOnError(err, "cannot create merge patch")
+	exitOnError(
+		c.Status().Patch(ctx, target, controller.ConstantPatch(types.MergePatchType, p)),
+		fmt.Sprintf("\n--- patch ---\n%s\n-------------\n", string(p)),
+	)
 	build.Status = target.Status
 
 	switch build.Status.Phase {
@@ -100,9 +103,9 @@ func Run(namespace string, buildName string, taskName string) {
 	}
 }
 
-func exitOnError(err error) {
+func exitOnError(err error, msg string) {
 	if err != nil {
-		log.Error(err, "")
+		log.Error(err, msg)
 		os.Exit(1)
 	}
 }


[camel-k] 02/02: Related to #1190: do not patch if same content and split big tests

Posted by nf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e9635ca70338787212b4e53c8bb2af732923bf88
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Fri Feb 21 14:50:04 2020 +0100

    Related to #1190: do not patch if same content and split big tests
---
 e2e/init_test.go           | 63 ++++++++++++++++++++++++++++++++++++++++++++++
 e2e/run_test.go            | 26 -------------------
 pkg/cmd/builder/builder.go | 12 ++++++---
 3 files changed, 71 insertions(+), 30 deletions(-)

diff --git a/e2e/init_test.go b/e2e/init_test.go
new file mode 100644
index 0000000..82cbe53
--- /dev/null
+++ b/e2e/init_test.go
@@ -0,0 +1,63 @@
+// +build integration
+
+// To enable compilation of this file in Goland, go to "Settings -> Go -> Vendoring & Build Tags -> Custom Tags" and add "integration"
+
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package e2e
+
+import (
+	"fmt"
+	"path"
+	"testing"
+	"time"
+
+	"github.com/apache/camel-k/e2e/util"
+	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	. "github.com/onsi/gomega"
+	v1 "k8s.io/api/core/v1"
+)
+
+func TestRunInitGeneratedExamples(t *testing.T) {
+	withNewTestNamespace(t, func(ns string) {
+		Expect(kamel("install", "-n", ns).Execute()).Should(BeNil())
+
+		for _, lang := range camelv1.Languages {
+			t.Run("init run "+string(lang), func(t *testing.T) {
+				RegisterTestingT(t)
+				dir := util.MakeTempDir(t)
+				itName := fmt.Sprintf("init%s", string(lang))          // e.g. initjava
+				fileName := fmt.Sprintf("%s.%s", itName, string(lang)) // e.g. initjava.java
+				file := path.Join(dir, fileName)
+				Expect(kamel("init", file).Execute()).Should(BeNil())
+				Expect(kamel("run", "-n", ns, file).Execute()).Should(BeNil())
+				Eventually(integrationPodPhase(ns, itName), 5*time.Minute).Should(Equal(v1.PodRunning))
+				Eventually(integrationLogs(ns, itName), 1*time.Minute).Should(ContainSubstring(languageInitExpectedString(lang)))
+				Expect(kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+			})
+		}
+	})
+}
+
+func languageInitExpectedString(lang camelv1.Language) string {
+	langDesc := string(lang)
+	if lang == camelv1.LanguageKotlin {
+		langDesc = "kotlin"
+	}
+	return fmt.Sprintf(" Hello Camel K from %s", langDesc)
+}
diff --git a/e2e/run_test.go b/e2e/run_test.go
index 9eb83b6..46bb010 100644
--- a/e2e/run_test.go
+++ b/e2e/run_test.go
@@ -22,13 +22,9 @@ limitations under the License.
 package e2e
 
 import (
-	"fmt"
-	"path"
 	"testing"
 	"time"
 
-	"github.com/apache/camel-k/e2e/util"
-	camelv1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	. "github.com/onsi/gomega"
 	v1 "k8s.io/api/core/v1"
 )
@@ -102,27 +98,5 @@ func TestRunSimpleExamples(t *testing.T) {
 			Expect(kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
 		})
 
-		for _, lang := range camelv1.Languages {
-			t.Run("init run "+string(lang), func(t *testing.T) {
-				RegisterTestingT(t)
-				dir := util.MakeTempDir(t)
-				itName := fmt.Sprintf("init%s", string(lang))          // e.g. initjava
-				fileName := fmt.Sprintf("%s.%s", itName, string(lang)) // e.g. initjava.java
-				file := path.Join(dir, fileName)
-				Expect(kamel("init", file).Execute()).Should(BeNil())
-				Expect(kamel("run", "-n", ns, file).Execute()).Should(BeNil())
-				Eventually(integrationPodPhase(ns, itName), 5*time.Minute).Should(Equal(v1.PodRunning))
-				Eventually(integrationLogs(ns, itName), 1*time.Minute).Should(ContainSubstring(languageInitExpectedString(lang)))
-				Expect(kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
-			})
-		}
 	})
 }
-
-func languageInitExpectedString(lang camelv1.Language) string {
-	langDesc := string(lang)
-	if lang == camelv1.LanguageKotlin {
-		langDesc = "kotlin"
-	}
-	return fmt.Sprintf(" Hello Camel K from %s", langDesc)
-}
diff --git a/pkg/cmd/builder/builder.go b/pkg/cmd/builder/builder.go
index b8d2f28..aec4c99 100644
--- a/pkg/cmd/builder/builder.go
+++ b/pkg/cmd/builder/builder.go
@@ -88,10 +88,14 @@ func Run(namespace string, buildName string, taskName string) {
 	// Patch the build status with the result
 	p, err := patch.PositiveMergePatch(build, target)
 	exitOnError(err, "cannot create merge patch")
-	exitOnError(
-		c.Status().Patch(ctx, target, controller.ConstantPatch(types.MergePatchType, p)),
-		fmt.Sprintf("\n--- patch ---\n%s\n-------------\n", string(p)),
-	)
+	if len(p) > 0 {
+		exitOnError(
+			c.Status().Patch(ctx, target, controller.ConstantPatch(types.MergePatchType, p)),
+			fmt.Sprintf("\n--- patch ---\n%s\n-------------\n", string(p)),
+		)
+	} else {
+		log.Info("Patch not applied (no difference)")
+	}
 	build.Status = target.Status
 
 	switch build.Status.Phase {