Refactor PingSourve to v1 API version (#1991)

* Refactor PingSourve to v1 API version

* Fix unit test for older api version
This commit is contained in:
David Simansky 2025-01-20 19:59:08 +01:00 committed by GitHub
parent 8d10f67dd9
commit 9baddba98c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 155 additions and 226 deletions

View File

@ -354,7 +354,7 @@ func completePingSource(config *completionConfig) (suggestions []string) {
return return
} }
client, err := config.params.NewSourcesV1beta2Client(namespace) client, err := config.params.NewSourcesClient(namespace)
if err != nil { if err != nil {
return return
} }

View File

@ -29,13 +29,10 @@ import (
v1beta1 "knative.dev/client/pkg/messaging/v1" v1beta1 "knative.dev/client/pkg/messaging/v1"
clientv1beta1 "knative.dev/client/pkg/serving/v1beta1" clientv1beta1 "knative.dev/client/pkg/serving/v1beta1"
clientsourcesv1 "knative.dev/client/pkg/sources/v1" clientsourcesv1 "knative.dev/client/pkg/sources/v1"
"knative.dev/client/pkg/sources/v1beta2"
eventingv1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2" eventingv1beta2 "knative.dev/eventing/pkg/apis/eventing/v1beta2"
messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
sourcesv1fake "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1/fake" sourcesv1fake "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1/fake"
sourcesv1beta2fake "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1beta2/fake"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/cli-runtime/pkg/genericclioptions"
@ -311,29 +308,29 @@ var (
) )
var ( var (
testPingSource1 = sourcesv1beta2.PingSource{ testPingSource1 = sourcesv1.PingSource{
TypeMeta: metav1.TypeMeta{ TypeMeta: metav1.TypeMeta{
Kind: "PingSource", Kind: "PingSource",
APIVersion: "sources.knative.dev/v1", APIVersion: "sources.knative.dev/v1",
}, },
ObjectMeta: metav1.ObjectMeta{Name: "test-ping-source-1", Namespace: testNs}, ObjectMeta: metav1.ObjectMeta{Name: "test-ping-source-1", Namespace: testNs},
} }
testPingSource2 = sourcesv1beta2.PingSource{ testPingSource2 = sourcesv1.PingSource{
TypeMeta: metav1.TypeMeta{ TypeMeta: metav1.TypeMeta{
Kind: "PingSource", Kind: "PingSource",
APIVersion: "sources.knative.dev/v1", APIVersion: "sources.knative.dev/v1",
}, },
ObjectMeta: metav1.ObjectMeta{Name: "test-ping-source-2", Namespace: testNs}, ObjectMeta: metav1.ObjectMeta{Name: "test-ping-source-2", Namespace: testNs},
} }
testPingSource3 = sourcesv1beta2.PingSource{ testPingSource3 = sourcesv1.PingSource{
TypeMeta: metav1.TypeMeta{ TypeMeta: metav1.TypeMeta{
Kind: "PingSource", Kind: "PingSource",
APIVersion: "sources.knative.dev/v1", APIVersion: "sources.knative.dev/v1",
}, },
ObjectMeta: metav1.ObjectMeta{Name: "test-ping-source-3", Namespace: testNs}, ObjectMeta: metav1.ObjectMeta{Name: "test-ping-source-3", Namespace: testNs},
} }
testNsPingSources = []sourcesv1beta2.PingSource{testPingSource1, testPingSource2, testPingSource3} testNsPingSources = []sourcesv1.PingSource{testPingSource1, testPingSource2, testPingSource3}
fakeSourcesV1Beta2 = &sourcesv1beta2fake.FakeSourcesV1beta2{Fake: &clienttesting.Fake{}} fakeSourcesV1Beta2 = &sourcesv1fake.FakeSourcesV1{Fake: &clienttesting.Fake{}}
) )
var ( var (
@ -449,9 +446,6 @@ current-context: x
NewSourcesClient: func(namespace string) (clientsourcesv1.KnSourcesClient, error) { NewSourcesClient: func(namespace string) (clientsourcesv1.KnSourcesClient, error) {
return clientsourcesv1.NewKnSourcesClient(fakeSources, namespace), nil return clientsourcesv1.NewKnSourcesClient(fakeSources, namespace), nil
}, },
NewSourcesV1beta2Client: func(namespace string) (v1beta2.KnSourcesClient, error) {
return v1beta2.NewKnSourcesClient(fakeSourcesV1Beta2, namespace), nil
},
NewEventingV1beta2Client: func(namespace string) (clienteventingv1beta2.KnEventingV1Beta2Client, error) { NewEventingV1beta2Client: func(namespace string) (clienteventingv1beta2.KnEventingV1Beta2Client, error) {
return clienteventingv1beta2.NewKnEventingV1Beta2Client(fakeEventingBeta2Client, namespace), nil return clienteventingv1beta2.NewKnEventingV1Beta2Client(fakeEventingBeta2Client, namespace), nil
}, },
@ -1254,7 +1248,7 @@ func TestResourceNameCompletionFuncPingSource(t *testing.T) {
if a.GetNamespace() == errorNs { if a.GetNamespace() == errorNs {
return true, nil, errors.NewInternalError(fmt.Errorf("unable to list ping sources")) return true, nil, errors.NewInternalError(fmt.Errorf("unable to list ping sources"))
} }
return true, &sourcesv1beta2.PingSourceList{Items: testNsPingSources}, nil return true, &sourcesv1.PingSourceList{Items: testNsPingSources}, nil
}) })
tests := []testType{ tests := []testType{

View File

@ -25,7 +25,7 @@ import (
"knative.dev/client/pkg/commands/flags" "knative.dev/client/pkg/commands/flags"
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1" eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
"knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
"knative.dev/pkg/apis" "knative.dev/pkg/apis"
duckv1 "knative.dev/pkg/apis/duck/v1" duckv1 "knative.dev/pkg/apis/duck/v1"
servingv1 "knative.dev/serving/pkg/apis/serving/v1" servingv1 "knative.dev/serving/pkg/apis/serving/v1"
@ -85,7 +85,7 @@ func TestResolve(t *testing.T) {
TypeMeta: metav1.TypeMeta{Kind: "Channel", APIVersion: "messaging.knative.dev/v1"}, TypeMeta: metav1.TypeMeta{Kind: "Channel", APIVersion: "messaging.knative.dev/v1"},
ObjectMeta: metav1.ObjectMeta{Name: "pipe", Namespace: "default"}, ObjectMeta: metav1.ObjectMeta{Name: "pipe", Namespace: "default"},
} }
pingSource := &v1beta2.PingSource{ pingSource := &sourcesv1.PingSource{
TypeMeta: metav1.TypeMeta{Kind: "PingSource", APIVersion: "sources.knative.dev/v1"}, TypeMeta: metav1.TypeMeta{Kind: "PingSource", APIVersion: "sources.knative.dev/v1"},
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}, ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"},
} }

View File

@ -73,7 +73,7 @@ func TestSourceListTypesNoSourcesWithJsonOutput(t *testing.T) {
func TestSourceListTypes(t *testing.T) { func TestSourceListTypes(t *testing.T) {
output, err := sourceFakeCmd([]string{"source", "list-types"}, output, err := sourceFakeCmd([]string{"source", "list-types"},
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"), newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"),
) )
assert.NilError(t, err) assert.NilError(t, err)
@ -108,7 +108,7 @@ func TestSourceListNoSourcesInstalled(t *testing.T) {
func TestSourceListEmpty(t *testing.T) { func TestSourceListEmpty(t *testing.T) {
output, err := sourceFakeCmd([]string{"source", "list", "-o", "json"}, output, err := sourceFakeCmd([]string{"source", "list", "-o", "json"},
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
) )
assert.NilError(t, err) assert.NilError(t, err)
outputJson := strings.Join(output[:], "\n") outputJson := strings.Join(output[:], "\n")
@ -117,10 +117,10 @@ func TestSourceListEmpty(t *testing.T) {
func TestSourceList(t *testing.T) { func TestSourceList(t *testing.T) {
output, err := sourceFakeCmd([]string{"source", "list"}, output, err := sourceFakeCmd([]string{"source", "list"},
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
newSourceCRDObjWithSpec("sinkbindings", "sources.knative.dev", "v1", "SinkBinding"), newSourceCRDObjWithSpec("sinkbindings", "sources.knative.dev", "v1", "SinkBinding"),
newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"), newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"),
newSourceUnstructuredObj("p1", "sources.knative.dev/v1beta2", "PingSource"), newSourceUnstructuredObj("p1", "sources.knative.dev/v1", "PingSource"),
newSourceUnstructuredObj("s1", "sources.knative.dev/v1", "SinkBinding"), newSourceUnstructuredObj("s1", "sources.knative.dev/v1", "SinkBinding"),
newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"), newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"),
) )
@ -145,8 +145,8 @@ func TestSourceListUntyped(t *testing.T) {
func TestSourceListNoHeaders(t *testing.T) { func TestSourceListNoHeaders(t *testing.T) {
output, err := sourceFakeCmd([]string{"source", "list", "--no-headers"}, output, err := sourceFakeCmd([]string{"source", "list", "--no-headers"},
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
newSourceUnstructuredObj("p1", "sources.knative.dev/v1beta2", "PingSource"), newSourceUnstructuredObj("p1", "sources.knative.dev/v1", "PingSource"),
) )
assert.NilError(t, err) assert.NilError(t, err)
assert.Check(t, util.ContainsNone(output[0], "NAME", "TYPE", "RESOURCE", "SINK", "READY")) assert.Check(t, util.ContainsNone(output[0], "NAME", "TYPE", "RESOURCE", "SINK", "READY"))
@ -208,10 +208,10 @@ func newSourceUnstructuredObj(name, apiVersion, kind string) *unstructured.Unstr
func TestSourceListAllNamespace(t *testing.T) { func TestSourceListAllNamespace(t *testing.T) {
output, err := sourceFakeCmd([]string{"source", "list", "--all-namespaces"}, output, err := sourceFakeCmd([]string{"source", "list", "--all-namespaces"},
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
newSourceCRDObjWithSpec("sinkbindings", "sources.knative.dev", "v1", "SinkBinding"), newSourceCRDObjWithSpec("sinkbindings", "sources.knative.dev", "v1", "SinkBinding"),
newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"), newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"),
newSourceUnstructuredObj("p1", "sources.knative.dev/v1beta2", "PingSource"), newSourceUnstructuredObj("p1", "sources.knative.dev/v1", "PingSource"),
newSourceUnstructuredObj("s1", "sources.knative.dev/v1", "SinkBinding"), newSourceUnstructuredObj("s1", "sources.knative.dev/v1", "SinkBinding"),
newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"), newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"),
) )

View File

@ -22,7 +22,7 @@ import (
"knative.dev/client/pkg/commands" "knative.dev/client/pkg/commands"
"knative.dev/client/pkg/commands/flags" "knative.dev/client/pkg/commands/flags"
clientsourcesv1beta2 "knative.dev/client/pkg/sources/v1beta2" clientsourcesv1 "knative.dev/client/pkg/sources/v1"
"knative.dev/client/pkg/util" "knative.dev/client/pkg/util"
) )
@ -76,7 +76,7 @@ func NewPingCreateCommand(p *commands.KnParams) *cobra.Command {
"%q because: %s", name, namespace, err) "%q because: %s", name, namespace, err)
} }
err = pingSourceClient.CreatePingSource(cmd.Context(), clientsourcesv1beta2.NewPingSourceBuilder(name). err = pingSourceClient.CreatePingSource(cmd.Context(), clientsourcesv1.NewPingSourceBuilder(name).
Schedule(updateFlags.schedule). Schedule(updateFlags.schedule).
Data(data). Data(data).
DataBase64(dataBase64). DataBase64(dataBase64).

View File

@ -22,7 +22,7 @@ import (
servingv1 "knative.dev/serving/pkg/apis/serving/v1" servingv1 "knative.dev/serving/pkg/apis/serving/v1"
dynamicfake "knative.dev/client/pkg/dynamic/fake" dynamicfake "knative.dev/client/pkg/dynamic/fake"
clientsourcesv1beta2 "knative.dev/client/pkg/sources/v1beta2" clientsourcesv1beta2 "knative.dev/client/pkg/sources/v1"
"knative.dev/client/pkg/util" "knative.dev/client/pkg/util"
) )

View File

@ -19,13 +19,13 @@ import (
"testing" "testing"
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
clientsourcesv1beta2 "knative.dev/client/pkg/sources/v1beta2" clientsourcesv1 "knative.dev/client/pkg/sources/v1"
"knative.dev/client/pkg/util" "knative.dev/client/pkg/util"
) )
func TestSimpleDelete(t *testing.T) { func TestSimpleDelete(t *testing.T) {
pingClient := clientsourcesv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientsourcesv1.NewMockKnPingSourceClient(t, "mynamespace")
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.DeletePingSource("testsource", nil) pingRecorder.DeletePingSource("testsource", nil)
@ -38,7 +38,7 @@ func TestSimpleDelete(t *testing.T) {
} }
func TestDeleteWithError(t *testing.T) { func TestDeleteWithError(t *testing.T) {
pingClient := clientsourcesv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientsourcesv1.NewMockKnPingSourceClient(t, "mynamespace")
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.DeletePingSource("testsource", errors.New("no such Ping source testsource")) pingRecorder.DeletePingSource("testsource", errors.New("no such Ping source testsource"))
@ -51,7 +51,7 @@ func TestDeleteWithError(t *testing.T) {
} }
func TestPingDeleteErrorForNoArgs(t *testing.T) { func TestPingDeleteErrorForNoArgs(t *testing.T) {
pingClient := clientsourcesv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientsourcesv1.NewMockKnPingSourceClient(t, "mynamespace")
out, err := executePingSourceCommand(pingClient, nil, "delete") out, err := executePingSourceCommand(pingClient, nil, "delete")
assert.ErrorContains(t, err, "single argument") assert.ErrorContains(t, err, "single argument")
assert.Assert(t, util.ContainsAll(out, "requires", "single argument")) assert.Assert(t, util.ContainsAll(out, "requires", "single argument"))

View File

@ -24,7 +24,7 @@ import (
"knative.dev/client/pkg/commands" "knative.dev/client/pkg/commands"
"knative.dev/client/pkg/printers" "knative.dev/client/pkg/printers"
clientsourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" clientsourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
) )
var describeExample = ` var describeExample = `
@ -115,7 +115,7 @@ func NewPingDescribeCommand(p *commands.KnParams) *cobra.Command {
return command return command
} }
func writePingSource(dw printers.PrefixWriter, source *clientsourcesv1beta2.PingSource, printDetails bool) { func writePingSource(dw printers.PrefixWriter, source *clientsourcesv1.PingSource, printDetails bool) {
commands.WriteMetadata(dw, &source.ObjectMeta, printDetails) commands.WriteMetadata(dw, &source.ObjectMeta, printDetails)
dw.WriteAttribute("Schedule", source.Spec.Schedule) dw.WriteAttribute("Schedule", source.Spec.Schedule)
if source.Spec.DataBase64 != "" { if source.Spec.DataBase64 != "" {

View File

@ -20,16 +20,16 @@ import (
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
sourcesv1beta "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
duckv1 "knative.dev/pkg/apis/duck/v1" duckv1 "knative.dev/pkg/apis/duck/v1"
clientv1beta2 "knative.dev/client/pkg/sources/v1beta2" clientv1 "knative.dev/client/pkg/sources/v1"
"knative.dev/client/pkg/util" "knative.dev/client/pkg/util"
"knative.dev/pkg/apis" "knative.dev/pkg/apis"
) )
func TestDescribeRef(t *testing.T) { func TestDescribeRef(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientv1.NewMockKnPingSourceClient(t, "mynamespace")
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.GetPingSource("testping", pingRecorder.GetPingSource("testping",
@ -51,7 +51,7 @@ func TestDescribeRef(t *testing.T) {
} }
func TestDescribeURI(t *testing.T) { func TestDescribeURI(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientv1.NewMockKnPingSourceClient(t, "mynamespace")
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.GetPingSource("testsource-uri", getPingSourceSinkURI(), nil) pingRecorder.GetPingSource("testsource-uri", getPingSourceSinkURI(), nil)
@ -64,7 +64,7 @@ func TestDescribeURI(t *testing.T) {
} }
func TestDescribeMachineReadable(t *testing.T) { func TestDescribeMachineReadable(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientv1.NewMockKnPingSourceClient(t, "mynamespace")
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.GetPingSource("testsource-uri", getPingSourceSinkURI(), nil) pingRecorder.GetPingSource("testsource-uri", getPingSourceSinkURI(), nil)
@ -76,7 +76,7 @@ func TestDescribeMachineReadable(t *testing.T) {
} }
func TestDescribeError(t *testing.T) { func TestDescribeError(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientv1.NewMockKnPingSourceClient(t, "mynamespace")
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.GetPingSource("testsource", nil, errors.New("no Ping source testsource")) pingRecorder.GetPingSource("testsource", nil, errors.New("no Ping source testsource"))
@ -90,14 +90,14 @@ func TestDescribeError(t *testing.T) {
} }
func TestPingDescribeErrorForNoArgs(t *testing.T) { func TestPingDescribeErrorForNoArgs(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := clientv1.NewMockKnPingSourceClient(t, "mynamespace")
out, err := executePingSourceCommand(pingClient, nil, "describe") out, err := executePingSourceCommand(pingClient, nil, "describe")
assert.ErrorContains(t, err, "single argument") assert.ErrorContains(t, err, "single argument")
assert.Assert(t, util.ContainsAll(out, "requires", "single argument")) assert.Assert(t, util.ContainsAll(out, "requires", "single argument"))
} }
func getPingSourceSinkURI() *sourcesv1beta.PingSource { func getPingSourceSinkURI() *sourcesv1.PingSource {
return &sourcesv1beta.PingSource{ return &sourcesv1.PingSource{
TypeMeta: metav1.TypeMeta{ TypeMeta: metav1.TypeMeta{
Kind: "PingSource", Kind: "PingSource",
APIVersion: "sources.knative.dev/v1beta2", APIVersion: "sources.knative.dev/v1beta2",
@ -106,7 +106,7 @@ func getPingSourceSinkURI() *sourcesv1beta.PingSource {
Name: "testsource-uri", Name: "testsource-uri",
Namespace: "mynamespace", Namespace: "mynamespace",
}, },
Spec: sourcesv1beta.PingSourceSpec{ Spec: sourcesv1.PingSourceSpec{
Schedule: "1 2 3 4 5", Schedule: "1 2 3 4 5",
Data: "honeymoon", Data: "honeymoon",
SourceSpec: duckv1.SourceSpec{ SourceSpec: duckv1.SourceSpec{
@ -118,6 +118,6 @@ func getPingSourceSinkURI() *sourcesv1beta.PingSource {
}, },
}, },
}, },
Status: sourcesv1beta.PingSourceStatus{}, Status: sourcesv1.PingSourceStatus{},
} }
} }

View File

@ -26,7 +26,7 @@ import (
"knative.dev/client/pkg/commands" "knative.dev/client/pkg/commands"
hprinters "knative.dev/client/pkg/printers" hprinters "knative.dev/client/pkg/printers"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
) )
type pingUpdateFlags struct { type pingUpdateFlags struct {
@ -78,7 +78,7 @@ func PingSourceListHandlers(h hprinters.PrintHandler) {
} }
// printSource populates a single row of Ping source list // printSource populates a single row of Ping source list
func printSource(source *sourcesv1beta2.PingSource, options hprinters.PrintOptions) ([]metav1.TableRow, error) { func printSource(source *sourcesv1.PingSource, options hprinters.PrintOptions) ([]metav1.TableRow, error) {
row := metav1.TableRow{ row := metav1.TableRow{
Object: runtime.RawExtension{Object: source}, Object: runtime.RawExtension{Object: source},
} }
@ -111,7 +111,7 @@ func printSource(source *sourcesv1beta2.PingSource, options hprinters.PrintOptio
} }
// printSourceList populates the Ping source list table rows // printSourceList populates the Ping source list table rows
func printSourceList(sourceList *sourcesv1beta2.PingSourceList, options hprinters.PrintOptions) ([]metav1.TableRow, error) { func printSourceList(sourceList *sourcesv1.PingSourceList, options hprinters.PrintOptions) ([]metav1.TableRow, error) {
if options.AllNamespaces { if options.AllNamespaces {
return printSourceListWithNamespace(sourceList, options) return printSourceListWithNamespace(sourceList, options)
} }
@ -135,7 +135,7 @@ func printSourceList(sourceList *sourcesv1beta2.PingSourceList, options hprinter
} }
// printSourceListWithNamespace populates the knative service table rows with namespace column // printSourceListWithNamespace populates the knative service table rows with namespace column
func printSourceListWithNamespace(sourceList *sourcesv1beta2.PingSourceList, options hprinters.PrintOptions) ([]metav1.TableRow, error) { func printSourceListWithNamespace(sourceList *sourcesv1.PingSourceList, options hprinters.PrintOptions) ([]metav1.TableRow, error) {
rows := make([]metav1.TableRow, 0, len(sourceList.Items)) rows := make([]metav1.TableRow, 0, len(sourceList.Items))
// temporary slice for sorting services in non-default namespace // temporary slice for sorting services in non-default namespace

View File

@ -21,19 +21,19 @@ import (
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
clientv1beta2 "knative.dev/client/pkg/sources/v1beta2" clientv1 "knative.dev/client/pkg/sources/v1"
"knative.dev/client/pkg/util" "knative.dev/client/pkg/util"
) )
func TestListPingSource(t *testing.T) { func TestListPingSource(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t) pingClient := clientv1.NewMockKnPingSourceClient(t)
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
cJSource := createPingSource("testsource", "* * * * */2", "maxwell", "", "mysvc", nil) cJSource := createPingSource("testsource", "* * * * */2", "maxwell", "", "mysvc", nil)
cJSourceList := sourcesv1beta2.PingSourceList{} cJSourceList := sourcesv1.PingSourceList{}
cJSourceList.Items = []sourcesv1beta2.PingSource{*cJSource} cJSourceList.Items = []sourcesv1.PingSource{*cJSource}
pingRecorder.ListPingSource(&cJSourceList, nil) pingRecorder.ListPingSource(&cJSourceList, nil)
@ -46,10 +46,10 @@ func TestListPingSource(t *testing.T) {
} }
func TestListPingJobSourceEmpty(t *testing.T) { func TestListPingJobSourceEmpty(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t) pingClient := clientv1.NewMockKnPingSourceClient(t)
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
cJSourceList := sourcesv1beta2.PingSourceList{} cJSourceList := sourcesv1.PingSourceList{}
pingRecorder.ListPingSource(&cJSourceList, nil) pingRecorder.ListPingSource(&cJSourceList, nil)
@ -62,16 +62,16 @@ func TestListPingJobSourceEmpty(t *testing.T) {
} }
func TestListPingJobSourceEmptyWithJsonOutput(t *testing.T) { func TestListPingJobSourceEmptyWithJsonOutput(t *testing.T) {
pingClient := clientv1beta2.NewMockKnPingSourceClient(t) pingClient := clientv1.NewMockKnPingSourceClient(t)
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
cJSourceList := sourcesv1beta2.PingSourceList{} cJSourceList := sourcesv1.PingSourceList{}
_ = util.UpdateGroupVersionKindWithScheme(&cJSourceList, sourcesv1beta2.SchemeGroupVersion, scheme.Scheme) _ = util.UpdateGroupVersionKindWithScheme(&cJSourceList, sourcesv1.SchemeGroupVersion, scheme.Scheme)
pingRecorder.ListPingSource(&cJSourceList, nil) pingRecorder.ListPingSource(&cJSourceList, nil)
out, err := executePingSourceCommand(pingClient, nil, "list", "-o", "json") out, err := executePingSourceCommand(pingClient, nil, "list", "-o", "json")
assert.NilError(t, err, "Sources should be listed") assert.NilError(t, err, "Sources should be listed")
assert.Assert(t, util.ContainsAll(out, "\"apiVersion\": \"sources.knative.dev/v1beta2\"", "\"items\": []", "\"kind\": \"PingSourceList\"")) assert.Assert(t, util.ContainsAll(out, "\"apiVersion\": \"sources.knative.dev/v1\"", "\"items\": []", "\"kind\": \"PingSourceList\""))
pingRecorder.Validate() pingRecorder.Validate()
} }

View File

@ -20,8 +20,8 @@ import (
"k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd"
"knative.dev/client/pkg/commands" "knative.dev/client/pkg/commands"
clientv1beta2 "knative.dev/client/pkg/sources/v1beta2" clientv1 "knative.dev/client/pkg/sources/v1"
sourcesv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1"
) )
// NewPingCommand is the root command for all Ping source related commands // NewPingCommand is the root command for all Ping source related commands
@ -38,9 +38,9 @@ func NewPingCommand(p *commands.KnParams) *cobra.Command {
return pingImporterCmd return pingImporterCmd
} }
var pingSourceClientFactory func(config clientcmd.ClientConfig, namespace string) (clientv1beta2.KnPingSourcesClient, error) var pingSourceClientFactory func(config clientcmd.ClientConfig, namespace string) (clientv1.KnPingSourcesClient, error)
func newPingSourceClient(p *commands.KnParams, cmd *cobra.Command) (clientv1beta2.KnPingSourcesClient, error) { func newPingSourceClient(p *commands.KnParams, cmd *cobra.Command) (clientv1.KnPingSourcesClient, error) {
namespace, err := p.GetNamespace(cmd) namespace, err := p.GetNamespace(cmd)
if err != nil { if err != nil {
return nil, err return nil, err
@ -59,10 +59,10 @@ func newPingSourceClient(p *commands.KnParams, cmd *cobra.Command) (clientv1beta
return nil, err return nil, err
} }
client, err := sourcesv1beta2.NewForConfig(clientConfig) client, err := sourcesv1.NewForConfig(clientConfig)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return clientv1beta2.NewKnSourcesClient(client, namespace).PingSourcesClient(), nil return clientv1.NewKnSourcesClient(client, namespace).PingSourcesClient(), nil
} }

View File

@ -21,12 +21,12 @@ import (
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
"k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
duckv1 "knative.dev/pkg/apis/duck/v1" duckv1 "knative.dev/pkg/apis/duck/v1"
"knative.dev/client/pkg/commands" "knative.dev/client/pkg/commands"
kndynamic "knative.dev/client/pkg/dynamic" kndynamic "knative.dev/client/pkg/dynamic"
clientv1beta2 "knative.dev/client/pkg/sources/v1beta2" clientv1 "knative.dev/client/pkg/sources/v1"
) )
// Helper methods // Helper methods
@ -37,7 +37,7 @@ var blankConfig clientcmd.ClientConfig
func init() { func init() {
var err error var err error
blankConfig, err = clientcmd.NewClientConfigFromBytes([]byte(`kind: Config blankConfig, err = clientcmd.NewClientConfigFromBytes([]byte(`kind: Config
version: v1beta2 version: v1
users: users:
- name: u - name: u
clusters: clusters:
@ -72,7 +72,7 @@ func TestPingBuilder(t *testing.T) {
assert.DeepEqual(t, ceOverrideMap, ps.Spec.CloudEventOverrides.Extensions) assert.DeepEqual(t, ceOverrideMap, ps.Spec.CloudEventOverrides.Extensions)
} }
func executePingSourceCommand(pingSourceClient clientv1beta2.KnPingSourcesClient, dynamicClient kndynamic.KnDynamicClient, args ...string) (string, error) { func executePingSourceCommand(pingSourceClient clientv1.KnPingSourcesClient, dynamicClient kndynamic.KnDynamicClient, args ...string) (string, error) {
knParams := &commands.KnParams{} knParams := &commands.KnParams{}
knParams.ClientConfig = blankConfig knParams.ClientConfig = blankConfig
@ -86,7 +86,7 @@ func executePingSourceCommand(pingSourceClient clientv1beta2.KnPingSourcesClient
cmd.SetArgs(args) cmd.SetArgs(args)
cmd.SetOutput(output) cmd.SetOutput(output)
pingSourceClientFactory = func(config clientcmd.ClientConfig, namespace string) (clientv1beta2.KnPingSourcesClient, error) { pingSourceClientFactory = func(config clientcmd.ClientConfig, namespace string) (clientv1.KnPingSourcesClient, error) {
return pingSourceClient, nil return pingSourceClient, nil
} }
defer cleanupPingMockClient() defer cleanupPingMockClient()
@ -100,11 +100,11 @@ func cleanupPingMockClient() {
pingSourceClientFactory = nil pingSourceClientFactory = nil
} }
func createPingSource(name, schedule, data, dataBase64, service string, ceOverridesMap map[string]string) *sourcesv1beta2.PingSource { func createPingSource(name, schedule, data, dataBase64, service string, ceOverridesMap map[string]string) *sourcesv1.PingSource {
sink := &duckv1.Destination{ sink := &duckv1.Destination{
Ref: &duckv1.KReference{Name: service, Kind: "Service", APIVersion: "serving.knative.dev/v1", Namespace: "default"}, Ref: &duckv1.KReference{Name: service, Kind: "Service", APIVersion: "serving.knative.dev/v1", Namespace: "default"},
} }
return clientv1beta2.NewPingSourceBuilder(name). return clientv1.NewPingSourceBuilder(name).
Schedule(schedule). Schedule(schedule).
Data(data). Data(data).
DataBase64(dataBase64). DataBase64(dataBase64).

View File

@ -24,8 +24,8 @@ import (
"knative.dev/client/pkg/commands" "knative.dev/client/pkg/commands"
"knative.dev/client/pkg/commands/flags" "knative.dev/client/pkg/commands/flags"
sourcesv1beta2 "knative.dev/client/pkg/sources/v1beta2" sourcesv1 "knative.dev/client/pkg/sources/v1"
eventingsourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" eventingsourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
"knative.dev/client/pkg/util" "knative.dev/client/pkg/util"
) )
@ -63,8 +63,8 @@ func NewPingUpdateCommand(p *commands.KnParams) *cobra.Command {
return err return err
} }
updateFunc := func(origSource *eventingsourcesv1beta2.PingSource) (*eventingsourcesv1beta2.PingSource, error) { updateFunc := func(origSource *eventingsourcesv1.PingSource) (*eventingsourcesv1.PingSource, error) {
b := sourcesv1beta2.NewPingSourceBuilderFromExisting(origSource) b := sourcesv1.NewPingSourceBuilderFromExisting(origSource)
if cmd.Flags().Changed("schedule") { if cmd.Flags().Changed("schedule") {
b.Schedule(updateFlags.schedule) b.Schedule(updateFlags.schedule)
} }

View File

@ -23,7 +23,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
dynamicfake "knative.dev/client/pkg/dynamic/fake" dynamicfake "knative.dev/client/pkg/dynamic/fake"
sourcesv1beta2 "knative.dev/client/pkg/sources/v1beta2" sourcesv1 "knative.dev/client/pkg/sources/v1"
"knative.dev/client/pkg/util" "knative.dev/client/pkg/util"
servingv1 "knative.dev/serving/pkg/apis/serving/v1" servingv1 "knative.dev/serving/pkg/apis/serving/v1"
) )
@ -34,7 +34,7 @@ func TestSimplePingUpdate(t *testing.T) {
ObjectMeta: metav1.ObjectMeta{Name: "mysvc1", Namespace: "default"}, ObjectMeta: metav1.ObjectMeta{Name: "mysvc1", Namespace: "default"},
} }
dynamicClient := dynamicfake.CreateFakeKnDynamicClient("default", mysvc1) dynamicClient := dynamicfake.CreateFakeKnDynamicClient("default", mysvc1)
pingSourceClient := sourcesv1beta2.NewMockKnPingSourceClient(t) pingSourceClient := sourcesv1.NewMockKnPingSourceClient(t)
pingRecorder := pingSourceClient.Recorder() pingRecorder := pingSourceClient.Recorder()
pingRecorder.GetPingSource("testsource", createPingSource("testsource", "* * * * */1", "maxwell", "", "mysvc", nil), nil) pingRecorder.GetPingSource("testsource", createPingSource("testsource", "* * * * */1", "maxwell", "", "mysvc", nil), nil)
pingRecorder.UpdatePingSource(createPingSource("testsource", "* * * * */3", "maxwell", "", "mysvc1", nil), nil) pingRecorder.UpdatePingSource(createPingSource("testsource", "* * * * */3", "maxwell", "", "mysvc1", nil), nil)
@ -70,7 +70,7 @@ func TestSimplePingUpdate(t *testing.T) {
// TestSimplePingUpdateCEOverrides updates ce override, schedule, data and sink // TestSimplePingUpdateCEOverrides updates ce override, schedule, data and sink
func TestSimplePingUpdateCEOverrides(t *testing.T) { func TestSimplePingUpdateCEOverrides(t *testing.T) {
pingSourceClient := sourcesv1beta2.NewMockKnPingSourceClient(t) pingSourceClient := sourcesv1.NewMockKnPingSourceClient(t)
pingRecorder := pingSourceClient.Recorder() pingRecorder := pingSourceClient.Recorder()
ceOverrideMap := map[string]string{"bla": "blub", "foo": "bar"} ceOverrideMap := map[string]string{"bla": "blub", "foo": "bar"}
ceOverrideMapUpdated := map[string]string{"foo": "baz", "new": "ceoverride"} ceOverrideMapUpdated := map[string]string{"foo": "baz", "new": "ceoverride"}
@ -85,7 +85,7 @@ func TestSimplePingUpdateCEOverrides(t *testing.T) {
} }
func TestUpdateError(t *testing.T) { func TestUpdateError(t *testing.T) {
pingClient := sourcesv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := sourcesv1.NewMockKnPingSourceClient(t, "mynamespace")
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.GetPingSource("testsource", nil, errors.New("no Ping source testsource")) pingRecorder.GetPingSource("testsource", nil, errors.New("no Ping source testsource"))
@ -98,7 +98,7 @@ func TestUpdateError(t *testing.T) {
} }
func TestPingUpdateDeletionTimestampNotNil(t *testing.T) { func TestPingUpdateDeletionTimestampNotNil(t *testing.T) {
pingSourceClient := sourcesv1beta2.NewMockKnPingSourceClient(t) pingSourceClient := sourcesv1.NewMockKnPingSourceClient(t)
present := createPingSource("test", "", "", "", "", nil) present := createPingSource("test", "", "", "", "", nil)
present.DeletionTimestamp = &metav1.Time{Time: time.Now()} present.DeletionTimestamp = &metav1.Time{Time: time.Now()}
pingRecorder := pingSourceClient.Recorder() pingRecorder := pingSourceClient.Recorder()
@ -111,7 +111,7 @@ func TestPingUpdateDeletionTimestampNotNil(t *testing.T) {
} }
func TestPingUpdateErrorForNoArgs(t *testing.T) { func TestPingUpdateErrorForNoArgs(t *testing.T) {
pingClient := sourcesv1beta2.NewMockKnPingSourceClient(t, "mynamespace") pingClient := sourcesv1.NewMockKnPingSourceClient(t, "mynamespace")
out, err := executePingSourceCommand(pingClient, nil, "update") out, err := executePingSourceCommand(pingClient, nil, "update")
assert.ErrorContains(t, err, "required") assert.ErrorContains(t, err, "required")
assert.Assert(t, util.ContainsAll(out, "Ping", "name", "required")) assert.Assert(t, util.ContainsAll(out, "Ping", "name", "required"))
@ -119,7 +119,7 @@ func TestPingUpdateErrorForNoArgs(t *testing.T) {
func TestPingUpdateNoSinkError(t *testing.T) { func TestPingUpdateNoSinkError(t *testing.T) {
dynamicClient := dynamicfake.CreateFakeKnDynamicClient("default") dynamicClient := dynamicfake.CreateFakeKnDynamicClient("default")
pingClient := sourcesv1beta2.NewMockKnPingSourceClient(t) pingClient := sourcesv1.NewMockKnPingSourceClient(t)
pingRecorder := pingClient.Recorder() pingRecorder := pingClient.Recorder()
pingRecorder.GetPingSource("testsource", createPingSource("testsource", "* * * * */1", "maxwell", "", "mysvc", nil), nil) pingRecorder.GetPingSource("testsource", createPingSource("testsource", "* * * * */1", "maxwell", "", "mysvc", nil), nil)

View File

@ -28,7 +28,6 @@ import (
eventingv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2" eventingv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/eventing/v1beta2"
messagingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/messaging/v1" messagingv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/messaging/v1"
sourcesv1client "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1" sourcesv1client "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1"
sourcesv1beta2client "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1beta2"
servingv1client "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1" servingv1client "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1"
servingv1beta1client "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1beta1" servingv1beta1client "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1beta1"
@ -42,7 +41,6 @@ import (
clientservingv1 "knative.dev/client/pkg/serving/v1" clientservingv1 "knative.dev/client/pkg/serving/v1"
clientservingv1beta1 "knative.dev/client/pkg/serving/v1beta1" clientservingv1beta1 "knative.dev/client/pkg/serving/v1beta1"
clientsourcesv1 "knative.dev/client/pkg/sources/v1" clientsourcesv1 "knative.dev/client/pkg/sources/v1"
clientsourcesv1beta2 "knative.dev/client/pkg/sources/v1beta2"
) )
// KnParams for creating commands. Useful for inserting mocks for testing. // KnParams for creating commands. Useful for inserting mocks for testing.
@ -54,7 +52,6 @@ type KnParams struct {
NewServingV1beta1Client func(namespace string) (clientservingv1beta1.KnServingClient, error) NewServingV1beta1Client func(namespace string) (clientservingv1beta1.KnServingClient, error)
NewGitopsServingClient func(namespace string, dir string) (clientservingv1.KnServingClient, error) NewGitopsServingClient func(namespace string, dir string) (clientservingv1.KnServingClient, error)
NewSourcesClient func(namespace string) (clientsourcesv1.KnSourcesClient, error) NewSourcesClient func(namespace string) (clientsourcesv1.KnSourcesClient, error)
NewSourcesV1beta2Client func(namespace string) (clientsourcesv1beta2.KnSourcesClient, error)
NewEventingClient func(namespace string) (clienteventingv1.KnEventingClient, error) NewEventingClient func(namespace string) (clienteventingv1.KnEventingClient, error)
NewMessagingClient func(namespace string) (clientmessagingv1.KnMessagingClient, error) NewMessagingClient func(namespace string) (clientmessagingv1.KnMessagingClient, error)
NewDynamicClient func(namespace string) (clientdynamic.KnDynamicClient, error) NewDynamicClient func(namespace string) (clientdynamic.KnDynamicClient, error)
@ -104,10 +101,6 @@ func (params *KnParams) Initialize() {
params.NewDynamicClient = params.newDynamicClient params.NewDynamicClient = params.newDynamicClient
} }
if params.NewSourcesV1beta2Client == nil {
params.NewSourcesV1beta2Client = params.newSourcesClientV1beta2
}
if params.NewEventingV1beta2Client == nil { if params.NewEventingV1beta2Client == nil {
params.NewEventingV1beta2Client = params.newEventingV1Beta2Client params.NewEventingV1beta2Client = params.newEventingV1Beta2Client
} }
@ -167,16 +160,6 @@ func (params *KnParams) newSourcesClient(namespace string) (clientsourcesv1.KnSo
return clientsourcesv1.NewKnSourcesClient(client, namespace), nil return clientsourcesv1.NewKnSourcesClient(client, namespace), nil
} }
func (params *KnParams) newSourcesClientV1beta2(namespace string) (clientsourcesv1beta2.KnSourcesClient, error) {
restConfig, err := params.RestConfig()
if err != nil {
return nil, err
}
client, _ := sourcesv1beta2client.NewForConfig(restConfig)
return clientsourcesv1beta2.NewKnSourcesClient(client, namespace), nil
}
func (params *KnParams) newEventingClient(namespace string) (clienteventingv1.KnEventingClient, error) { func (params *KnParams) newEventingClient(namespace string) (clienteventingv1.KnEventingClient, error) {
restConfig, err := params.RestConfig() restConfig, err := params.RestConfig()
if err != nil { if err != nil {

View File

@ -185,7 +185,7 @@ func TestNewSourcesV1beta2Client(t *testing.T) {
LogHTTP: tc.logHttp, LogHTTP: tc.logHttp,
} }
sourcesClient, err := p.newSourcesClientV1beta2(namespace) sourcesClient, err := p.newSourcesClient(namespace)
switch len(tc.expectedErrString) { switch len(tc.expectedErrString) {
case 0: case 0:

View File

@ -32,7 +32,6 @@ import (
"knative.dev/eventing/pkg/apis/messaging" "knative.dev/eventing/pkg/apis/messaging"
messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
dynamicclientfake "knative.dev/pkg/injection/clients/dynamicclient/fake" dynamicclientfake "knative.dev/pkg/injection/clients/dynamicclient/fake"
servingv1 "knative.dev/serving/pkg/apis/serving/v1" servingv1 "knative.dev/serving/pkg/apis/serving/v1"
@ -113,7 +112,7 @@ func TestListSources(t *testing.T) {
t.Run("source list empty", func(t *testing.T) { t.Run("source list empty", func(t *testing.T) {
client := createFakeKnDynamicClient(testNamespace, client := createFakeKnDynamicClient(testNamespace,
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
) )
sources, err := client.ListSources(context.Background()) sources, err := client.ListSources(context.Background())
assert.NilError(t, err) assert.NilError(t, err)
@ -122,9 +121,9 @@ func TestListSources(t *testing.T) {
t.Run("source list non empty", func(t *testing.T) { t.Run("source list non empty", func(t *testing.T) {
client := createFakeKnDynamicClient(testNamespace, client := createFakeKnDynamicClient(testNamespace,
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"), newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"),
newSourceUnstructuredObj("p1", "sources.knative.dev/v1beta2", "PingSource"), newSourceUnstructuredObj("p1", "sources.knative.dev/v1", "PingSource"),
newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"), newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"),
) )
sources, err := client.ListSources(context.Background(), WithTypeFilter("pingsource"), WithTypeFilter("ApiServerSource")) sources, err := client.ListSources(context.Background(), WithTypeFilter("pingsource"), WithTypeFilter("ApiServerSource"))
@ -145,14 +144,14 @@ func TestListSourcesUsingGVKs(t *testing.T) {
t.Run("source list with given GVKs", func(t *testing.T) { t.Run("source list with given GVKs", func(t *testing.T) {
client := createFakeKnDynamicClient(testNamespace, client := createFakeKnDynamicClient(testNamespace,
newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1beta2", "PingSource"), newSourceCRDObjWithSpec("pingsources", "sources.knative.dev", "v1", "PingSource"),
newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"), newSourceCRDObjWithSpec("apiserversources", "sources.knative.dev", "v1", "ApiServerSource"),
newSourceUnstructuredObj("p1", "sources.knative.dev/v1beta2", "PingSource"), newSourceUnstructuredObj("p1", "sources.knative.dev/v1", "PingSource"),
newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"), newSourceUnstructuredObj("a1", "sources.knative.dev/v1", "ApiServerSource"),
) )
assert.Check(t, client.RawClient() != nil) assert.Check(t, client.RawClient() != nil)
gvks := []schema.GroupVersionKind{ gvks := []schema.GroupVersionKind{
{Group: "sources.knative.dev", Version: "v1beta2", Kind: "PingSource"}, {Group: "sources.knative.dev", Version: "v1", Kind: "PingSource"},
{Group: "sources.knative.dev", Version: "v1", Kind: "ApiServerSource"}, {Group: "sources.knative.dev", Version: "v1", Kind: "ApiServerSource"},
} }
@ -184,7 +183,7 @@ func createFakeKnDynamicClient(testNamespace string, objects ...runtime.Object)
eventingv1.AddToScheme(scheme) eventingv1.AddToScheme(scheme)
messagingv1.AddToScheme(scheme) messagingv1.AddToScheme(scheme)
sourcesv1.AddToScheme(scheme) sourcesv1.AddToScheme(scheme)
sourcesv1beta2.AddToScheme(scheme) sourcesv1.AddToScheme(scheme)
apiextensionsv1.AddToScheme(scheme) apiextensionsv1.AddToScheme(scheme)
_, dynamicClient := dynamicclientfake.With(context.TODO(), scheme, objects...) _, dynamicClient := dynamicclientfake.With(context.TODO(), scheme, objects...)
return NewKnDynamicClient(dynamicClient, testNamespace) return NewKnDynamicClient(dynamicClient, testNamespace)

View File

@ -27,7 +27,6 @@ import (
eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1" eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1" messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
dynamicclientfake "knative.dev/pkg/injection/clients/dynamicclient/fake" dynamicclientfake "knative.dev/pkg/injection/clients/dynamicclient/fake"
servingv1 "knative.dev/serving/pkg/apis/serving/v1" servingv1 "knative.dev/serving/pkg/apis/serving/v1"
) )
@ -43,7 +42,6 @@ func CreateFakeKnDynamicClient(testNamespace string, objects ...runtime.Object)
_ = eventingv1.AddToScheme(scheme) _ = eventingv1.AddToScheme(scheme)
_ = messagingv1.AddToScheme(scheme) _ = messagingv1.AddToScheme(scheme)
_ = sourcesv1.AddToScheme(scheme) _ = sourcesv1.AddToScheme(scheme)
_ = sourcesv1beta2.AddToScheme(scheme)
_ = apiextensionsv1.AddToScheme(scheme) _ = apiextensionsv1.AddToScheme(scheme)
_, dynamicClient := dynamicclientfake.With(context.TODO(), scheme, objects...) _, dynamicClient := dynamicclientfake.With(context.TODO(), scheme, objects...)
return dynamic.NewKnDynamicClient(dynamicClient, testNamespace) return dynamic.NewKnDynamicClient(dynamicClient, testNamespace)

View File

@ -17,7 +17,6 @@ package sources
import ( import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
v1 "knative.dev/eventing/pkg/apis/sources/v1" v1 "knative.dev/eventing/pkg/apis/sources/v1"
"knative.dev/eventing/pkg/apis/sources/v1beta2"
) )
// BuiltInSourcesGVKs returns the GVKs for built in sources // BuiltInSourcesGVKs returns the GVKs for built in sources
@ -26,6 +25,6 @@ func BuiltInSourcesGVKs() []schema.GroupVersionKind {
v1.SchemeGroupVersion.WithKind("ApiServerSource"), v1.SchemeGroupVersion.WithKind("ApiServerSource"),
v1.SchemeGroupVersion.WithKind("ContainerSource"), v1.SchemeGroupVersion.WithKind("ContainerSource"),
v1.SchemeGroupVersion.WithKind("SinkBinding"), v1.SchemeGroupVersion.WithKind("SinkBinding"),
v1beta2.SchemeGroupVersion.WithKind("PingSource"), v1.SchemeGroupVersion.WithKind("PingSource"),
} }
} }

View File

@ -20,17 +20,12 @@ import (
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2"
) )
func TestBuiltInSourcesGVks(t *testing.T) { func TestBuiltInSourcesGVks(t *testing.T) {
gvks := BuiltInSourcesGVKs() gvks := BuiltInSourcesGVKs()
for _, each := range gvks { for _, each := range gvks {
if each.Kind != "PingSource" {
assert.DeepEqual(t, each.GroupVersion(), sourcesv1.SchemeGroupVersion) assert.DeepEqual(t, each.GroupVersion(), sourcesv1.SchemeGroupVersion)
} else {
assert.DeepEqual(t, each.GroupVersion(), sourcesv1beta2.SchemeGroupVersion)
}
} }
assert.Equal(t, len(gvks), 4) assert.Equal(t, len(gvks), 4)
} }

View File

@ -21,6 +21,9 @@ import (
// KnSinkBindingClient to Eventing Sources. All methods are relative to the // KnSinkBindingClient to Eventing Sources. All methods are relative to the
// namespace specified during construction // namespace specified during construction
type KnSourcesClient interface { type KnSourcesClient interface {
// Get client for Ping sources
PingSourcesClient() KnPingSourcesClient
// Get client for sink binding sources // Get client for sink binding sources
SinkBindingClient() KnSinkBindingClient SinkBindingClient() KnSinkBindingClient
@ -47,6 +50,11 @@ func NewKnSourcesClient(client clientv1.SourcesV1Interface, namespace string) Kn
} }
} }
// Get the client for dealing with Ping sources
func (c *sourcesClient) PingSourcesClient() KnPingSourcesClient {
return newKnPingSourcesClient(c.client.PingSources(c.namespace), c.namespace)
}
// ApiServerSourcesClient for dealing with ApiServer sources // ApiServerSourcesClient for dealing with ApiServer sources
func (c *sourcesClient) SinkBindingClient() KnSinkBindingClient { func (c *sourcesClient) SinkBindingClient() KnSinkBindingClient {
return newKnSinkBindingClient(c.client.SinkBindings(c.namespace), c.namespace) return newKnSinkBindingClient(c.client.SinkBindings(c.namespace), c.namespace)

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package v1beta2 package v1
import ( import (
"context" "context"
@ -29,25 +29,25 @@ import (
knerrors "knative.dev/client/pkg/errors" knerrors "knative.dev/client/pkg/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
clientv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1beta2" clientv1 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1"
duckv1 "knative.dev/pkg/apis/duck/v1" duckv1 "knative.dev/pkg/apis/duck/v1"
) )
type PingSourceUpdateFunc func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) type PingSourceUpdateFunc func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error)
// Interface for interacting with a Ping source // Interface for interacting with a Ping source
type KnPingSourcesClient interface { type KnPingSourcesClient interface {
// GetPingSource fetches a Ping source by its name // GetPingSource fetches a Ping source by its name
GetPingSource(ctx context.Context, name string) (*sourcesv1beta2.PingSource, error) GetPingSource(ctx context.Context, name string) (*sourcesv1.PingSource, error)
// CreatePingSource creates a Ping source // CreatePingSource creates a Ping source
CreatePingSource(ctx context.Context, pingSource *sourcesv1beta2.PingSource) error CreatePingSource(ctx context.Context, pingSource *sourcesv1.PingSource) error
// UpdatePingSource updates a Ping source // UpdatePingSource updates a Ping source
UpdatePingSource(ctx context.Context, pingSource *sourcesv1beta2.PingSource) error UpdatePingSource(ctx context.Context, pingSource *sourcesv1.PingSource) error
// UpdatePingSourceWithRetry updates a Ping source and retries on conflict // UpdatePingSourceWithRetry updates a Ping source and retries on conflict
UpdatePingSourceWithRetry(ctx context.Context, name string, updateFunc PingSourceUpdateFunc, nrRetries int) error UpdatePingSourceWithRetry(ctx context.Context, name string, updateFunc PingSourceUpdateFunc, nrRetries int) error
@ -57,7 +57,7 @@ type KnPingSourcesClient interface {
// ListPingSource lists all Ping sources // ListPingSource lists all Ping sources
// TODO: Support list configs like in service list // TODO: Support list configs like in service list
ListPingSource(ctx context.Context) (*sourcesv1beta2.PingSourceList, error) ListPingSource(ctx context.Context) (*sourcesv1.PingSourceList, error)
// Get namespace for this source // Get namespace for this source
Namespace() string Namespace() string
@ -67,12 +67,12 @@ type KnPingSourcesClient interface {
// Temporarily help to add sources dependencies // Temporarily help to add sources dependencies
// May be changed when adding real sources features // May be changed when adding real sources features
type pingSourcesClient struct { type pingSourcesClient struct {
client clientv1beta2.PingSourceInterface client clientv1.PingSourceInterface
namespace string namespace string
} }
// NewKnSourcesClient is to invoke Eventing Sources Client API to create object // NewKnSourcesClient is to invoke Eventing Sources Client API to create object
func newKnPingSourcesClient(client clientv1beta2.PingSourceInterface, namespace string) KnPingSourcesClient { func newKnPingSourcesClient(client clientv1.PingSourceInterface, namespace string) KnPingSourcesClient {
return &pingSourcesClient{ return &pingSourcesClient{
client: client, client: client,
namespace: namespace, namespace: namespace,
@ -84,7 +84,7 @@ func (c *pingSourcesClient) Namespace() string {
return c.namespace return c.namespace
} }
func (c *pingSourcesClient) CreatePingSource(ctx context.Context, pingsource *sourcesv1beta2.PingSource) error { func (c *pingSourcesClient) CreatePingSource(ctx context.Context, pingsource *sourcesv1.PingSource) error {
if pingsource.Spec.Sink.Ref == nil && pingsource.Spec.Sink.URI == nil { if pingsource.Spec.Sink.Ref == nil && pingsource.Spec.Sink.URI == nil {
return fmt.Errorf("a sink is required for creating a source") return fmt.Errorf("a sink is required for creating a source")
} }
@ -95,7 +95,7 @@ func (c *pingSourcesClient) CreatePingSource(ctx context.Context, pingsource *so
return nil return nil
} }
func (c *pingSourcesClient) UpdatePingSource(ctx context.Context, pingSource *sourcesv1beta2.PingSource) error { func (c *pingSourcesClient) UpdatePingSource(ctx context.Context, pingSource *sourcesv1.PingSource) error {
_, err := c.client.Update(ctx, pingSource, metav1.UpdateOptions{}) _, err := c.client.Update(ctx, pingSource, metav1.UpdateOptions{})
if err != nil { if err != nil {
return knerrors.GetError(err) return knerrors.GetError(err)
@ -140,12 +140,12 @@ func (c *pingSourcesClient) DeletePingSource(ctx context.Context, name string) e
return nil return nil
} }
func (c *pingSourcesClient) GetPingSource(ctx context.Context, name string) (*sourcesv1beta2.PingSource, error) { func (c *pingSourcesClient) GetPingSource(ctx context.Context, name string) (*sourcesv1.PingSource, error) {
source, err := c.client.Get(ctx, name, metav1.GetOptions{}) source, err := c.client.Get(ctx, name, metav1.GetOptions{})
if err != nil { if err != nil {
return nil, knerrors.GetError(err) return nil, knerrors.GetError(err)
} }
err = updateSourceGVK(source) err = updatePingSourceGVK(source)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -153,7 +153,7 @@ func (c *pingSourcesClient) GetPingSource(ctx context.Context, name string) (*so
} }
// ListPingSource returns the available Ping sources // ListPingSource returns the available Ping sources
func (c *pingSourcesClient) ListPingSource(ctx context.Context) (*sourcesv1beta2.PingSourceList, error) { func (c *pingSourcesClient) ListPingSource(ctx context.Context) (*sourcesv1.PingSourceList, error) {
sourceList, err := c.client.List(ctx, metav1.ListOptions{}) sourceList, err := c.client.List(ctx, metav1.ListOptions{})
if err != nil { if err != nil {
return nil, knerrors.GetError(err) return nil, knerrors.GetError(err)
@ -162,21 +162,21 @@ func (c *pingSourcesClient) ListPingSource(ctx context.Context) (*sourcesv1beta2
return updatePingSourceListGVK(sourceList) return updatePingSourceListGVK(sourceList)
} }
func updateSourceGVK(obj runtime.Object) error { func updatePingSourceGVK(obj runtime.Object) error {
return util.UpdateGroupVersionKindWithScheme(obj, sourcesv1beta2.SchemeGroupVersion, scheme.Scheme) return util.UpdateGroupVersionKindWithScheme(obj, sourcesv1.SchemeGroupVersion, scheme.Scheme)
} }
func updatePingSourceListGVK(sourceList *sourcesv1beta2.PingSourceList) (*sourcesv1beta2.PingSourceList, error) { func updatePingSourceListGVK(sourceList *sourcesv1.PingSourceList) (*sourcesv1.PingSourceList, error) {
sourceListNew := sourceList.DeepCopy() sourceListNew := sourceList.DeepCopy()
err := updateSourceGVK(sourceListNew) err := updatePingSourceGVK(sourceListNew)
if err != nil { if err != nil {
return nil, err return nil, err
} }
sourceListNew.Items = make([]sourcesv1beta2.PingSource, len(sourceList.Items)) sourceListNew.Items = make([]sourcesv1.PingSource, len(sourceList.Items))
for idx, source := range sourceList.Items { for idx, source := range sourceList.Items {
sourceClone := source.DeepCopy() sourceClone := source.DeepCopy()
err := updateSourceGVK(sourceClone) err := updatePingSourceGVK(sourceClone)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -188,18 +188,18 @@ func updatePingSourceListGVK(sourceList *sourcesv1beta2.PingSourceList) (*source
// Builder for building up Ping sources // Builder for building up Ping sources
type PingSourceBuilder struct { type PingSourceBuilder struct {
pingSource *sourcesv1beta2.PingSource pingSource *sourcesv1.PingSource
} }
func NewPingSourceBuilder(name string) *PingSourceBuilder { func NewPingSourceBuilder(name string) *PingSourceBuilder {
return &PingSourceBuilder{pingSource: &sourcesv1beta2.PingSource{ return &PingSourceBuilder{pingSource: &sourcesv1.PingSource{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: name, Name: name,
}, },
}} }}
} }
func NewPingSourceBuilderFromExisting(pingsource *sourcesv1beta2.PingSource) *PingSourceBuilder { func NewPingSourceBuilderFromExisting(pingsource *sourcesv1.PingSource) *PingSourceBuilder {
return &PingSourceBuilder{pingSource: pingsource.DeepCopy()} return &PingSourceBuilder{pingSource: pingsource.DeepCopy()}
} }
@ -244,6 +244,6 @@ func (b *PingSourceBuilder) CloudEventOverrides(ceo map[string]string, toRemove
return b return b
} }
func (b *PingSourceBuilder) Build() *sourcesv1beta2.PingSource { func (b *PingSourceBuilder) Build() *sourcesv1.PingSource {
return b.pingSource return b.pingSource
} }

View File

@ -12,14 +12,14 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package v1beta2 package v1
import ( import (
"context" "context"
"testing" "testing"
"knative.dev/client/pkg/util/mock" "knative.dev/client/pkg/util/mock"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
) )
type MockKnPingSourceClient struct { type MockKnPingSourceClient struct {
@ -63,20 +63,20 @@ func (sr *PingSourcesRecorder) CreatePingSource(pingSource interface{}, err erro
} }
// CreatePingSource performs a previously recorded action, failing if non has been registered // CreatePingSource performs a previously recorded action, failing if non has been registered
func (c *MockKnPingSourceClient) CreatePingSource(ctx context.Context, pingSource *sourcesv1beta2.PingSource) error { func (c *MockKnPingSourceClient) CreatePingSource(ctx context.Context, pingSource *sourcesv1.PingSource) error {
call := c.recorder.r.VerifyCall("CreatePingSource", pingSource) call := c.recorder.r.VerifyCall("CreatePingSource", pingSource)
return mock.ErrorOrNil(call.Result[0]) return mock.ErrorOrNil(call.Result[0])
} }
// GetPingSource records a call for GetPingSource with the expected object or error. Either pingsource or err should be nil // GetPingSource records a call for GetPingSource with the expected object or error. Either pingsource or err should be nil
func (sr *PingSourcesRecorder) GetPingSource(name interface{}, pingSource *sourcesv1beta2.PingSource, err error) { func (sr *PingSourcesRecorder) GetPingSource(name interface{}, pingSource *sourcesv1.PingSource, err error) {
sr.r.Add("GetPingSource", []interface{}{name}, []interface{}{pingSource, err}) sr.r.Add("GetPingSource", []interface{}{name}, []interface{}{pingSource, err})
} }
// GetPingSource performs a previously recorded action, failing if non has been registered // GetPingSource performs a previously recorded action, failing if non has been registered
func (c *MockKnPingSourceClient) GetPingSource(ctx context.Context, name string) (*sourcesv1beta2.PingSource, error) { func (c *MockKnPingSourceClient) GetPingSource(ctx context.Context, name string) (*sourcesv1.PingSource, error) {
call := c.recorder.r.VerifyCall("GetPingSource", name) call := c.recorder.r.VerifyCall("GetPingSource", name)
return call.Result[0].(*sourcesv1beta2.PingSource), mock.ErrorOrNil(call.Result[1]) return call.Result[0].(*sourcesv1.PingSource), mock.ErrorOrNil(call.Result[1])
} }
// UpdatePingSource records a call for UpdatePingSource with the expected error (nil if none) // UpdatePingSource records a call for UpdatePingSource with the expected error (nil if none)
@ -85,7 +85,7 @@ func (sr *PingSourcesRecorder) UpdatePingSource(pingSource interface{}, err erro
} }
// UpdatePingSource performs a previously recorded action, failing if non has been registered // UpdatePingSource performs a previously recorded action, failing if non has been registered
func (c *MockKnPingSourceClient) UpdatePingSource(ctx context.Context, pingSource *sourcesv1beta2.PingSource) error { func (c *MockKnPingSourceClient) UpdatePingSource(ctx context.Context, pingSource *sourcesv1.PingSource) error {
call := c.recorder.r.VerifyCall("UpdatePingSource", pingSource) call := c.recorder.r.VerifyCall("UpdatePingSource", pingSource)
return mock.ErrorOrNil(call.Result[0]) return mock.ErrorOrNil(call.Result[0])
} }
@ -106,14 +106,14 @@ func (c *MockKnPingSourceClient) DeletePingSource(ctx context.Context, name stri
} }
// ListPingSource records a call for ListPingSource with the expected error (nil if none) // ListPingSource records a call for ListPingSource with the expected error (nil if none)
func (sr *PingSourcesRecorder) ListPingSource(pingSourceList *sourcesv1beta2.PingSourceList, err error) { func (sr *PingSourcesRecorder) ListPingSource(pingSourceList *sourcesv1.PingSourceList, err error) {
sr.r.Add("ListPingSource", []interface{}{}, []interface{}{pingSourceList, err}) sr.r.Add("ListPingSource", []interface{}{}, []interface{}{pingSourceList, err})
} }
// ListPingSource performs a previously recorded action, failing if non has been registered // ListPingSource performs a previously recorded action, failing if non has been registered
func (c *MockKnPingSourceClient) ListPingSource(context.Context) (*sourcesv1beta2.PingSourceList, error) { func (c *MockKnPingSourceClient) ListPingSource(context.Context) (*sourcesv1.PingSourceList, error) {
call := c.recorder.r.VerifyCall("ListPingSource") call := c.recorder.r.VerifyCall("ListPingSource")
return call.Result[0].(*sourcesv1beta2.PingSourceList), mock.ErrorOrNil(call.Result[1]) return call.Result[0].(*sourcesv1.PingSourceList), mock.ErrorOrNil(call.Result[1])
} }
// Validates validates whether every recorded action has been called // Validates validates whether every recorded action has been called

View File

@ -12,13 +12,13 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package v1beta2 package v1
import ( import (
"context" "context"
"testing" "testing"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
) )
func TestMockKnPingSourceClient(t *testing.T) { func TestMockKnPingSourceClient(t *testing.T) {
@ -29,20 +29,20 @@ func TestMockKnPingSourceClient(t *testing.T) {
// Record all services // Record all services
recorder.GetPingSource("hello", nil, nil) recorder.GetPingSource("hello", nil, nil)
recorder.CreatePingSource(&sourcesv1beta2.PingSource{}, nil) recorder.CreatePingSource(&sourcesv1.PingSource{}, nil)
recorder.UpdatePingSource(&sourcesv1beta2.PingSource{}, nil) recorder.UpdatePingSource(&sourcesv1.PingSource{}, nil)
recorder.GetPingSource("hello", &sourcesv1beta2.PingSource{}, nil) recorder.GetPingSource("hello", &sourcesv1.PingSource{}, nil)
recorder.UpdatePingSource(&sourcesv1beta2.PingSource{}, nil) recorder.UpdatePingSource(&sourcesv1.PingSource{}, nil)
recorder.DeletePingSource("hello", nil) recorder.DeletePingSource("hello", nil)
// Call all service // Call all service
ctx := context.Background() ctx := context.Background()
client.GetPingSource(ctx, "hello") client.GetPingSource(ctx, "hello")
client.CreatePingSource(ctx, &sourcesv1beta2.PingSource{}) client.CreatePingSource(ctx, &sourcesv1.PingSource{})
client.UpdatePingSource(ctx, &sourcesv1beta2.PingSource{}) client.UpdatePingSource(ctx, &sourcesv1.PingSource{})
client.UpdatePingSourceWithRetry(ctx, "hello", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { client.UpdatePingSourceWithRetry(ctx, "hello", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
return origSource, nil return origSource, nil
}, 10) }, 10)
client.DeletePingSource(ctx, "hello") client.DeletePingSource(ctx, "hello")

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package v1beta2 package v1
import ( import (
"context" "context"
@ -25,13 +25,13 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
clienttesting "k8s.io/client-go/testing" clienttesting "k8s.io/client-go/testing"
sourcesv1beta2 "knative.dev/eventing/pkg/apis/sources/v1beta2" sourcesv1 "knative.dev/eventing/pkg/apis/sources/v1"
"knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1beta2/fake" "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1/fake"
duckv1 "knative.dev/pkg/apis/duck/v1" duckv1 "knative.dev/pkg/apis/duck/v1"
) )
func setupPingSourcesClient(t *testing.T) (sources fake.FakeSourcesV1beta2, client KnPingSourcesClient) { func setupPingSourcesClient(t *testing.T) (sources fake.FakeSourcesV1, client KnPingSourcesClient) {
sources = fake.FakeSourcesV1beta2{Fake: &clienttesting.Fake{}} sources = fake.FakeSourcesV1{Fake: &clienttesting.Fake{}}
client = NewKnSourcesClient(&sources, "test-ns").PingSourcesClient() client = NewKnSourcesClient(&sources, "test-ns").PingSourcesClient()
assert.Equal(t, client.Namespace(), "test-ns") assert.Equal(t, client.Namespace(), "test-ns")
return return
@ -71,7 +71,7 @@ func TestUpdatePingSource(t *testing.T) {
if name == "errorSource" { if name == "errorSource" {
return true, nil, fmt.Errorf("error while updating pingsource %s", name) return true, nil, fmt.Errorf("error while updating pingsource %s", name)
} }
return true, NewPingSourceBuilderFromExisting(newSource.(*sourcesv1beta2.PingSource)).Build(), nil return true, NewPingSourceBuilderFromExisting(newSource.(*sourcesv1.PingSource)).Build(), nil
}) })
err := client.UpdatePingSource(context.Background(), newPingSource("testsource", "")) err := client.UpdatePingSource(context.Background(), newPingSource("testsource", ""))
@ -108,22 +108,22 @@ func TestUpdatePingSourceWithRetry(t *testing.T) {
if name == "testSource" && attemptCount > 0 { if name == "testSource" && attemptCount > 0 {
attemptCount-- attemptCount--
return true, nil, errors.NewConflict(sourcesv1beta2.Resource("pingsource"), "errorSource", fmt.Errorf("error updating because of conflict")) return true, nil, errors.NewConflict(sourcesv1.Resource("pingsource"), "errorSource", fmt.Errorf("error updating because of conflict"))
} }
if name == "errorSource" { if name == "errorSource" {
return true, nil, errors.NewInternalError(fmt.Errorf("mock internal error")) return true, nil, errors.NewInternalError(fmt.Errorf("mock internal error"))
} }
return true, NewPingSourceBuilderFromExisting(newSource.(*sourcesv1beta2.PingSource)).Build(), nil return true, NewPingSourceBuilderFromExisting(newSource.(*sourcesv1.PingSource)).Build(), nil
}) })
err := client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { err := client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
origSource.Spec.Data = newData origSource.Spec.Data = newData
return origSource, nil return origSource, nil
}, maxAttempts) }, maxAttempts)
assert.NilError(t, err, "No retries required as no conflict error occurred") assert.NilError(t, err, "No retries required as no conflict error occurred")
attemptCount = maxAttempts - 1 attemptCount = maxAttempts - 1
err = client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { err = client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
origSource.Spec.Data = newData origSource.Spec.Data = newData
return origSource, nil return origSource, nil
}, maxAttempts) }, maxAttempts)
@ -131,32 +131,32 @@ func TestUpdatePingSourceWithRetry(t *testing.T) {
assert.Equal(t, attemptCount, 0) assert.Equal(t, attemptCount, 0)
attemptCount = maxAttempts attemptCount = maxAttempts
err = client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { err = client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
origSource.Spec.Data = newData origSource.Spec.Data = newData
return origSource, nil return origSource, nil
}, maxAttempts) }, maxAttempts)
assert.ErrorType(t, err, errors.IsConflict, "Update retried %d times and failed", maxAttempts) assert.ErrorType(t, err, errors.IsConflict, "Update retried %d times and failed", maxAttempts)
assert.Equal(t, attemptCount, 0) assert.Equal(t, attemptCount, 0)
err = client.UpdatePingSourceWithRetry(context.Background(), "errorSource", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { err = client.UpdatePingSourceWithRetry(context.Background(), "errorSource", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
origSource.Spec.Data = newData origSource.Spec.Data = newData
return origSource, nil return origSource, nil
}, maxAttempts) }, maxAttempts)
assert.ErrorType(t, err, errors.IsInternalError) assert.ErrorType(t, err, errors.IsInternalError)
err = client.UpdatePingSourceWithRetry(context.Background(), "deletedSource", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { err = client.UpdatePingSourceWithRetry(context.Background(), "deletedSource", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
origSource.Spec.Data = newData origSource.Spec.Data = newData
return origSource, nil return origSource, nil
}, maxAttempts) }, maxAttempts)
assert.ErrorContains(t, err, "marked for deletion") assert.ErrorContains(t, err, "marked for deletion")
err = client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { err = client.UpdatePingSourceWithRetry(context.Background(), "testSource", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
origSource.Spec.Data = newData origSource.Spec.Data = newData
return origSource, fmt.Errorf("error updating object") return origSource, fmt.Errorf("error updating object")
}, maxAttempts) }, maxAttempts)
assert.ErrorContains(t, err, "error updating object") assert.ErrorContains(t, err, "error updating object")
err = client.UpdatePingSourceWithRetry(context.Background(), "getErrorSource", func(origSource *sourcesv1beta2.PingSource) (*sourcesv1beta2.PingSource, error) { err = client.UpdatePingSourceWithRetry(context.Background(), "getErrorSource", func(origSource *sourcesv1.PingSource) (*sourcesv1.PingSource, error) {
origSource.Spec.Data = newData origSource.Spec.Data = newData
return origSource, nil return origSource, nil
}, maxAttempts) }, maxAttempts)
@ -209,7 +209,7 @@ func TestListPingSource(t *testing.T) {
sourcesServer.AddReactor("list", "pingsources", sourcesServer.AddReactor("list", "pingsources",
func(a clienttesting.Action) (bool, runtime.Object, error) { func(a clienttesting.Action) (bool, runtime.Object, error) {
cJSource := newPingSource("testsource", "mysvc") cJSource := newPingSource("testsource", "mysvc")
return true, &sourcesv1beta2.PingSourceList{Items: []sourcesv1beta2.PingSource{*cJSource}}, nil return true, &sourcesv1.PingSourceList{Items: []sourcesv1.PingSource{*cJSource}}, nil
}) })
sourceList, err := client.ListPingSource(context.Background()) sourceList, err := client.ListPingSource(context.Background())
@ -217,7 +217,7 @@ func TestListPingSource(t *testing.T) {
assert.Equal(t, len(sourceList.Items), 1) assert.Equal(t, len(sourceList.Items), 1)
} }
func newPingSource(name string, sink string) *sourcesv1beta2.PingSource { func newPingSource(name string, sink string) *sourcesv1.PingSource {
b := NewPingSourceBuilder(name). b := NewPingSourceBuilder(name).
Schedule("* * * * *"). Schedule("* * * * *").
Data("mydata"). Data("mydata").

View File

@ -1,47 +0,0 @@
// Copyright © 2019 The Knative Authors
//
// Licensed 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 v1beta2
import (
clientv1beta2 "knative.dev/eventing/pkg/client/clientset/versioned/typed/sources/v1beta2"
)
// KnSinkBindingClient to Eventing Sources. All methods are relative to the
// namespace specified during construction
type KnSourcesClient interface {
// Get client for Ping sources
PingSourcesClient() KnPingSourcesClient
}
// sourcesClient is a combination of Sources client interface and namespace
// Temporarily help to add sources dependencies
// May be changed when adding real sources features
type sourcesClient struct {
client clientv1beta2.SourcesV1beta2Interface
namespace string
}
// NewKnSourcesClient for managing all eventing built-in sources
func NewKnSourcesClient(client clientv1beta2.SourcesV1beta2Interface, namespace string) KnSourcesClient {
return &sourcesClient{
client: client,
namespace: namespace,
}
}
// Get the client for dealing with Ping sources
func (c *sourcesClient) PingSourcesClient() KnPingSourcesClient {
return newKnPingSourcesClient(c.client.PingSources(c.namespace), c.namespace)
}