adds partition key cert test
Signed-off-by: Roberto J Rojas <robertojrojas@gmail.com>
This commit is contained in:
parent
77e62723f6
commit
0be8350b0d
|
@ -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
|
|
@ -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:
|
|
@ -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
|
|
@ -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:
|
|
@ -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
|
||||
|
|
|
@ -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),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue