* Bump the go-dependencies group across 1 directory with 25 updates Bumps the go-dependencies group with 13 updates in the / directory: | Package | From | To | | --- | --- | --- | | [github.com/IBM/sarama](https://github.com/IBM/sarama) | `1.43.3` | `1.44.0` | | [github.com/fatih/color](https://github.com/fatih/color) | `1.17.0` | `1.18.0` | | [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) | `1.7.0` | `1.8.0` | | [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) | `5.12.0` | `5.13.0` | | [github.com/influxdata/influxdb](https://github.com/influxdata/influxdb) | `1.11.6` | `1.11.8` | | [github.com/kedacore/keda/v2](https://github.com/kedacore/keda) | `2.15.1` | `2.16.1` | | [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.55.0` | `0.58.0` | | [go.opentelemetry.io/contrib/propagators/autoprop](https://github.com/open-telemetry/opentelemetry-go-contrib) | `0.55.0` | `0.58.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://github.com/open-telemetry/opentelemetry-go) | `1.32.0` | `1.33.0` | | [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) | `1.32.0` | `1.33.0` | | [k8s.io/api](https://github.com/kubernetes/api) | `0.31.3` | `0.32.0` | | [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.31.3` | `0.32.0` | | [k8s.io/metrics](https://github.com/kubernetes/metrics) | `0.31.3` | `0.32.0` | Updates `github.com/IBM/sarama` from 1.43.3 to 1.44.0 - [Release notes](https://github.com/IBM/sarama/releases) - [Changelog](https://github.com/IBM/sarama/blob/main/CHANGELOG.md) - [Commits](https://github.com/IBM/sarama/compare/v1.43.3...v1.44.0) Updates `github.com/fatih/color` from 1.17.0 to 1.18.0 - [Release notes](https://github.com/fatih/color/releases) - [Commits](https://github.com/fatih/color/compare/v1.17.0...v1.18.0) Updates `github.com/fsnotify/fsnotify` from 1.7.0 to 1.8.0 - [Release notes](https://github.com/fsnotify/fsnotify/releases) - [Changelog](https://github.com/fsnotify/fsnotify/blob/main/CHANGELOG.md) - [Commits](https://github.com/fsnotify/fsnotify/compare/v1.7.0...v1.8.0) Updates `github.com/go-git/go-git/v5` from 5.12.0 to 5.13.0 - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](https://github.com/go-git/go-git/compare/v5.12.0...v5.13.0) Updates `github.com/influxdata/influxdb` from 1.11.6 to 1.11.8 - [Release notes](https://github.com/influxdata/influxdb/releases) - [Commits](https://github.com/influxdata/influxdb/compare/v1.11.6...v1.11.8) Updates `github.com/kedacore/keda/v2` from 2.15.1 to 2.16.1 - [Release notes](https://github.com/kedacore/keda/releases) - [Changelog](https://github.com/kedacore/keda/blob/main/CHANGELOG.md) - [Commits](https://github.com/kedacore/keda/compare/v2.15.1...v2.16.1) Updates `github.com/prometheus/common` from 0.59.1 to 0.61.0 - [Release notes](https://github.com/prometheus/common/releases) - [Changelog](https://github.com/prometheus/common/blob/main/RELEASE.md) - [Commits](https://github.com/prometheus/common/compare/v0.59.1...v0.61.0) Updates `github.com/stretchr/testify` from 1.9.0 to 1.10.0 - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.9.0...v1.10.0) Updates `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` from 0.55.0 to 0.58.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.55.0...zpages/v0.58.0) Updates `go.opentelemetry.io/contrib/propagators/autoprop` from 0.55.0 to 0.58.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.55.0...zpages/v0.58.0) Updates `go.opentelemetry.io/otel` from 1.32.0 to 1.33.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.32.0...v1.33.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace` from 1.32.0 to 1.33.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.32.0...v1.33.0) Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` from 1.32.0 to 1.33.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.32.0...v1.33.0) Updates `go.opentelemetry.io/otel/sdk` from 1.32.0 to 1.33.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.32.0...v1.33.0) Updates `go.opentelemetry.io/otel/trace` from 1.32.0 to 1.33.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.32.0...v1.33.0) Updates `golang.org/x/net` from 0.30.0 to 0.33.0 - [Commits](https://github.com/golang/net/compare/v0.30.0...v0.33.0) Updates `google.golang.org/grpc` from 1.67.1 to 1.69.2 - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.67.1...v1.69.2) Updates `k8s.io/api` from 0.31.3 to 0.32.0 - [Commits](https://github.com/kubernetes/api/compare/v0.31.3...v0.32.0) Updates `k8s.io/apiextensions-apiserver` from 0.31.3 to 0.32.0 - [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases) - [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.31.3...v0.32.0) Updates `k8s.io/apimachinery` from 0.31.3 to 0.32.0 - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.31.3...v0.32.0) Updates `k8s.io/client-go` from 0.31.3 to 0.32.0 - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes/client-go/compare/v0.31.3...v0.32.0) Updates `k8s.io/code-generator` from 0.31.3 to 0.32.0 - [Commits](https://github.com/kubernetes/code-generator/compare/v0.31.3...v0.32.0) Updates `k8s.io/metrics` from 0.31.3 to 0.32.0 - [Commits](https://github.com/kubernetes/metrics/compare/v0.31.3...v0.32.0) Updates `sigs.k8s.io/controller-tools` from 0.16.3 to 0.16.5 - [Release notes](https://github.com/kubernetes-sigs/controller-tools/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-tools/blob/main/envtest-releases.yaml) - [Commits](https://github.com/kubernetes-sigs/controller-tools/compare/v0.16.3...v0.16.5) Updates `sigs.k8s.io/structured-merge-diff/v4` from 4.4.1 to 4.4.2 - [Release notes](https://github.com/kubernetes-sigs/structured-merge-diff/releases) - [Changelog](https://github.com/kubernetes-sigs/structured-merge-diff/blob/master/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/structured-merge-diff/compare/v4.4.1...v4.4.2) --- updated-dependencies: - dependency-name: github.com/IBM/sarama dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/fatih/color dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/fsnotify/fsnotify dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/go-git/go-git/v5 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/influxdata/influxdb dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-dependencies - dependency-name: github.com/kedacore/keda/v2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/prometheus/common dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/contrib/propagators/autoprop dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/sdk dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: go.opentelemetry.io/otel/trace dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: k8s.io/api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: k8s.io/apiextensions-apiserver dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: k8s.io/apimachinery dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: k8s.io/client-go dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: k8s.io/code-generator dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: k8s.io/metrics dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-dependencies - dependency-name: sigs.k8s.io/controller-tools dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-dependencies - dependency-name: sigs.k8s.io/structured-merge-diff/v4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> * Lint fixes Signed-off-by: Sanket Sudake <sanketsudake@gmail.com> * Few more lint fixes Signed-off-by: Sanket Sudake <sanketsudake@gmail.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Sanket Sudake <sanketsudake@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sanket Sudake <sanketsudake@gmail.com>
138 lines
4.1 KiB
Go
138 lines
4.1 KiB
Go
/*
|
|
Copyright 2022 The Fission 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 mqtrigger
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
|
|
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
|
fClient "github.com/fission/fission/pkg/generated/clientset/versioned/fake"
|
|
genInformer "github.com/fission/fission/pkg/generated/informers/externalversions"
|
|
"github.com/fission/fission/pkg/mqtrigger/messageQueue"
|
|
"github.com/fission/fission/pkg/utils/loggerfactory"
|
|
)
|
|
|
|
const (
|
|
updatedTopicName = "new-topic"
|
|
)
|
|
|
|
type mqtConsumer struct {
|
|
ctx context.Context
|
|
cancel context.CancelFunc
|
|
}
|
|
|
|
type fakeMessageQueue struct {
|
|
}
|
|
|
|
func (f fakeMessageQueue) Subscribe(trigger *fv1.MessageQueueTrigger) (messageQueue.Subscription, error) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
mqtConsumer := mqtConsumer{
|
|
ctx: ctx,
|
|
cancel: cancel,
|
|
}
|
|
return mqtConsumer, nil
|
|
}
|
|
|
|
func (f fakeMessageQueue) Unsubscribe(triggerSub messageQueue.Subscription) error {
|
|
sub := triggerSub.(mqtConsumer)
|
|
sub.cancel()
|
|
return nil
|
|
}
|
|
|
|
func TestMqtManager(t *testing.T) {
|
|
logger := loggerfactory.GetLogger()
|
|
defer logger.Sync()
|
|
msgQueue := fakeMessageQueue{}
|
|
fissionClient := fClient.NewSimpleClientset()
|
|
factory := make(map[string]genInformer.SharedInformerFactory, 0)
|
|
factory[metav1.NamespaceDefault] = genInformer.NewFilteredSharedInformerFactory(fissionClient, time.Minute*30, metav1.NamespaceDefault, nil)
|
|
mgr, err := MakeMessageQueueTriggerManager(logger, nil, fv1.MessageQueueTypeKafka, factory, msgQueue)
|
|
if err != nil {
|
|
t.Fatalf("Error creating messageQueueTriggerManagesr: %v", err)
|
|
}
|
|
go mgr.service()
|
|
trigger := fv1.MessageQueueTrigger{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "test",
|
|
Namespace: "default",
|
|
},
|
|
}
|
|
if mgr.checkTriggerSubscription(&trigger) {
|
|
t.Errorf("checkTrigger should return false")
|
|
}
|
|
sub, err := msgQueue.Subscribe(&trigger)
|
|
if err != nil {
|
|
t.Errorf("Subscribe should not return error")
|
|
}
|
|
triggerSub := triggerSubscription{
|
|
trigger: trigger,
|
|
subscription: sub,
|
|
}
|
|
err = mgr.addTrigger(&triggerSub)
|
|
if err != nil {
|
|
t.Errorf("addTrigger should not return error")
|
|
}
|
|
if !mgr.checkTriggerSubscription(&trigger) {
|
|
t.Errorf("checkTrigger should return true")
|
|
}
|
|
getSub := mgr.getTriggerSubscription(&trigger)
|
|
if getSub == nil {
|
|
t.Fatal("getTriggerSubscription should return triggerSub")
|
|
return
|
|
}
|
|
if getSub.trigger.ObjectMeta.Name != trigger.ObjectMeta.Name {
|
|
t.Errorf("getTriggerSubscription should return triggerSub with trigger name %s", trigger.ObjectMeta.Name)
|
|
}
|
|
getSub.subscription.(mqtConsumer).cancel()
|
|
trigger.Spec.Topic = updatedTopicName
|
|
newSub, err := msgQueue.Subscribe(&trigger)
|
|
if err != nil {
|
|
t.Errorf("Subscribe should not return error")
|
|
}
|
|
newTriggerSub := triggerSubscription{
|
|
trigger: trigger,
|
|
subscription: newSub,
|
|
}
|
|
err = mgr.updateTriggerSubscription(&newTriggerSub)
|
|
if err != nil {
|
|
t.Errorf("updateTriggerSubscription should not return error")
|
|
}
|
|
if !mgr.checkTriggerSubscription(&trigger) {
|
|
t.Errorf("checkTrigger should return true")
|
|
}
|
|
getNewSub := mgr.getTriggerSubscription(&trigger)
|
|
if getNewSub == nil {
|
|
t.Fatal("getTriggerSubscription should return triggerSub")
|
|
return
|
|
}
|
|
if getNewSub.trigger.Spec.Topic != updatedTopicName {
|
|
t.Errorf("getTriggerSubscription returns trigger with incorrect topic-name, expected %s got %s", updatedTopicName, getNewSub.trigger.Spec.Topic)
|
|
}
|
|
getNewSub.subscription.(mqtConsumer).cancel()
|
|
err = mgr.delTriggerSubscription(&trigger)
|
|
if err != nil {
|
|
t.Errorf("delTriggerSubscription should not return error")
|
|
}
|
|
if mgr.checkTriggerSubscription(&trigger) {
|
|
t.Errorf("checkTrigger should return false")
|
|
}
|
|
}
|