Modify storage bucket service to include NormalizeStorageBucketData (#5590)
NormalizeStorageBucketData normalizes a given's storage bucket attributes before persisting. Co-authored-by: Danielle Miu <29378233+DanielleMiu@users.noreply.github.com>
This commit is contained in:
1 parent
70cdd3823c
commit
2ed3430069
6 files changed
+626
-340
No files matched your search
@@ -71,6 +71,10 @@ func NewWrappingPluginStorageClient(s plgpb.StoragePluginServiceServer) *Wrappin
|
||||
return &WrappingPluginStorageClient{Server: s}
|
||||
}
|
||||
|
||||
func (tpc *WrappingPluginStorageClient) NormalizeStorageBucketData(ctx context.Context, req *plgpb.NormalizeStorageBucketDataRequest, opts ...grpc.CallOption) (*plgpb.NormalizeStorageBucketDataResponse, error) {
|
||||
return tpc.Server.NormalizeStorageBucketData(ctx, req)
|
||||
}
|
||||
|
||||
func (tpc *WrappingPluginStorageClient) OnCreateStorageBucket(ctx context.Context, req *plgpb.OnCreateStorageBucketRequest, opts ...grpc.CallOption) (*plgpb.OnCreateStorageBucketResponse, error) {
|
||||
return tpc.Server.OnCreateStorageBucket(ctx, req)
|
||||
}
|
||||
|
||||
@@ -104,6 +104,7 @@ func NewLoopbackPlugin(opt ...TestOption) (*LoopbackPlugin, error) {
|
||||
ret.ListHostsFn = ret.listHosts
|
||||
|
||||
// Set storage methods
|
||||
ret.NormalizeStorageBucketDataFn = ret.normalizeStorageBucketData
|
||||
ret.OnCreateStorageBucketFn = ret.onCreateStorageBucket
|
||||
ret.OnUpdateStorageBucketFn = ret.onUpdateStorageBucket
|
||||
ret.OnDeleteStorageBucketFn = ret.onDeleteStorageBucket
|
||||
|
||||
@@ -27,17 +27,25 @@ var _ plgpb.StoragePluginServiceServer = (*TestPluginStorageServer)(nil)
|
||||
|
||||
// TestPluginStorageServer provides a storage plugin service server where each method can be overwritten for tests.
|
||||
type TestPluginStorageServer struct {
|
||||
OnCreateStorageBucketFn func(context.Context, *plgpb.OnCreateStorageBucketRequest) (*plgpb.OnCreateStorageBucketResponse, error)
|
||||
OnUpdateStorageBucketFn func(context.Context, *plgpb.OnUpdateStorageBucketRequest) (*plgpb.OnUpdateStorageBucketResponse, error)
|
||||
OnDeleteStorageBucketFn func(context.Context, *plgpb.OnDeleteStorageBucketRequest) (*plgpb.OnDeleteStorageBucketResponse, error)
|
||||
ValidatePermissionsFn func(context.Context, *plgpb.ValidatePermissionsRequest) (*plgpb.ValidatePermissionsResponse, error)
|
||||
HeadObjectFn func(context.Context, *plgpb.HeadObjectRequest) (*plgpb.HeadObjectResponse, error)
|
||||
GetObjectFn func(*plgpb.GetObjectRequest, plgpb.StoragePluginService_GetObjectServer) error
|
||||
PutObjectFn func(context.Context, *plgpb.PutObjectRequest) (*plgpb.PutObjectResponse, error)
|
||||
DeleteObjectsFn func(context.Context, *plgpb.DeleteObjectsRequest) (*plgpb.DeleteObjectsResponse, error)
|
||||
NormalizeStorageBucketDataFn func(context.Context, *plgpb.NormalizeStorageBucketDataRequest) (*plgpb.NormalizeStorageBucketDataResponse, error)
|
||||
OnCreateStorageBucketFn func(context.Context, *plgpb.OnCreateStorageBucketRequest) (*plgpb.OnCreateStorageBucketResponse, error)
|
||||
OnUpdateStorageBucketFn func(context.Context, *plgpb.OnUpdateStorageBucketRequest) (*plgpb.OnUpdateStorageBucketResponse, error)
|
||||
OnDeleteStorageBucketFn func(context.Context, *plgpb.OnDeleteStorageBucketRequest) (*plgpb.OnDeleteStorageBucketResponse, error)
|
||||
ValidatePermissionsFn func(context.Context, *plgpb.ValidatePermissionsRequest) (*plgpb.ValidatePermissionsResponse, error)
|
||||
HeadObjectFn func(context.Context, *plgpb.HeadObjectRequest) (*plgpb.HeadObjectResponse, error)
|
||||
GetObjectFn func(*plgpb.GetObjectRequest, plgpb.StoragePluginService_GetObjectServer) error
|
||||
PutObjectFn func(context.Context, *plgpb.PutObjectRequest) (*plgpb.PutObjectResponse, error)
|
||||
DeleteObjectsFn func(context.Context, *plgpb.DeleteObjectsRequest) (*plgpb.DeleteObjectsResponse, error)
|
||||
plgpb.UnimplementedStoragePluginServiceServer
|
||||
}
|
||||
|
||||
func (t TestPluginStorageServer) NormalizeStorageBucketData(ctx context.Context, req *plgpb.NormalizeStorageBucketDataRequest) (*plgpb.NormalizeStorageBucketDataResponse, error) {
|
||||
if t.NormalizeStorageBucketDataFn == nil {
|
||||
return t.UnimplementedStoragePluginServiceServer.NormalizeStorageBucketData(ctx, req)
|
||||
}
|
||||
return t.NormalizeStorageBucketDataFn(ctx, req)
|
||||
}
|
||||
|
||||
func (t TestPluginStorageServer) OnCreateStorageBucket(ctx context.Context, req *plgpb.OnCreateStorageBucketRequest) (*plgpb.OnCreateStorageBucketResponse, error) {
|
||||
if t.OnCreateStorageBucketFn == nil {
|
||||
return t.UnimplementedStoragePluginServiceServer.OnCreateStorageBucket(ctx, req)
|
||||
@@ -122,6 +130,33 @@ type LoopbackStorage struct {
|
||||
buckets map[BucketName]Bucket
|
||||
errs []PluginMockError
|
||||
putObjectResponse []PluginMockPutObjectResponse
|
||||
normalizations int
|
||||
}
|
||||
|
||||
func (l *LoopbackStorage) normalizeStorageBucketData(ctx context.Context, req *plgpb.NormalizeStorageBucketDataRequest) (*plgpb.NormalizeStorageBucketDataResponse, error) {
|
||||
const op = "loopback.(LoopbackStorage).normalizeStorageBucketData"
|
||||
if req == nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "%s: request is nil", op)
|
||||
}
|
||||
if req.GetAttributes() == nil {
|
||||
return nil, status.Errorf(codes.InvalidArgument, "%s: missing attributes", op)
|
||||
}
|
||||
l.normalizations++
|
||||
return &plgpb.NormalizeStorageBucketDataResponse{
|
||||
Attributes: req.GetAttributes(),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// ResetNormalizations sets the number of times that NormalizeStorageBucketData
|
||||
// has been called to 0. Useful for unit tests.
|
||||
func (l *LoopbackStorage) ResetNormalizations() {
|
||||
l.normalizations = 0
|
||||
}
|
||||
|
||||
// GetNormalizations returns the number of times that NormalizeStorageBucketData
|
||||
// has been called via the loopback plugin. Useful for unit tests.
|
||||
func (l *LoopbackStorage) GetNormalizations() int {
|
||||
return l.normalizations
|
||||
}
|
||||
|
||||
func (l *LoopbackStorage) onCreateStorageBucket(ctx context.Context, req *plgpb.OnCreateStorageBucketRequest) (*plgpb.OnCreateStorageBucketResponse, error) {
|
||||
|
||||
Reference in new issue
Block a user