diff --git a/blobstore/common/errors/errors.go b/blobstore/common/errors/errors.go index d50cfbca4..5dd13368e 100644 --- a/blobstore/common/errors/errors.go +++ b/blobstore/common/errors/errors.go @@ -158,18 +158,19 @@ var errCodeMap = map[int]string{ CodeShardNodeNotLeader: "shardnode:not leader", CodeShardRangeMismatch: "shardnode:range mismatch", - CodeShardDoesNotExist: "shardnode:does not exist", + CodeShardDoesNotExist: "shardnode:shard does not exist", CodeShardNodeDiskNotFound: "shardnode:disk not found", CodeUnknownField: "shardnode:unknown field", CodeShardRouteVersionNeedUpdate: "shardnode:route version need update", CodeShardNoLeader: "shardnode:shard has no leader", - CodeIllegalSlices: "shardnode:alloc with illegal slices", + CodeIllegalSlices: "shardnode:illegal slices", CodeBlobAlreadyExists: "shardnode:blob already exists", CodeShardConflicts: "shardnode:shard conflicts", CodeKeySizeTooLarge: "shardnode:key size large than 32KB", CodeValueSizeTooLarge: "shardnode:value size large than 16MB", CodeKeyNotFound: "shardnode:key not found", CodeBlobAlreadySealed: "shardnode:blob already sealed", + CodeBlobNameEmpty: "shardnode:blob name is empty", } // HTTPError make rpc.HTTPError diff --git a/blobstore/common/errors/shardnode.go b/blobstore/common/errors/shardnode.go index 41f9e79d8..aa0bcda01 100644 --- a/blobstore/common/errors/shardnode.go +++ b/blobstore/common/errors/shardnode.go @@ -30,6 +30,7 @@ const ( CodeValueSizeTooLarge = 1013 CodeKeyNotFound = 1014 CodeBlobAlreadySealed = 1015 + CodeBlobNameEmpty = 1016 ) // 10xx @@ -49,4 +50,5 @@ var ( ErrValueSizeTooLarge = Error(CodeValueSizeTooLarge) ErrKeyNotFound = Error(CodeKeyNotFound) ErrBlobAlreadySealed = Error(CodeBlobAlreadySealed) + ErrBlobNameEmpty = Error(CodeBlobNameEmpty) ) diff --git a/blobstore/shardnode/blob.go b/blobstore/shardnode/blob.go index eeef0976a..9cc2ab6a8 100644 --- a/blobstore/shardnode/blob.go +++ b/blobstore/shardnode/blob.go @@ -24,6 +24,10 @@ import ( ) func (s *service) createBlob(ctx context.Context, req *shardnode.CreateBlobArgs) (resp shardnode.CreateBlobRet, err error) { + if len(req.Name) < 1 { + err = apierr.ErrBlobNameEmpty + return + } if len(req.Name) > storage.MaxKeySize { err = apierr.ErrKeySizeTooLarge return @@ -40,7 +44,7 @@ func (s *service) deleteBlob(ctx context.Context, req *shardnode.DeleteBlobArgs) sid := req.Header.SpaceID space, err := s.catalog.GetSpace(ctx, sid) if err != nil { - return nil + return err } return space.DeleteBlob(ctx, req) } @@ -49,7 +53,7 @@ func (s *service) sealBlob(ctx context.Context, req *shardnode.SealBlobArgs) err sid := req.Header.SpaceID space, err := s.catalog.GetSpace(ctx, sid) if err != nil { - return nil + return err } return space.SealBlob(ctx, req) }