Merge branch 'master' into cert_postgres_bindings
This commit is contained in:
commit
84304d7b65
|
|
@ -45,6 +45,7 @@ jobs:
|
|||
- state.mongodb
|
||||
- state.redis
|
||||
- state.postgresql
|
||||
- state.cassandra
|
||||
- bindings.alicloud.dubbo
|
||||
- bindings.kafka
|
||||
- secretstores.local.env
|
||||
|
|
|
|||
|
|
@ -0,0 +1,65 @@
|
|||
|
||||
## Test for TTL
|
||||
1. TTL not expiring
|
||||
2. TTL not a valid number
|
||||
3. TTL Expires as expected
|
||||
- Provide a TTL of 5 second
|
||||
- Fetch this record just after saving
|
||||
- Sleep for 5 seconds
|
||||
- Try to fetch again after a gap of 5 seconds, record shouldn't be deleted
|
||||
|
||||
## Connection Recovery
|
||||
|
||||
1. When Cassandra goes down and then comes back up the client is able to reconnect
|
||||
|
||||
## Test Metadata Fields
|
||||
1. Verify `port` attribute is used
|
||||
- set port to non default value
|
||||
- run dapr application with component
|
||||
- component should successfully initialize
|
||||
|
||||
2. Verify `keyspace` attribute is used
|
||||
- set keyspace to non-default value
|
||||
- run dapr application with component
|
||||
- component should successfully initialize and create keyspace
|
||||
|
||||
3. Verify `table` attribute is used
|
||||
- set table to non-default value
|
||||
- run dapr application with component
|
||||
- component should successfully initialize and create table
|
||||
- successfully run query on table
|
||||
|
||||
4. Verify `protoVersion` attribute is used
|
||||
- set protoVersion to non-default value 0
|
||||
- run dapr application with component
|
||||
- cassandra client itself should detect version from cluster if protoVersion == 0
|
||||
- component should successfully initialize
|
||||
- run queries to verify
|
||||
|
||||
5. Verify `protoVersion` attribute is used -negative test
|
||||
- set protoVersion to non-default value 1
|
||||
- run dapr application with component
|
||||
- component should recieve errors on queries
|
||||
|
||||
6. Verify `replicationFactor` attribute is used
|
||||
- set replicationFactor to non-default value 2
|
||||
- run dapr application with component using 2 nodes
|
||||
- component should successfully initialize
|
||||
- run queries to verify
|
||||
|
||||
7. Verify `replicationFactor` attribute is used - negative test
|
||||
- set replicationFactor to non-default value 2
|
||||
- run dapr application with component using 1 node
|
||||
- component should recieve errors on queries
|
||||
|
||||
8. Verify `consistency` attribute is used - negative test
|
||||
- set consistency to non-default value "Three"
|
||||
- run dapr application with component
|
||||
- component should successfully initialize
|
||||
- run queries and see failure due to less than 3 nodes available
|
||||
|
||||
9. Verify `consistency` attribute is used
|
||||
- set consistency to non-default value "Two"
|
||||
- run dapr application with component
|
||||
- component should successfully initialize
|
||||
- run queries successfully
|
||||
|
|
@ -0,0 +1,312 @@
|
|||
/*
|
||||
Copyright 2022 The Dapr 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 cassandra_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/dapr/components-contrib/state"
|
||||
state_cassandra "github.com/dapr/components-contrib/state/cassandra"
|
||||
"github.com/dapr/components-contrib/tests/certification/embedded"
|
||||
"github.com/dapr/components-contrib/tests/certification/flow"
|
||||
"github.com/dapr/components-contrib/tests/certification/flow/dockercompose"
|
||||
"github.com/dapr/components-contrib/tests/certification/flow/network"
|
||||
"github.com/dapr/components-contrib/tests/certification/flow/sidecar"
|
||||
state_loader "github.com/dapr/dapr/pkg/components/state"
|
||||
"github.com/dapr/dapr/pkg/runtime"
|
||||
dapr_testing "github.com/dapr/dapr/pkg/testing"
|
||||
goclient "github.com/dapr/go-sdk/client"
|
||||
"github.com/dapr/kit/logger"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"strconv"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
sidecarNamePrefix = "cassandra-sidecar-"
|
||||
dockerComposeYAMLCLUSTER = "docker-compose-cluster.yml"
|
||||
dockerComposeYAML = "docker-compose-single.yml"
|
||||
|
||||
stateStoreName = "statestore"
|
||||
stateStoreCluster = "statestorecluster"
|
||||
stateStoreClusterFail = "statestoreclusterfail"
|
||||
stateStoreVersionFail = "statestoreversionfail"
|
||||
stateStoreFactorFail = "statestorefactorfail"
|
||||
|
||||
certificationTestPrefix = "stable-certification-"
|
||||
stateStoreNoConfigError = "error saving state: rpc error: code = FailedPrecondition desc = state store is not configured"
|
||||
)
|
||||
|
||||
func TestCassandra(t *testing.T) {
|
||||
log := logger.NewLogger("dapr.components")
|
||||
stateStore := state_cassandra.NewCassandraStateStore(log).(*state_cassandra.Cassandra)
|
||||
ports, err := dapr_testing.GetFreePorts(2)
|
||||
assert.NoError(t, err)
|
||||
|
||||
stateRegistry := state_loader.NewRegistry()
|
||||
stateRegistry.Logger = log
|
||||
stateRegistry.RegisterComponent(func(l logger.Logger) state.Store {
|
||||
return stateStore
|
||||
}, "cassandra")
|
||||
|
||||
currentGrpcPort := ports[0]
|
||||
currentHTTPPort := ports[1]
|
||||
|
||||
basicTest := func(ctx flow.Context) error {
|
||||
client, err := goclient.NewClientWithPort(fmt.Sprint(currentGrpcPort))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
err = client.SaveState(ctx, stateStoreName, certificationTestPrefix+"key1", []byte("cassandraCert"), nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// get state
|
||||
item, err := client.GetState(ctx, stateStoreName, certificationTestPrefix+"key1", nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "cassandraCert", string(item.Value))
|
||||
|
||||
errUpdate := client.SaveState(ctx, stateStoreName, certificationTestPrefix+"key1", []byte("cassandraCertUpdate"), nil)
|
||||
assert.NoError(t, errUpdate)
|
||||
item, errUpdatedGet := client.GetState(ctx, stateStoreName, certificationTestPrefix+"key1", nil)
|
||||
assert.NoError(t, errUpdatedGet)
|
||||
assert.Equal(t, "cassandraCertUpdate", string(item.Value))
|
||||
|
||||
// delete state
|
||||
err = client.DeleteState(ctx, stateStoreName, certificationTestPrefix+"key1", nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Time-To-Live Test
|
||||
timeToLiveTest := func(ctx flow.Context) error {
|
||||
client, err := goclient.NewClientWithPort(fmt.Sprint(currentGrpcPort))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
ttlInSecondsWrongValue := "mock value"
|
||||
mapOptionsWrongValue :=
|
||||
map[string]string{
|
||||
"ttlInSeconds": ttlInSecondsWrongValue,
|
||||
}
|
||||
|
||||
ttlInSecondsNonExpiring := 0
|
||||
mapOptionsNonExpiring :=
|
||||
map[string]string{
|
||||
"ttlInSeconds": strconv.Itoa(ttlInSecondsNonExpiring),
|
||||
}
|
||||
|
||||
ttlInSeconds := 5
|
||||
mapOptions :=
|
||||
map[string]string{
|
||||
"ttlInSeconds": strconv.Itoa(ttlInSeconds),
|
||||
}
|
||||
|
||||
err1 := client.SaveState(ctx, stateStoreName, certificationTestPrefix+"ttl1", []byte("cassandraCert"), mapOptionsWrongValue)
|
||||
assert.Error(t, err1)
|
||||
err2 := client.SaveState(ctx, stateStoreName, certificationTestPrefix+"ttl2", []byte("cassandraCert2"), mapOptionsNonExpiring)
|
||||
assert.NoError(t, err2)
|
||||
err3 := client.SaveState(ctx, stateStoreName, certificationTestPrefix+"ttl3", []byte("cassandraCert3"), mapOptions)
|
||||
assert.NoError(t, err3)
|
||||
|
||||
// get state
|
||||
item, err := client.GetState(ctx, stateStoreName, certificationTestPrefix+"ttl3", nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "cassandraCert3", string(item.Value))
|
||||
time.Sleep(5 * time.Second)
|
||||
//entry should be expired now
|
||||
itemAgain, errAgain := client.GetState(ctx, stateStoreName, certificationTestPrefix+"ttl3", nil)
|
||||
assert.NoError(t, errAgain)
|
||||
assert.Nil(t, nil, itemAgain)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
testGetAfterCassandraRestart := func(ctx flow.Context) error {
|
||||
client, err := goclient.NewClientWithPort(fmt.Sprint(currentGrpcPort))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
// get state
|
||||
item, err := client.GetState(ctx, stateStoreName, certificationTestPrefix+"ttl2", nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "cassandraCert2", string(item.Value))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
failTest := func(ctx flow.Context) error {
|
||||
client, err := goclient.NewClientWithPort(fmt.Sprint(currentGrpcPort + 2))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
//should fail due to lack of replicas
|
||||
err = client.SaveState(ctx, stateStoreFactorFail, certificationTestPrefix+"key1", []byte("cassandraCert"), nil)
|
||||
assert.Error(t, err)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
failVerTest := func(ctx flow.Context) error {
|
||||
client, err := goclient.NewClientWithPort(fmt.Sprint(currentGrpcPort + 4))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer client.Close()
|
||||
// should fail due to unsupported version
|
||||
err = client.SaveState(ctx, stateStoreVersionFail, certificationTestPrefix+"key1", []byte("cassandraCert"), nil)
|
||||
assert.Error(t, err)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
flow.New(t, "Connecting cassandra And Ports and Verifying TTL and network tests and table creation").
|
||||
Step(dockercompose.Run("cassandra", dockerComposeYAML)).
|
||||
Step("wait", flow.Sleep(80*time.Second)).
|
||||
Step(sidecar.Run(sidecarNamePrefix+"dockerDefault",
|
||||
embedded.WithoutApp(),
|
||||
embedded.WithDaprGRPCPort(currentGrpcPort),
|
||||
embedded.WithDaprHTTPPort(currentHTTPPort),
|
||||
embedded.WithComponentsPath("components/docker/default"),
|
||||
runtime.WithStates(stateRegistry),
|
||||
)).
|
||||
Step("wait", flow.Sleep(30*time.Second)).
|
||||
Step("Run TTL related test", timeToLiveTest).
|
||||
Step("interrupt network",
|
||||
network.InterruptNetwork(10*time.Second, nil, nil, "9044:9042")).
|
||||
//Component should recover at this point.
|
||||
Step("wait", flow.Sleep(30*time.Second)).
|
||||
Step("Run basic test again to verify reconnection occurred", basicTest).
|
||||
Step("stop cassandra server", dockercompose.Stop("cassandra", dockerComposeYAML, "cassandra")).
|
||||
Step("start cassandra server", dockercompose.Start("cassandra", dockerComposeYAML, "cassandra")).
|
||||
Step("wait", flow.Sleep(60*time.Second)).
|
||||
Step("Get Values Saved Earlier And Not Expired, after Cassandra restart", testGetAfterCassandraRestart).
|
||||
Step("Run basic test", basicTest).
|
||||
Step(sidecar.Run(sidecarNamePrefix+"dockerDefault2",
|
||||
embedded.WithoutApp(),
|
||||
embedded.WithProfilePort(runtime.DefaultProfilePort+2),
|
||||
embedded.WithDaprGRPCPort(currentGrpcPort+2),
|
||||
embedded.WithDaprHTTPPort(currentHTTPPort+2),
|
||||
embedded.WithComponentsPath("components/docker/defaultfactorfail"),
|
||||
runtime.WithStates(stateRegistry),
|
||||
)).
|
||||
Step("wait", flow.Sleep(30*time.Second)).
|
||||
Step("Run replication factor fail test", failTest).
|
||||
Step(sidecar.Run(sidecarNamePrefix+"dockerDefault3",
|
||||
embedded.WithoutApp(),
|
||||
embedded.WithProfilePort(runtime.DefaultProfilePort+4),
|
||||
embedded.WithDaprGRPCPort(currentGrpcPort+4),
|
||||
embedded.WithDaprHTTPPort(currentHTTPPort+4),
|
||||
embedded.WithComponentsPath("components/docker/defaultverisonfail"),
|
||||
runtime.WithStates(stateRegistry),
|
||||
)).
|
||||
Step("wait", flow.Sleep(30*time.Second)).
|
||||
Step("Run replication factor fail test", failVerTest).
|
||||
Run()
|
||||
|
||||
}
|
||||
|
||||
func TestCluster(t *testing.T) {
|
||||
log := logger.NewLogger("dapr.components")
|
||||
stateStore := state_cassandra.NewCassandraStateStore(log).(*state_cassandra.Cassandra)
|
||||
ports, err := dapr_testing.GetFreePorts(2)
|
||||
assert.NoError(t, err)
|
||||
|
||||
currentGrpcPort := ports[0]
|
||||
currentHTTPPort := ports[1]
|
||||
|
||||
stateRegistry := state_loader.NewRegistry()
|
||||
stateRegistry.Logger = log
|
||||
stateRegistry.RegisterComponent(func(l logger.Logger) state.Store {
|
||||
return stateStore
|
||||
}, "cassandra")
|
||||
|
||||
basicTest := func(ctx flow.Context) error {
|
||||
client, err := goclient.NewClientWithPort(fmt.Sprint(currentGrpcPort))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
err = client.SaveState(ctx, stateStoreCluster, certificationTestPrefix+"key1", []byte("cassandraCert"), nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// get state
|
||||
item, err := client.GetState(ctx, stateStoreCluster, certificationTestPrefix+"key1", nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "cassandraCert", string(item.Value))
|
||||
|
||||
errUpdate := client.SaveState(ctx, stateStoreCluster, certificationTestPrefix+"key1", []byte("cassandraCertUpdate"), nil)
|
||||
assert.NoError(t, errUpdate)
|
||||
item, errUpdatedGet := client.GetState(ctx, stateStoreCluster, certificationTestPrefix+"key1", nil)
|
||||
assert.NoError(t, errUpdatedGet)
|
||||
assert.Equal(t, "cassandraCertUpdate", string(item.Value))
|
||||
|
||||
// delete state
|
||||
err = client.DeleteState(ctx, stateStoreCluster, certificationTestPrefix+"key1", nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
failTest := func(ctx flow.Context) error {
|
||||
client, err := goclient.NewClientWithPort(fmt.Sprint(currentGrpcPort + 2))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer client.Close()
|
||||
|
||||
err = client.SaveState(ctx, stateStoreClusterFail, certificationTestPrefix+"key1", []byte("cassandraCert"), nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// get state
|
||||
_, err = client.GetStateWithConsistency(ctx, stateStoreClusterFail, certificationTestPrefix+"key1", nil, goclient.StateConsistencyUndefined)
|
||||
assert.Error(t, err)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
flow.New(t, "Connecting cassandra And Verifying port/tables/keyspaces/consistency").
|
||||
Step(dockercompose.Run("cassandra", dockerComposeYAMLCLUSTER)).
|
||||
Step("wait", flow.Sleep(80*time.Second)).
|
||||
Step(sidecar.Run(sidecarNamePrefix+"dockerDefault",
|
||||
embedded.WithoutApp(),
|
||||
embedded.WithDaprGRPCPort(currentGrpcPort),
|
||||
embedded.WithDaprHTTPPort(currentHTTPPort),
|
||||
embedded.WithComponentsPath("components/docker/cluster"),
|
||||
runtime.WithStates(stateRegistry),
|
||||
)).
|
||||
Step("wait", flow.Sleep(30*time.Second)).
|
||||
Step("Run basic test", basicTest).
|
||||
Step(sidecar.Run(sidecarNamePrefix+"dockerDefault2",
|
||||
embedded.WithoutApp(),
|
||||
embedded.WithDaprGRPCPort(currentGrpcPort+2),
|
||||
embedded.WithDaprHTTPPort(currentHTTPPort+2),
|
||||
embedded.WithComponentsPath("components/docker/cluster-fail"),
|
||||
embedded.WithProfilePort(runtime.DefaultProfilePort+2),
|
||||
runtime.WithStates(stateRegistry),
|
||||
)).
|
||||
Step("wait", flow.Sleep(30*time.Second)).
|
||||
Step("Run consistency fail test", failTest).
|
||||
Run()
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: statestoreclusterfail
|
||||
spec:
|
||||
type: state.cassandra
|
||||
version: v1
|
||||
initTimeout: 20s
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: localhost
|
||||
- name: username
|
||||
value: cassandra
|
||||
- name: password
|
||||
value: cassandra
|
||||
- name: consistency
|
||||
value: "Three"
|
||||
- name: replicationFactor
|
||||
value: "3"
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: statestorecluster
|
||||
spec:
|
||||
type: state.cassandra
|
||||
version: v1
|
||||
initTimeout: 20s
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: localhost
|
||||
- name: username
|
||||
value: cassandra
|
||||
- name: password
|
||||
value: cassandra
|
||||
- name: protoVersion
|
||||
value: "0"
|
||||
- name: replicationFactor
|
||||
value: "2"
|
||||
- name: consistency
|
||||
value: "Two"
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: statestore
|
||||
spec:
|
||||
type: state.cassandra
|
||||
version: v1
|
||||
initTimeout: 20s
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: localhost
|
||||
- name: username
|
||||
value: cassandra
|
||||
- name: password
|
||||
value: cassandra
|
||||
- name: port
|
||||
value: "9044"
|
||||
- name: table
|
||||
value: "daprTable"
|
||||
- name: keyspace
|
||||
value: "daprKeyspace"
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: statestorefactorfail
|
||||
spec:
|
||||
type: state.cassandra
|
||||
version: v1
|
||||
initTimeout: 30s
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: localhost
|
||||
- name: username
|
||||
value: cassandra
|
||||
- name: password
|
||||
value: cassandra
|
||||
- name: port
|
||||
value: "9044"
|
||||
- name: table
|
||||
value: "daprTableFactor"
|
||||
- name: keyspace
|
||||
value: "daprKeyspaceFactor"
|
||||
- name: replicationFactor
|
||||
value: "2"
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: statestoreversionfail
|
||||
spec:
|
||||
type: state.cassandra
|
||||
version: v1
|
||||
initTimeout: 20s
|
||||
ignoreErrors: true
|
||||
metadata:
|
||||
- name: hosts
|
||||
value: localhost
|
||||
- name: username
|
||||
value: cassandra
|
||||
- name: password
|
||||
value: cassandra
|
||||
- name: port
|
||||
value: "9044"
|
||||
- name: table
|
||||
value: "daprTableVersion"
|
||||
- name: keyspace
|
||||
value: "daprKeyspaceVersion"
|
||||
- name: protoVersion
|
||||
value: "1"
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Configuration
|
||||
metadata:
|
||||
name: keyvaultconfig
|
||||
spec:
|
||||
features:
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
version: '2'
|
||||
services:
|
||||
cassandra:
|
||||
image: docker.io/bitnami/cassandra:4.0.1
|
||||
ports:
|
||||
- '7000:7000'
|
||||
- '9042:9042'
|
||||
volumes:
|
||||
- 'cassandra_data:/bitnami'
|
||||
environment:
|
||||
- CASSANDRA_SEEDS=cassandra,cassandra2
|
||||
- CASSANDRA_CLUSTER_NAME=cassandra-cluster
|
||||
- CASSANDRA_PASSWORD=cassandra
|
||||
- CASSANDRA_PASSWORD_SEEDER=yes
|
||||
|
||||
cassandra2:
|
||||
image: docker.io/bitnami/cassandra:4.0.1
|
||||
ports:
|
||||
- 7001:7000
|
||||
- 9043:9042
|
||||
volumes:
|
||||
- cassandra2_data:/bitnami
|
||||
environment:
|
||||
- CASSANDRA_SEEDS=cassandra,cassandra2
|
||||
- CASSANDRA_CLUSTER_NAME=cassandra-cluster
|
||||
- CASSANDRA_PASSWORD=cassandra
|
||||
volumes:
|
||||
cassandra_data:
|
||||
driver: local
|
||||
cassandra2_data:
|
||||
driver: local
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
version: '2'
|
||||
services:
|
||||
cassandra:
|
||||
image: docker.io/bitnami/cassandra:4.0.1
|
||||
ports:
|
||||
- '7002:7000'
|
||||
- '9044:9042'
|
||||
volumes:
|
||||
- 'cassandra_data:/bitnami'
|
||||
environment:
|
||||
- CASSANDRA_PASSWORD=cassandra
|
||||
volumes:
|
||||
cassandra_data:
|
||||
driver: local
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
module github.com/dapr/components-contrib/tests/certification/state/cassandra
|
||||
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
github.com/dapr/components-contrib v1.8.0-rc.6
|
||||
github.com/dapr/components-contrib/tests/certification v0.0.0-20211026011813-36b75e9ae272
|
||||
github.com/dapr/dapr v1.8.4-0.20220829184035-996cc622ad0c
|
||||
github.com/dapr/go-sdk v1.4.0
|
||||
github.com/dapr/kit v0.0.2
|
||||
github.com/stretchr/testify v1.8.0
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/gocql/gocql v0.0.0-20210515062232-b7ef815b4556 // indirect
|
||||
github.com/golang/mock v1.6.0 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.7.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.7.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.7.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/zipkin v1.7.0 // indirect
|
||||
go.opentelemetry.io/otel/sdk v1.7.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.7.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v0.16.0 // indirect
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
|
||||
golang.org/x/tools v0.1.11 // indirect
|
||||
)
|
||||
|
||||
require (
|
||||
contrib.go.opencensus.io/exporter/prometheus v0.4.1 // indirect
|
||||
github.com/AdhityaRamadhanus/fasthttpcors v0.0.0-20170121111917-d4c07198763a // indirect
|
||||
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
||||
github.com/andybalholm/brotli v1.0.4 // indirect
|
||||
github.com/antlr/antlr4 v0.0.0-20200503195918-621b933c7a7f // indirect
|
||||
github.com/armon/go-metrics v0.3.10 // indirect
|
||||
github.com/beorn7/perks v1.0.1 // indirect
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
||||
github.com/fasthttp/router v1.3.8 // indirect
|
||||
github.com/fatih/color v1.13.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.5.4 // indirect
|
||||
github.com/ghodss/yaml v1.0.0 // indirect
|
||||
github.com/go-kit/log v0.2.0 // indirect
|
||||
github.com/go-logfmt/logfmt v0.5.1 // indirect
|
||||
github.com/go-logr/logr v1.2.3 // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/cel-go v0.9.0 // indirect
|
||||
github.com/google/go-cmp v0.5.8 // indirect
|
||||
github.com/google/gofuzz v1.2.0 // indirect
|
||||
github.com/google/uuid v1.3.0 // indirect
|
||||
github.com/googleapis/gnostic v0.5.5 // indirect
|
||||
github.com/grandcat/zeroconf v0.0.0-20190424104450-85eadb44205c // indirect
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
|
||||
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
|
||||
github.com/hashicorp/consul/api v1.11.0 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||
github.com/hashicorp/go-hclog v1.2.1 // indirect
|
||||
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
||||
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
||||
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
|
||||
github.com/hashicorp/golang-lru v0.5.4 // indirect
|
||||
github.com/hashicorp/serf v0.9.6 // indirect
|
||||
github.com/imdario/mergo v0.3.12 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/compress v1.15.1 // indirect
|
||||
github.com/mattn/go-colorable v0.1.12 // indirect
|
||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
||||
github.com/miekg/dns v1.1.50 // indirect
|
||||
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
|
||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||
github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/openzipkin/zipkin-go v0.4.0 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/prometheus/client_golang v1.12.2 // indirect
|
||||
github.com/prometheus/client_model v0.2.0 // indirect
|
||||
github.com/prometheus/common v0.35.0 // indirect
|
||||
github.com/prometheus/procfs v0.7.3 // indirect
|
||||
github.com/prometheus/statsd_exporter v0.22.3 // indirect
|
||||
github.com/savsgio/gotils v0.0.0-20210217112953-d4a072536008 // indirect
|
||||
github.com/sirupsen/logrus v1.9.0 // indirect
|
||||
github.com/sony/gobreaker v0.4.2-0.20210216022020-dd874f9dd33b // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/stoewer/go-strcase v1.2.0 // indirect
|
||||
github.com/stretchr/objx v0.4.0 // indirect
|
||||
github.com/tylertreat/comcast v1.0.1 // indirect
|
||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||
github.com/valyala/fasthttp v1.34.0 // indirect
|
||||
go.opencensus.io v0.23.0 // indirect
|
||||
go.opentelemetry.io/otel v1.7.0 // indirect
|
||||
go.uber.org/atomic v1.9.0 // indirect
|
||||
golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect
|
||||
golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a // indirect
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 // indirect
|
||||
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20220622171453-ea41d75dfa0f // indirect
|
||||
google.golang.org/grpc v1.47.0 // indirect
|
||||
google.golang.org/protobuf v1.28.0 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
k8s.io/api v0.23.0 // indirect
|
||||
k8s.io/apiextensions-apiserver v0.23.0 // indirect
|
||||
k8s.io/apimachinery v0.23.0 // indirect
|
||||
k8s.io/client-go v0.23.0 // indirect
|
||||
k8s.io/component-base v0.23.0 // indirect
|
||||
k8s.io/klog/v2 v2.30.0 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect
|
||||
k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect
|
||||
sigs.k8s.io/controller-runtime v0.11.0 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.0 // indirect
|
||||
sigs.k8s.io/yaml v1.3.0 // indirect
|
||||
)
|
||||
|
||||
replace github.com/dapr/components-contrib/tests/certification => ../../
|
||||
|
||||
replace github.com/dapr/components-contrib => ../../../../
|
||||
|
||||
replace github.com/dapr/go-sdk => github.com/hunter007/dapr-go-sdk v1.3.1-0.20220709114046-2f2dc4f9a684
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -12,4 +12,3 @@ spec:
|
|||
value: cassandra
|
||||
- name: password
|
||||
value: cassandra
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue