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
|
type: state.aws.dynamodb
|
||||||
version: v1
|
version: v1
|
||||||
metadata:
|
metadata:
|
||||||
- name: table
|
- name: accessKey
|
||||||
value: "cert-test-basic"
|
secretKeyRef:
|
||||||
- name: ttlAttributeName
|
name: AWS_ACCESS_KEY_ID
|
||||||
value: "expiresAt"
|
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"
|
"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()
|
svc := dynamoDBService()
|
||||||
for _, t := range tables {
|
for _, t := range tables {
|
||||||
if err := createTable(svc, t); err != nil {
|
if err := createTable(svc, t); err != nil {
|
||||||
|
|
@ -49,18 +53,18 @@ func dynamoDBService() dynamodbiface.DynamoDBAPI {
|
||||||
return dynamodb.New(sess)
|
return dynamodb.New(sess)
|
||||||
}
|
}
|
||||||
|
|
||||||
func createTable(svc dynamodbiface.DynamoDBAPI, tableName string) error {
|
func createTable(svc dynamodbiface.DynamoDBAPI, table map[string]string) error {
|
||||||
key := "key"
|
|
||||||
attributeDefinitions := []*dynamodb.AttributeDefinition{
|
attributeDefinitions := []*dynamodb.AttributeDefinition{
|
||||||
{
|
{
|
||||||
AttributeName: aws.String(key),
|
AttributeName: aws.String(table[key]),
|
||||||
AttributeType: aws.String("S"),
|
AttributeType: aws.String("S"),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
keySchema := []*dynamodb.KeySchemaElement{
|
keySchema := []*dynamodb.KeySchemaElement{
|
||||||
{
|
{
|
||||||
AttributeName: aws.String(key),
|
AttributeName: aws.String(table[key]),
|
||||||
KeyType: aws.String("HASH"),
|
KeyType: aws.String("HASH"),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
@ -74,7 +78,7 @@ func createTable(svc dynamodbiface.DynamoDBAPI, tableName string) error {
|
||||||
AttributeDefinitions: attributeDefinitions,
|
AttributeDefinitions: attributeDefinitions,
|
||||||
KeySchema: keySchema,
|
KeySchema: keySchema,
|
||||||
ProvisionedThroughput: provisionedThroughput,
|
ProvisionedThroughput: provisionedThroughput,
|
||||||
TableName: aws.String(tableName),
|
TableName: aws.String(table[tableName]),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,15 @@ const (
|
||||||
// The following Test Tables names must match
|
// The following Test Tables names must match
|
||||||
// the values of the "table" metadata properties
|
// the values of the "table" metadata properties
|
||||||
// found inside each of the components/*/dynamodb.yaml files
|
// found inside each of the components/*/dynamodb.yaml files
|
||||||
var testTables = []string{
|
var testTables = []map[string]string{
|
||||||
"cert-test-basic",
|
{
|
||||||
|
key: key,
|
||||||
|
tableName: "cert-test-basic",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "pkey",
|
||||||
|
tableName: "cert-test-partition-key",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAWSDynamoDBStorage(t *testing.T) {
|
func TestAWSDynamoDBStorage(t *testing.T) {
|
||||||
|
|
@ -140,7 +147,18 @@ func TestAWSDynamoDBStorage(t *testing.T) {
|
||||||
embedded.WithDaprHTTPPort(currentHTTPPort),
|
embedded.WithDaprHTTPPort(currentHTTPPort),
|
||||||
embedded.WithComponentsPath("./components/basictest"),
|
embedded.WithComponentsPath("./components/basictest"),
|
||||||
componentRuntimeOptions())).
|
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()
|
Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -151,8 +169,13 @@ func componentRuntimeOptions() []runtime.Option {
|
||||||
stateRegistry.Logger = log
|
stateRegistry.Logger = log
|
||||||
stateRegistry.RegisterComponent(dynamodb.NewDynamoDBStateStore, "aws.dynamodb")
|
stateRegistry.RegisterComponent(dynamodb.NewDynamoDBStateStore, "aws.dynamodb")
|
||||||
|
|
||||||
|
secretstoreRegistry := secretstores_loader.NewRegistry()
|
||||||
|
secretstoreRegistry.Logger = log
|
||||||
|
secretstoreRegistry.RegisterComponent(secretstore_env.NewEnvSecretStore, "local.env")
|
||||||
|
|
||||||
return []runtime.Option{
|
return []runtime.Option{
|
||||||
runtime.WithStates(stateRegistry),
|
runtime.WithStates(stateRegistry),
|
||||||
|
runtime.WithSecretStores(secretstoreRegistry),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue