From cec7bed9e944013593535541733a22813cd2a491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 7 Jul 2021 16:09:20 +0200 Subject: [PATCH] incorporate review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- internal/grpc/services/gateway/storageprovider.go | 14 ++++++++++++-- .../services/storageprovider/storageprovider.go | 3 +++ pkg/storage/utils/decomposedfs/decomposedfs.go | 1 - 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/internal/grpc/services/gateway/storageprovider.go b/internal/grpc/services/gateway/storageprovider.go index 0de25d099b1..80fa004610a 100644 --- a/internal/grpc/services/gateway/storageprovider.go +++ b/internal/grpc/services/gateway/storageprovider.go @@ -196,8 +196,13 @@ func (s *svc) ListStorageSpaces(ctx context.Context, req *provider.ListStorageSp uniqueSpaces := map[string]*provider.StorageSpace{} for i := range providers { if errors[i] != nil { - log.Debug().Err(errors[i]).Msg("skipping provider") - continue + if len(providers) > 1 { + log.Debug().Err(errors[i]).Msg("skipping provider") + continue + } + return &provider.ListStorageSpacesResponse{ + Status: status.NewStatusFromErrType(ctx, "error listing space", errors[i]), + }, nil } for j := range spacesFromProviders[i] { uniqueSpaces[spacesFromProviders[i][j].Id.OpaqueId] = spacesFromProviders[i][j] @@ -207,6 +212,11 @@ func (s *svc) ListStorageSpaces(ctx context.Context, req *provider.ListStorageSp for spaceID := range uniqueSpaces { spaces = append(spaces, uniqueSpaces[spaceID]) } + if len(spaces) == 0 { + return &provider.ListStorageSpacesResponse{ + Status: status.NewNotFound(ctx, "space not found"), + }, nil + } return &provider.ListStorageSpacesResponse{ Status: status.NewOK(ctx), diff --git a/internal/grpc/services/storageprovider/storageprovider.go b/internal/grpc/services/storageprovider/storageprovider.go index 0fe2a3600f6..9c8529971ee 100644 --- a/internal/grpc/services/storageprovider/storageprovider.go +++ b/internal/grpc/services/storageprovider/storageprovider.go @@ -433,6 +433,7 @@ func hasNodeID(s *provider.StorageSpace) bool { } func (s *service) ListStorageSpaces(ctx context.Context, req *provider.ListStorageSpacesRequest) (*provider.ListStorageSpacesResponse, error) { + log := appctx.GetLogger(ctx) spaces, err := s.storage.ListStorageSpaces(ctx, req.Filters) if err != nil { var st *rpc.Status @@ -461,6 +462,8 @@ func (s *service) ListStorageSpaces(ctx context.Context, req *provider.ListStora if spaces[i].Root.StorageId == "" { spaces[i].Root.StorageId = s.mountID } + } else if spaces[i].Id == nil || spaces[i].Id.OpaqueId == "" { + log.Warn().Str("service", "storageprovider").Str("driver", s.conf.Driver).Interface("space", spaces[i]).Msg("space is missing space id and root id") } } diff --git a/pkg/storage/utils/decomposedfs/decomposedfs.go b/pkg/storage/utils/decomposedfs/decomposedfs.go index 03208cbc95c..eb31b6eb976 100644 --- a/pkg/storage/utils/decomposedfs/decomposedfs.go +++ b/pkg/storage/utils/decomposedfs/decomposedfs.go @@ -577,7 +577,6 @@ func (fs *Decomposedfs) ListStorageSpaces(ctx context.Context, filter []*provide // do not list shares as spaces for the owner continue } - space.Name = n.Name } else { space.Name = "root" // do not expose the id as name, this is the root of a space // TODO read from extended attribute for project / group spaces