You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2022/01/07 13:48:30 UTC
[camel-k] 24/24: fix(trait/openapi): proper content cast
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit a01900260ed08c44715f5cbca031a5fd37f38ad4
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Fri Jan 7 09:48:56 2022 +0100
fix(trait/openapi): proper content cast
---
e2e/common/traits/openapi_test.go | 28 ++++++++++++++++++++++++++++
examples/openapi/petstore.groovy | 2 +-
pkg/trait/kamelets.go | 1 +
pkg/trait/openapi.go | 4 ++--
4 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/e2e/common/traits/openapi_test.go b/e2e/common/traits/openapi_test.go
index 4b848bf..ccfbfe7 100644
--- a/e2e/common/traits/openapi_test.go
+++ b/e2e/common/traits/openapi_test.go
@@ -34,6 +34,34 @@ import (
. "github.com/apache/camel-k/e2e/support"
)
+func TestOpenAPI(t *testing.T) {
+ WithNewTestNamespace(t, func(ns string) {
+ Expect(Kamel("install", "-n", ns).Execute()).To(Succeed())
+
+ Expect(Kamel(
+ "run",
+ "-n", ns,
+ "--name", "petstore",
+ "--open-api", "file:files/openapi/petstore-api.yaml",
+ "files/openapi/petstore.groovy",
+ ).Execute()).To(Succeed())
+
+ Eventually(IntegrationPodPhase(ns, "petstore"), TestTimeoutLong).
+ Should(Equal(corev1.PodRunning))
+ Eventually(Deployment(ns, "petstore"), TestTimeoutLong).
+ Should(Not(BeNil()))
+
+ Eventually(IntegrationLogs(ns, "petstore"), TestTimeoutMedium).
+ Should(ContainSubstring("Started listPets (rest://get:/v1:/pets)"))
+ Eventually(IntegrationLogs(ns, "petstore"), TestTimeoutMedium).
+ Should(ContainSubstring("Started createPets (rest://post:/v1:/pets)"))
+ Eventually(IntegrationLogs(ns, "petstore"), TestTimeoutMedium).
+ Should(ContainSubstring("Started showPetById (rest://get:/v1:/pets/%7BpetId%7D)"))
+
+ Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+ })
+}
+
func TestOpenAPIConfigmap(t *testing.T) {
WithNewTestNamespace(t, func(ns string) {
Expect(Kamel("install", "-n", ns).Execute()).To(Succeed())
diff --git a/examples/openapi/petstore.groovy b/examples/openapi/petstore.groovy
index 880e22b..e5221e1 100644
--- a/examples/openapi/petstore.groovy
+++ b/examples/openapi/petstore.groovy
@@ -17,7 +17,7 @@
*/
//
-// kamel run --dev --name petstore --open-api petstore-api.yaml petstore.groovy
+// kamel run --dev --name petstore --open-api file:petstore-api.yaml petstore.groovy
//
from('direct:listPets')
diff --git a/pkg/trait/kamelets.go b/pkg/trait/kamelets.go
index 1079dfc..06d2122 100644
--- a/pkg/trait/kamelets.go
+++ b/pkg/trait/kamelets.go
@@ -254,6 +254,7 @@ func (t *kameletsTrait) configureApplicationProperties(e *Environment) error {
func (t *kameletsTrait) addKameletAsSource(e *Environment, kamelet *v1alpha1.Kamelet) error {
sources := make([]v1.SourceSpec, 0)
+ // nolint: staticcheck
if kamelet.Spec.Template != nil || kamelet.Spec.Flow != nil {
template := kamelet.Spec.Template
if template == nil {
diff --git a/pkg/trait/openapi.go b/pkg/trait/openapi.go
index c94f6fa..a4545be 100644
--- a/pkg/trait/openapi.go
+++ b/pkg/trait/openapi.go
@@ -145,10 +145,10 @@ func (t *openAPITrait) generateFromConfigmaps(e *Environment, tmpDir string) ([]
e.Resources.Add(refCm)
}
// Iterate over each configmap key which may hold a different OpenAPI spec
- for k, v := range cm.UnstructuredContent()["data"].(map[string]string) {
+ for k, v := range cm.UnstructuredContent()["data"].(map[string]interface{}) {
dataSpecs = append(dataSpecs, v1.DataSpec{
Name: k,
- Content: v,
+ Content: v.(string),
Compression: false,
})
}