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/09/17 09:10:06 UTC

[camel-k] 11/21: kamelet: fix tests and lint

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 b9c2cbe0d20e507e87ab0df2df4ae72e009309ab
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Fri Jul 10 13:12:31 2020 +0200

    kamelet: fix tests and lint
---
 pkg/controller/kamelet/initialize.go         |  1 +
 pkg/controller/kamelet/kamelet_controller.go |  6 ++----
 pkg/event/manager.go                         |  2 +-
 pkg/trait/dependencies.go                    |  8 +++-----
 pkg/trait/kamelets.go                        | 15 +++++++++------
 pkg/trait/kamelets_test.go                   | 10 +++++++++-
 pkg/trait/knative_service_test.go            | 16 +++++++++-------
 pkg/trait/service_test.go                    | 24 ++++++++++++++++--------
 pkg/trait/trait_types.go                     |  2 +-
 pkg/util/kubernetes/resolver.go              |  3 ++-
 pkg/util/log/log.go                          |  2 +-
 11 files changed, 54 insertions(+), 35 deletions(-)

diff --git a/pkg/controller/kamelet/initialize.go b/pkg/controller/kamelet/initialize.go
index e1f4360..0b3f0aa 100644
--- a/pkg/controller/kamelet/initialize.go
+++ b/pkg/controller/kamelet/initialize.go
@@ -19,6 +19,7 @@ package kamelet
 
 import (
 	"context"
+
 	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 )
 
diff --git a/pkg/controller/kamelet/kamelet_controller.go b/pkg/controller/kamelet/kamelet_controller.go
index baad186..0522a59 100644
--- a/pkg/controller/kamelet/kamelet_controller.go
+++ b/pkg/controller/kamelet/kamelet_controller.go
@@ -19,14 +19,14 @@ package kamelet
 
 import (
 	"context"
-	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 	"time"
 
+	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+	"github.com/apache/camel-k/pkg/client"
 	camelevent "github.com/apache/camel-k/pkg/event"
 	"k8s.io/apimachinery/pkg/api/errors"
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/client-go/tools/record"
-
 	k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/controller"
 	"sigs.k8s.io/controller-runtime/pkg/event"
@@ -35,8 +35,6 @@ import (
 	"sigs.k8s.io/controller-runtime/pkg/predicate"
 	"sigs.k8s.io/controller-runtime/pkg/reconcile"
 	"sigs.k8s.io/controller-runtime/pkg/source"
-
-	"github.com/apache/camel-k/pkg/client"
 )
 
 // Add creates a new Kamelet Controller and adds it to the Manager. The Manager will set fields on the Controller
diff --git a/pkg/event/manager.go b/pkg/event/manager.go
index 93e27f9..a2b2eb8 100644
--- a/pkg/event/manager.go
+++ b/pkg/event/manager.go
@@ -20,9 +20,9 @@ package event
 import (
 	"context"
 	"fmt"
-	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 	"github.com/apache/camel-k/pkg/client"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"github.com/apache/camel-k/pkg/util/log"
diff --git a/pkg/trait/dependencies.go b/pkg/trait/dependencies.go
index 4a704b6..5fc0264 100644
--- a/pkg/trait/dependencies.go
+++ b/pkg/trait/dependencies.go
@@ -19,14 +19,12 @@ package trait
 
 import (
 	"fmt"
-	"github.com/apache/camel-k/pkg/util/kubernetes"
-
-	"github.com/apache/camel-k/pkg/metadata"
-
-	"github.com/scylladb/go-set/strset"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	"github.com/apache/camel-k/pkg/metadata"
 	"github.com/apache/camel-k/pkg/util"
+	"github.com/apache/camel-k/pkg/util/kubernetes"
+	"github.com/scylladb/go-set/strset"
 )
 
 // The Dependencies trait is internally used to automatically add runtime dependencies based on the
diff --git a/pkg/trait/kamelets.go b/pkg/trait/kamelets.go
index 994ddcb..d1b3bef 100644
--- a/pkg/trait/kamelets.go
+++ b/pkg/trait/kamelets.go
@@ -20,8 +20,6 @@ package trait
 import (
 	"encoding/json"
 	"fmt"
-	"github.com/apache/camel-k/pkg/util/flow"
-	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"regexp"
 	"sort"
 	"strconv"
@@ -32,6 +30,8 @@ import (
 	"github.com/apache/camel-k/pkg/metadata"
 	"github.com/apache/camel-k/pkg/util"
 	"github.com/apache/camel-k/pkg/util/digest"
+	"github.com/apache/camel-k/pkg/util/flow"
+	"github.com/apache/camel-k/pkg/util/kubernetes"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"sigs.k8s.io/controller-runtime/pkg/client"
@@ -61,6 +61,9 @@ func newConfigurationKey(kamelet, configurationID string) configurationKey {
 }
 
 const (
+	contentKey = "content"
+	schemaKey  = "schema"
+
 	kameletLabel              = "camel.apache.org/kamelet"
 	kameletConfigurationLabel = "camel.apache.org/kamelet.configuration"
 )
@@ -148,7 +151,7 @@ func (t *kameletsTrait) addKamelets(e *Environment) error {
 }
 
 func (t *kameletsTrait) addKameletAsSource(e *Environment, kamelet v1alpha1.Kamelet) error {
-	var sources []v1.SourceSpec
+	sources := make([]v1.SourceSpec, 0)
 
 	if kamelet.Spec.Flow != nil {
 
@@ -321,8 +324,8 @@ func integrationSourceFromKameletSource(e *Environment, kamelet v1alpha1.Kamelet
 			},
 		},
 		Data: map[string]string{
-			"content": source.Content,
-			"schema":  string(schema),
+			contentKey: source.Content,
+			schemaKey:  string(schema),
 		},
 	}
 
@@ -331,7 +334,7 @@ func integrationSourceFromKameletSource(e *Environment, kamelet v1alpha1.Kamelet
 	target := source.DeepCopy()
 	target.Content = ""
 	target.ContentRef = name
-	target.ContentKey = "content"
+	target.ContentKey = contentKey
 	return *target, nil
 }
 
diff --git a/pkg/trait/kamelets_test.go b/pkg/trait/kamelets_test.go
index d2a1321..4f37b1d 100644
--- a/pkg/trait/kamelets_test.go
+++ b/pkg/trait/kamelets_test.go
@@ -98,6 +98,7 @@ func TestKameletLookup(t *testing.T) {
 				"camel:log",
 			},
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	})
 	enabled, err := trait.Configure(environment)
 	assert.NoError(t, err)
@@ -146,6 +147,7 @@ func TestKameletSecondarySourcesLookup(t *testing.T) {
 				},
 			},
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	})
 	enabled, err := trait.Configure(environment)
 	assert.NoError(t, err)
