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


The following commit(s) were added to refs/heads/master by this push:
     new edf6305  fix(knative): Use channel hostname to filter Knative history 
header
edf6305 is described below

commit edf6305259970b0f212ff1bd87d768d51741bf2f
Author: Antonin Stefanutti <anto...@stefanutti.fr>
AuthorDate: Thu Sep 12 17:36:40 2019 +0200

    fix(knative): Use channel hostname to filter Knative history header
---
 pkg/trait/knative.go      | 14 +++++++++++---
 pkg/trait/knative_test.go | 15 +++++++++++++++
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/pkg/trait/knative.go b/pkg/trait/knative.go
index 619cb32..3246138 100644
--- a/pkg/trait/knative.go
+++ b/pkg/trait/knative.go
@@ -109,7 +109,7 @@ func (t *knativeTrait) Configure(e *Environment) (bool, 
error) {
                }
                if len(strings.Split(t.ChannelSources, ",")) > 1 {
                        // Always filter channels when the integration 
subscribes to more than one
-                       // Using Knative experimental header: 
https://github.com/knative/eventing/blob/master/pkg/provisioners/message.go#L28
+                       // Using Knative experimental header: 
https://github.com/knative/eventing/blob/7df0cc56c28d58223ff25d5ddfb487fa8c29a004/pkg/provisioners/message.go#L28
                        // TODO: filter automatically all source channels when 
the feature becomes stable
                        filter := true
                        t.FilterSourceChannels = &filter
@@ -182,13 +182,21 @@ func (t *knativeTrait) configureChannels(e *Environment, 
env *knativeapi.CamelEn
                if env.ContainsService(ch, knativeapi.CamelServiceTypeChannel) {
                        continue
                }
+
+               c, err := knativeutil.GetChannel(t.ctx, t.client, 
e.Integration.Namespace, ch)
+               if err != nil {
+                       return err
+               }
+               if c == nil {
+                       return errors.Errorf("cannot find channel %s", ch)
+               }
+
                meta := map[string]string{
                        knativeapi.CamelMetaServicePath: "/",
                }
                if t.FilterSourceChannels != nil && *t.FilterSourceChannels {
-                       fullName := ch + "." + e.Integration.Namespace + 
".channels.cluster.local"
                        meta[knativeapi.CamelMetaFilterHeaderName] = 
knativeHistoryHeader
-                       meta[knativeapi.CamelMetaFilterHeaderValue] = fullName
+                       meta[knativeapi.CamelMetaFilterHeaderValue] = 
c.Status.Address.Hostname
                }
                svc := knativeapi.CamelServiceDefinition{
                        Name:        ch,
diff --git a/pkg/trait/knative_test.go b/pkg/trait/knative_test.go
index 82e3500..3611298 100644
--- a/pkg/trait/knative_test.go
+++ b/pkg/trait/knative_test.go
@@ -245,6 +245,21 @@ func NewFakeClient(namespace string) (client.Client, 
error) {
                        },
                        ObjectMeta: metav1.ObjectMeta{
                                Namespace: namespace,
+                               Name:      "channel-source-1",
+                       },
+                       Status: eventing.ChannelStatus{
+                               Address: duckv1alpha1.Addressable{
+                                       Hostname: "channel-source-1.host",
+                               },
+                       },
+               },
+               &eventing.Channel{
+                       TypeMeta: metav1.TypeMeta{
+                               Kind:       "Channel",
+                               APIVersion: 
eventing.SchemeGroupVersion.String(),
+                       },
+                       ObjectMeta: metav1.ObjectMeta{
+                               Namespace: namespace,
                                Name:      "channel-sink-1",
                        },
                        Status: eventing.ChannelStatus{

Reply via email to