adds partition key cert test

Signed-off-by: Roberto J Rojas <robertojrojas@gmail.com>
This commit is contained in:
Roberto J Rojas 2023-01-11 20:42:53 -05:00
parent 77e62723f6
commit 0be8350b0d
6 changed files with 108 additions and 13 deletions

View File

@ -6,7 +6,26 @@ spec:
type: state.aws.dynamodb
version: v1
metadata:
- name: table
value: "cert-test-basic"
- name: ttlAttributeName
value: "expiresAt"
- name: accessKey
secretKeyRef:
name: AWS_ACCESS_KEY_ID
key: AWS_ACCESS_KEY_ID
- name: secretKey
secretKeyRef:
name: AWS_SECRET_ACCESS_KEY
key: AWS_SECRET_ACCESS_KEY
- name: region
secretKeyRef:
name: AWS_REGION
key: AWS_REGION
- name: consumerID
secretKeyRef:
name: PUBSUB_AWS_SNSSQS_QUEUE_3
key: PUBSUB_AWS_SNSSQS_QUEUE_3
- name: table
value: "cert-test-basic"
- name: ttlAttributeName
value: "expiresAt"
auth:
secretStore: envvar-secret-store

View File

@ -0,0 +1,9 @@
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: envvar-secret-store
namespace: default
spec:
type: secretstores.local.env
version: v1
metadata:

View File

@ -0,0 +1,31 @@
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore-partition-key
spec:
type: state.aws.dynamodb
version: v1
metadata:
- name: accessKey
secretKeyRef:
name: AWS_ACCESS_KEY_ID
key: AWS_ACCESS_KEY_ID
- name: secretKey
secretKeyRef:
name: AWS_SECRET_ACCESS_KEY
key: AWS_SECRET_ACCESS_KEY
- name: region
secretKeyRef:
name: AWS_REGION
key: AWS_REGION
- name: consumerID
secretKeyRef:
name: PUBSUB_AWS_SNSSQS_QUEUE_3
key: PUBSUB_AWS_SNSSQS_QUEUE_3
- name: table
value: "cert-test-partition-key"
- name: partitionKey
value: "pkey"
auth:
secretStore: envvar-secret-store

View File

@ -0,0 +1,9 @@
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: envvar-secret-store
namespace: default
spec:
type: secretstores.local.env
version: v1
metadata:

View File

@ -21,7 +21,11 @@ import (
"github.com/aws/aws-sdk-go/service/dynamodb/dynamodbiface"
)
func createTestTables(tables []string) error {
const (
tableName = "tableName"
)
func createTestTables(tables []map[string]string) error {
svc := dynamoDBService()
for _, t := range tables {
if err := createTable(svc, t); err != nil {
@ -49,18 +53,18 @@ func dynamoDBService() dynamodbiface.DynamoDBAPI {
return dynamodb.New(sess)
}
func createTable(svc dynamodbiface.DynamoDBAPI, tableName string) error {
key := "key"
func createTable(svc dynamodbiface.DynamoDBAPI, table map[string]string) error {
attributeDefinitions := []*dynamodb.AttributeDefinition{
{
AttributeName: aws.String(key),
AttributeName: aws.String(table[key]),
AttributeType: aws.String("S"),
},
}
keySchema := []*dynamodb.KeySchemaElement{
{
AttributeName: aws.String(key),
AttributeName: aws.String(table[key]),
KeyType: aws.String("HASH"),
},
}
@ -74,7 +78,7 @@ func createTable(svc dynamodbiface.DynamoDBAPI, tableName string) error {
AttributeDefinitions: attributeDefinitions,
KeySchema: keySchema,
ProvisionedThroughput: provisionedThroughput,
TableName: aws.String(tableName),
TableName: aws.String(table[tableName]),
})
if err != nil {
return err

View File

@ -38,8 +38,15 @@ const (
// The following Test Tables names must match
// the values of the "table" metadata properties
// found inside each of the components/*/dynamodb.yaml files
var testTables = []string{
"cert-test-basic",
var testTables = []map[string]string{
{
key: key,
tableName: "cert-test-basic",
},
{
key: "pkey",
tableName: "cert-test-partition-key",
},
}
func TestAWSDynamoDBStorage(t *testing.T) {
@ -140,7 +147,18 @@ func TestAWSDynamoDBStorage(t *testing.T) {
embedded.WithDaprHTTPPort(currentHTTPPort),
embedded.WithComponentsPath("./components/basictest"),
componentRuntimeOptions())).
Step("Run basic test with master key", ttlTest("statestore-basic")).
Step("Run basic test with default key", ttlTest("statestore-basic")).
Run()
flow.New(t, "Test Partition Key").
// Run the Dapr sidecar with AWS DynamoDB storage.
Step(sidecar.Run(sidecarNamePrefix,
embedded.WithoutApp(),
embedded.WithDaprGRPCPort(currentGrpcPort),
embedded.WithDaprHTTPPort(currentHTTPPort),
embedded.WithComponentsPath("./components/partition_key"),
componentRuntimeOptions())).
Step("Run basic test with partition key", ttlTest("statestore-basic")).
Run()
}
@ -151,8 +169,13 @@ func componentRuntimeOptions() []runtime.Option {
stateRegistry.Logger = log
stateRegistry.RegisterComponent(dynamodb.NewDynamoDBStateStore, "aws.dynamodb")
secretstoreRegistry := secretstores_loader.NewRegistry()
secretstoreRegistry.Logger = log
secretstoreRegistry.RegisterComponent(secretstore_env.NewEnvSecretStore, "local.env")
return []runtime.Option{
runtime.WithStates(stateRegistry),
runtime.WithSecretStores(secretstoreRegistry),
}
}