@@ -196,6 +198,7 @@ func TestNonYAMLKameletLookup(t *testing.T) {
 				},
 			},
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	})
 	enabled, err := trait.Configure(environment)
 	assert.NoError(t, err)
@@ -242,6 +245,7 @@ func TestErrorMultipleKameletSources(t *testing.T) {
 				},
 			}),
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	})
 	enabled, err := trait.Configure(environment)
 	assert.NoError(t, err)
@@ -284,6 +288,7 @@ func TestMultipleKamelets(t *testing.T) {
 				"camel:xxx",
 			},
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	}, &v1alpha1.Kamelet{
 		ObjectMeta: metav1.ObjectMeta{
 			Namespace: "test",
@@ -307,6 +312,7 @@ func TestMultipleKamelets(t *testing.T) {
 				"camel:tbd",
 			},
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	})
 	enabled, err := trait.Configure(environment)
 	assert.NoError(t, err)
@@ -368,6 +374,7 @@ func TestKameletConfigLookup(t *testing.T) {
 				"camel:log",
 			},
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	}, &corev1.Secret{
 		ObjectMeta: metav1.ObjectMeta{
 			Namespace: "test",
@@ -430,6 +437,7 @@ func TestKameletNamedConfigLookup(t *testing.T) {
 				"camel:log",
 			},
 		},
+		Status: v1alpha1.KameletStatus{Phase: v1alpha1.KameletPhaseReady},
 	}, &corev1.Secret{
 		ObjectMeta: metav1.ObjectMeta{
 			Namespace: "test",
@@ -516,6 +524,6 @@ func marshalOrFail(flow map[string]interface{}) *v1.Flow {
 	if err != nil {
 		panic(err)
 	}
-	f := v1.Flow{data}
+	f := v1.Flow{RawMessage: data}
 	return &f
 }
diff --git a/pkg/trait/knative_service_test.go b/pkg/trait/knative_service_test.go
index dcf0f65..9406d32 100644
--- a/pkg/trait/knative_service_test.go
+++ b/pkg/trait/knative_service_test.go
@@ -21,17 +21,16 @@ import (
 	"context"
 	"testing"
 
-	"github.com/stretchr/testify/assert"
-
-	corev1 "k8s.io/api/core/v1"
-	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	serving "knative.dev/serving/pkg/apis/serving/v1"
-
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/util/camel"
 	"github.com/apache/camel-k/pkg/util/envvar"
+	"github.com/apache/camel-k/pkg/util/gzip"
 	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"github.com/apache/camel-k/pkg/util/test"
+	"github.com/stretchr/testify/assert"
+	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	serving "knative.dev/serving/pkg/apis/serving/v1"
 )
 
 const (
@@ -45,6 +44,9 @@ func TestKnativeService(t *testing.T) {
 
 	traitCatalog := NewCatalog(context.TODO(), nil)
 
+	compressedRoute, err := gzip.CompressBase64([]byte(`from("undertow:test").log("hello")`))
+	assert.NoError(t, err)
+
 	environment := Environment{
 		CamelCatalog: catalog,
 		Catalog:      traitCatalog,
@@ -62,7 +64,7 @@ func TestKnativeService(t *testing.T) {
 					{
 						DataSpec: v1.DataSpec{
 							Name:        "routes.js",
-							Content:     `from("undertow:test").log("hello")`,
+							Content:     string(compressedRoute),
 							Compression: true,
 						},
 						Language: v1.LanguageJavaScript,
diff --git a/pkg/trait/service_test.go b/pkg/trait/service_test.go
index 61e5597..372dc2f 100644
--- a/pkg/trait/service_test.go
+++ b/pkg/trait/service_test.go
@@ -21,15 +21,14 @@ import (
 	"context"
 	"testing"
 
+	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	"github.com/apache/camel-k/pkg/util/camel"
+	"github.com/apache/camel-k/pkg/util/gzip"
+	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"github.com/stretchr/testify/assert"
-
 	appsv1 "k8s.io/api/apps/v1"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
-	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-	"github.com/apache/camel-k/pkg/util/camel"
-	"github.com/apache/camel-k/pkg/util/kubernetes"
 	"github.com/apache/camel-k/pkg/util/test"
 )
 
@@ -44,6 +43,9 @@ func TestServiceWithDefaults(t *testing.T) {
 
 	traitCatalog := NewCatalog(context.TODO(), nil)
 
+	compressedRoute, err := gzip.CompressBase64([]byte(`from("undertow:test").log("hello")`))
+	assert.NoError(t, err)
+
 	environment := Environment{
 		CamelCatalog: catalog,
 		Catalog:      traitCatalog,
@@ -61,7 +63,7 @@ func TestServiceWithDefaults(t *testing.T) {
 					{
 						DataSpec: v1.DataSpec{
 							Name:        "routes.js",
-							Content:     `from("undertow:test").log("hello")`,
+							Content:     string(compressedRoute),
 							Compression: true,
 						},
 						Language: v1.LanguageJavaScript,
@@ -130,6 +132,9 @@ func TestService(t *testing.T) {
 
 	traitCatalog := NewCatalog(context.TODO(), nil)
 
+	compressedRoute, err := gzip.CompressBase64([]byte(`from("undertow:test").log("hello")`))
+	assert.NoError(t, err)
+
 	environment := Environment{
 		CamelCatalog: catalog,
 		Catalog:      traitCatalog,
@@ -147,7 +152,7 @@ func TestService(t *testing.T) {
 					{
 						DataSpec: v1.DataSpec{
 							Name:        "routes.js",
-							Content:     `from("undertow:test").log("hello")`,
+							Content:     string(compressedRoute),
 							Compression: true,
 						},
 						Language: v1.LanguageJavaScript,
@@ -295,6 +300,9 @@ func TestServiceWithNodePort(t *testing.T) {
 
 	traitCatalog := NewCatalog(context.TODO(), nil)
 
+	compressedRoute, err := gzip.CompressBase64([]byte(`from("undertow:test").log("hello")`))
+	assert.NoError(t, err)
+
 	environment := Environment{
 		CamelCatalog: catalog,
 		Catalog:      traitCatalog,
@@ -312,7 +320,7 @@ func TestServiceWithNodePort(t *testing.T) {
 					{
 						DataSpec: v1.DataSpec{
 							Name:        "routes.js",
-							Content:     `from("undertow:test").log("hello")`,
+							Content:     string(compressedRoute),
 							Compression: true,
 						},
 						Language: v1.LanguageJavaScript,
diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go
index f1666f7..c397c2f 100644
--- a/pkg/trait/trait_types.go
+++ b/pkg/trait/trait_types.go
@@ -557,7 +557,7 @@ func (e *Environment) AddSourcesProperties() {
 				properties[fmt.Sprintf("camel.k.kamelets[%s].loader", kameletName)] = s.Loader
 			}
 			if s.Compression {
-				properties[fmt.Sprintf("camel.k.kamelets[%s].compression", kameletName)] = "true"
+				properties[fmt.Sprintf("camel.k.kamelets[%s].compression", kameletName)] = True
 			}
 
 			interceptors := make([]string, 0, len(s.Interceptors))
diff --git a/pkg/util/kubernetes/resolver.go b/pkg/util/kubernetes/resolver.go
index ae7621a..185c11b 100644
--- a/pkg/util/kubernetes/resolver.go
+++ b/pkg/util/kubernetes/resolver.go
@@ -23,6 +23,7 @@ import (
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/pkg/util/gzip"
+	"github.com/pkg/errors"
 	corev1 "k8s.io/api/core/v1"
 	controller "sigs.k8s.io/controller-runtime/pkg/client"
 )
@@ -84,7 +85,7 @@ func Resolve(data *v1.DataSpec, mapLookup func(string) (*corev1.ConfigMap, error
 		var uncompressed []byte
 		var err error
 		if uncompressed, err = gzip.UncompressBase64(cnt); err != nil {
-			return err
+			return errors.Wrap(err, "error while uncompressing data")
 		}
 		data.Compression = false
 		data.Content = string(uncompressed)
diff --git a/pkg/util/log/log.go b/pkg/util/log/log.go
index 7ac3573..7d290f0 100644
--- a/pkg/util/log/log.go
+++ b/pkg/util/log/log.go
@@ -19,9 +19,9 @@ package log
 
 import (
 	"fmt"
-	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 
 	v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
+	"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
 	"github.com/go-logr/logr"
 	logf "sigs.k8s.io/controller-runtime/pkg/log"
 )