From a32e68ea6368853f2644d2434bba507580ec98a3 Mon Sep 17 00:00:00 2001 From: Daisy Guo Date: Thu, 19 Mar 2020 15:07:37 +0800 Subject: [PATCH] Made two changes to Sink flag in order to support other event sources in client-contrib --- pkg/kn/commands/flags/sink.go | 22 ++++++++++++++++--- pkg/kn/commands/source/apiserver/apiserver.go | 16 -------------- pkg/kn/commands/source/apiserver/create.go | 4 ++-- pkg/kn/commands/source/apiserver/update.go | 4 ++-- pkg/kn/commands/source/binding/create.go | 2 +- pkg/kn/commands/source/binding/update.go | 2 +- pkg/kn/commands/source/ping/create.go | 2 +- pkg/kn/commands/source/ping/update.go | 2 +- pkg/kn/commands/trigger/create.go | 2 +- pkg/kn/commands/trigger/update.go | 2 +- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/pkg/kn/commands/flags/sink.go b/pkg/kn/commands/flags/sink.go index 4bc673e47c..fdff05dc2b 100644 --- a/pkg/kn/commands/flags/sink.go +++ b/pkg/kn/commands/flags/sink.go @@ -18,12 +18,14 @@ import ( "fmt" "strings" - "github.com/spf13/cobra" + flag "github.com/spf13/pflag" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "knative.dev/pkg/apis" duckv1 "knative.dev/pkg/apis/duck/v1" + duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1" + corev1 "k8s.io/api/core/v1" clientdynamic "knative.dev/client/pkg/dynamic" "knative.dev/client/pkg/kn/commands" ) @@ -32,8 +34,8 @@ type SinkFlags struct { sink string } -func (i *SinkFlags) Add(cmd *cobra.Command) { - cmd.Flags().StringVarP(&i.sink, "sink", "s", "", "Addressable sink for events") +func (i *SinkFlags) Add(flagset *flag.FlagSet) { + flagset.StringVarP(&i.sink, "sink", "s", "", "Addressable sink for events") } // SinkPrefixes maps prefixes used for sinks to their GroupVersionResources. @@ -132,3 +134,17 @@ func SinkToString(sink duckv1.Destination) string { } return "" } + +// SinkToDuckV1Beta1 converts a Destination from duckv1 to duckv1beta1 +func SinkToDuckV1Beta1(destination *duckv1.Destination) *duckv1beta1.Destination { + r := destination.Ref + return &duckv1beta1.Destination{ + Ref: &corev1.ObjectReference{ + Kind: r.Kind, + Namespace: r.Namespace, + Name: r.Name, + APIVersion: r.APIVersion, + }, + URI: destination.URI, + } +} diff --git a/pkg/kn/commands/source/apiserver/apiserver.go b/pkg/kn/commands/source/apiserver/apiserver.go index c8a6ba271d..6615e77ea3 100644 --- a/pkg/kn/commands/source/apiserver/apiserver.go +++ b/pkg/kn/commands/source/apiserver/apiserver.go @@ -16,10 +16,7 @@ package apiserver import ( "github.com/spf13/cobra" - corev1 "k8s.io/api/core/v1" "k8s.io/client-go/tools/clientcmd" - v1 "knative.dev/pkg/apis/duck/v1" - "knative.dev/pkg/apis/duck/v1beta1" clientv1alpha1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1alpha1" @@ -69,16 +66,3 @@ func newAPIServerSourceClient(p *commands.KnParams, cmd *cobra.Command) (v1alpha return v1alpha1.NewKnSourcesClient(client, namespace).APIServerSourcesClient(), nil } - -func toDuckV1Beta1(destination *v1.Destination) *v1beta1.Destination { - r := destination.Ref - return &v1beta1.Destination{ - Ref: &corev1.ObjectReference{ - Kind: r.Kind, - Namespace: r.Namespace, - Name: r.Name, - APIVersion: r.APIVersion, - }, - URI: destination.URI, - } -} diff --git a/pkg/kn/commands/source/apiserver/create.go b/pkg/kn/commands/source/apiserver/create.go index d8df782419..587ec5ed86 100644 --- a/pkg/kn/commands/source/apiserver/create.go +++ b/pkg/kn/commands/source/apiserver/create.go @@ -65,7 +65,7 @@ func NewAPIServerCreateCommand(p *commands.KnParams) *cobra.Command { b := v1alpha1.NewAPIServerSourceBuilder(name). ServiceAccount(updateFlags.ServiceAccountName). Mode(updateFlags.Mode). - Sink(toDuckV1Beta1(objectRef)) + Sink(flags.SinkToDuckV1Beta1(objectRef)) resources, err := updateFlags.getAPIServerResourceArray() if err != nil { @@ -90,7 +90,7 @@ func NewAPIServerCreateCommand(p *commands.KnParams) *cobra.Command { } commands.AddNamespaceFlags(cmd.Flags(), false) updateFlags.Add(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) cmd.MarkFlagRequired("resource") cmd.MarkFlagRequired("sink") return cmd diff --git a/pkg/kn/commands/source/apiserver/update.go b/pkg/kn/commands/source/apiserver/update.go index 9d0fec5073..c25c9c80c2 100644 --- a/pkg/kn/commands/source/apiserver/update.go +++ b/pkg/kn/commands/source/apiserver/update.go @@ -86,7 +86,7 @@ func NewAPIServerUpdateCommand(p *commands.KnParams) *cobra.Command { if err != nil { return err } - b.Sink(toDuckV1Beta1(objectRef)) + b.Sink(flags.SinkToDuckV1Beta1(objectRef)) } err = sourcesClient.UpdateAPIServerSource(b.Build()) @@ -99,6 +99,6 @@ func NewAPIServerUpdateCommand(p *commands.KnParams) *cobra.Command { } commands.AddNamespaceFlags(cmd.Flags(), false) apiServerUpdateFlags.Add(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) return cmd } diff --git a/pkg/kn/commands/source/binding/create.go b/pkg/kn/commands/source/binding/create.go index 48eb0a1d71..7d119ec4ed 100644 --- a/pkg/kn/commands/source/binding/create.go +++ b/pkg/kn/commands/source/binding/create.go @@ -90,7 +90,7 @@ func NewBindingCreateCommand(p *commands.KnParams) *cobra.Command { } commands.AddNamespaceFlags(cmd.Flags(), false) bindingFlags.addBindingFlags(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) cmd.MarkFlagRequired("subject") cmd.MarkFlagRequired("sink") diff --git a/pkg/kn/commands/source/binding/update.go b/pkg/kn/commands/source/binding/update.go index 93f490f49f..f44f1ba32b 100644 --- a/pkg/kn/commands/source/binding/update.go +++ b/pkg/kn/commands/source/binding/update.go @@ -95,7 +95,7 @@ func NewBindingUpdateCommand(p *commands.KnParams) *cobra.Command { } commands.AddNamespaceFlags(cmd.Flags(), false) bindingFlags.addBindingFlags(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) return cmd } diff --git a/pkg/kn/commands/source/ping/create.go b/pkg/kn/commands/source/ping/create.go index 20a47ea805..b9a53bbe42 100644 --- a/pkg/kn/commands/source/ping/create.go +++ b/pkg/kn/commands/source/ping/create.go @@ -77,7 +77,7 @@ func NewPingCreateCommand(p *commands.KnParams) *cobra.Command { } commands.AddNamespaceFlags(cmd.Flags(), false) pingUpdateFlags.addPingFlags(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) cmd.MarkFlagRequired("sink") return cmd diff --git a/pkg/kn/commands/source/ping/update.go b/pkg/kn/commands/source/ping/update.go index 60ea091827..7ccded986d 100644 --- a/pkg/kn/commands/source/ping/update.go +++ b/pkg/kn/commands/source/ping/update.go @@ -85,7 +85,7 @@ func NewPingUpdateCommand(p *commands.KnParams) *cobra.Command { } commands.AddNamespaceFlags(cmd.Flags(), false) pingUpdateFlags.addPingFlags(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) return cmd } diff --git a/pkg/kn/commands/trigger/create.go b/pkg/kn/commands/trigger/create.go index d7ab59aa1d..3f038fe885 100644 --- a/pkg/kn/commands/trigger/create.go +++ b/pkg/kn/commands/trigger/create.go @@ -108,7 +108,7 @@ func NewTriggerCreateCommand(p *commands.KnParams) *cobra.Command { } commands.AddNamespaceFlags(cmd.Flags(), false) triggerUpdateFlags.Add(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) cmd.MarkFlagRequired("sink") return cmd diff --git a/pkg/kn/commands/trigger/update.go b/pkg/kn/commands/trigger/update.go index fa5a036eae..809aef685a 100644 --- a/pkg/kn/commands/trigger/update.go +++ b/pkg/kn/commands/trigger/update.go @@ -117,7 +117,7 @@ func NewTriggerUpdateCommand(p *commands.KnParams) *cobra.Command { commands.AddNamespaceFlags(cmd.Flags(), false) triggerUpdateFlags.Add(cmd) - sinkFlags.Add(cmd) + sinkFlags.Add(cmd.Flags()) return cmd }