From 2eadbe59a9648d1c5908ae4bb477da9f04186bd0 Mon Sep 17 00:00:00 2001 From: David Christofas Date: Tue, 27 Oct 2020 11:59:25 +0100 Subject: [PATCH] handle stat errors Signed-off-by: David Christofas --- ocs/pkg/server/http/svc_test.go | 6 +++++- ocs/pkg/service/v0/users.go | 28 ++++++++++++++++++---------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/ocs/pkg/server/http/svc_test.go b/ocs/pkg/server/http/svc_test.go index 1a602f1ed7c..dddfcb2d911 100644 --- a/ocs/pkg/server/http/svc_test.go +++ b/ocs/pkg/server/http/svc_test.go @@ -7,6 +7,7 @@ import ( "encoding/xml" "fmt" gatewayv1beta1 "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" + rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" providerv1beta1 "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" ggrpc "google.golang.org/grpc" "github.com/cs3org/reva/pkg/token/manager/jwt" @@ -484,10 +485,13 @@ func(c mockRevaClient) GetHome(ctx context.Context, req *providerv1beta1.GetHome func(c mockRevaClient) Stat(ctx context.Context, req *providerv1beta1.StatRequest, options ...ggrpc.CallOption) (*providerv1beta1.StatResponse, error){ return &providerv1beta1.StatResponse{ Info: &providerv1beta1.ResourceInfo{Id: &providerv1beta1.ResourceId{ - OpaqueId: "", + OpaqueId: "", StorageId: "", }, }, + Status: &rpcv1beta1.Status{ + Code: rpcv1beta1.Code_CODE_OK, + }, }, nil } diff --git a/ocs/pkg/service/v0/users.go b/ocs/pkg/service/v0/users.go index dd57adac40e..4374cfe9853 100644 --- a/ocs/pkg/service/v0/users.go +++ b/ocs/pkg/service/v0/users.go @@ -6,6 +6,7 @@ import ( "encoding/hex" "fmt" revauser "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" + rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" types "github.com/cs3org/go-cs3apis/cs3/types/v1beta1" "github.com/cs3org/reva/pkg/token" @@ -299,18 +300,25 @@ func (o Ocs) DeleteUser(w http.ResponseWriter, r *http.Request) { return } - delReq := &provider.DeleteRequest{ - Ref: &provider.Reference { - Spec: &provider.Reference_Id{ - Id: statResp.Info.Id, + if statResp.Status.Code == rpcv1beta1.Code_CODE_OK { + delReq := &provider.DeleteRequest{ + Ref: &provider.Reference { + Spec: &provider.Reference_Id{ + Id: statResp.Info.Id, + }, }, - }, - } + } - _, err = o.revaClient.Delete(ctx, delReq) - if err != nil { - render.Render(w,r, response.ErrRender(data.MetaServerError.StatusCode, errors.Wrap(err, "could not delete home").Error())) - return + _, err = o.revaClient.Delete(ctx, delReq) + if err != nil { + render.Render(w,r, response.ErrRender(data.MetaServerError.StatusCode, errors.Wrap(err, "could not delete home").Error())) + return + } + } else { + o.logger.Debug(). + Str("stat_status_code", statResp.Status.Code.String()). + Str("stat_message", statResp.Status.Message). + Msg("DeleteUser: stat failed") } req := accounts.DeleteAccountRequest{