update storage buckets to use a shared persisted secrets type. add options
This commit is contained in:
1 parent
70a950b7a3
commit
bb82fa6507
9 files changed
+534
-328
No files matched your search
@@ -14,6 +14,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/storagebuckets"
|
||||
plgpb "github.com/hashicorp/boundary/sdk/pbs/plugin"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
@@ -134,7 +135,7 @@ func (l *LoopbackStorage) onCreateStorageBucket(ctx context.Context, req *plgpb.
|
||||
}
|
||||
}
|
||||
return &plgpb.OnCreateStorageBucketResponse{
|
||||
Persisted: &plgpb.StorageBucketPersisted{
|
||||
Persisted: &storagebuckets.StorageBucketPersisted{
|
||||
Data: req.GetBucket().GetSecrets(),
|
||||
},
|
||||
}, nil
|
||||
@@ -148,7 +149,7 @@ func (l *LoopbackStorage) onUpdateStorageBucket(ctx context.Context, req *plgpb.
|
||||
if req.GetNewBucket() == nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "%s: missing storage bucket", op)
|
||||
}
|
||||
if req.GetNewBucket().GetSecrets() == nil {
|
||||
if req.Persisted == nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "%s: missing secrets", op)
|
||||
}
|
||||
l.m.Lock()
|
||||
@@ -161,10 +162,16 @@ func (l *LoopbackStorage) onUpdateStorageBucket(ctx context.Context, req *plgpb.
|
||||
return nil, status.Errorf(err.errCode, "%s: %s", op, err.errMsg)
|
||||
}
|
||||
}
|
||||
return &plgpb.OnUpdateStorageBucketResponse{
|
||||
Persisted: &plgpb.StorageBucketPersisted{
|
||||
var sec *storagebuckets.StorageBucketPersisted
|
||||
if req.NewBucket.Secrets != nil {
|
||||
sec = &storagebuckets.StorageBucketPersisted{
|
||||
Data: req.GetNewBucket().GetSecrets(),
|
||||
},
|
||||
}
|
||||
} else {
|
||||
sec = req.Persisted
|
||||
}
|
||||
return &plgpb.OnUpdateStorageBucketResponse{
|
||||
Persisted: sec,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -176,7 +183,7 @@ func (l *LoopbackStorage) onDeleteStorageBucket(ctx context.Context, req *plgpb.
|
||||
if req.GetBucket() == nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "%s: missing storage bucket", op)
|
||||
}
|
||||
if req.GetBucket().GetSecrets() == nil {
|
||||
if req.Persisted == nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "%s: missing secrets", op)
|
||||
}
|
||||
return &plgpb.OnDeleteStorageBucketResponse{}, nil
|
||||
|
||||
@@ -145,6 +145,9 @@ func TestLoopbackOnUpdateStorageBucket(t *testing.T) {
|
||||
"AWS_SECRET_ACCESS_KEY": structpb.NewStringValue("secret_access_key"),
|
||||
},
|
||||
}
|
||||
persisted := &storagebuckets.StorageBucketPersisted{
|
||||
Data: secrets,
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -165,6 +168,7 @@ func TestLoopbackOnUpdateStorageBucket(t *testing.T) {
|
||||
request: &plgpb.OnUpdateStorageBucketRequest{
|
||||
NewBucket: &storagebuckets.StorageBucket{
|
||||
BucketName: "aws_s3_mock",
|
||||
Secrets: secrets,
|
||||
},
|
||||
},
|
||||
expectedErr: codes.InvalidArgument,
|
||||
@@ -176,6 +180,7 @@ func TestLoopbackOnUpdateStorageBucket(t *testing.T) {
|
||||
BucketName: "bucket_dne",
|
||||
Secrets: secrets,
|
||||
},
|
||||
Persisted: persisted,
|
||||
},
|
||||
expectedErr: codes.NotFound,
|
||||
},
|
||||
@@ -186,6 +191,7 @@ func TestLoopbackOnUpdateStorageBucket(t *testing.T) {
|
||||
BucketName: "aws_s3_err",
|
||||
Secrets: secrets,
|
||||
},
|
||||
Persisted: persisted,
|
||||
},
|
||||
expectedErr: codes.PermissionDenied,
|
||||
},
|
||||
@@ -196,6 +202,7 @@ func TestLoopbackOnUpdateStorageBucket(t *testing.T) {
|
||||
BucketName: "aws_s3_mock",
|
||||
Secrets: secrets,
|
||||
},
|
||||
Persisted: persisted,
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -233,6 +240,9 @@ func TestLoopbackOnDeleteStorageBucket(t *testing.T) {
|
||||
"AWS_SECRET_ACCESS_KEY": structpb.NewStringValue("secret_access_key"),
|
||||
},
|
||||
}
|
||||
persisted := &storagebuckets.StorageBucketPersisted{
|
||||
Data: secrets,
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -253,6 +263,7 @@ func TestLoopbackOnDeleteStorageBucket(t *testing.T) {
|
||||
request: &plgpb.OnDeleteStorageBucketRequest{
|
||||
Bucket: &storagebuckets.StorageBucket{
|
||||
BucketName: "aws_s3_mock",
|
||||
Secrets: secrets,
|
||||
},
|
||||
},
|
||||
expectedErr: codes.InvalidArgument,
|
||||
@@ -264,6 +275,7 @@ func TestLoopbackOnDeleteStorageBucket(t *testing.T) {
|
||||
BucketName: "aws_s3_mock",
|
||||
Secrets: secrets,
|
||||
},
|
||||
Persisted: persisted,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user