From 2b76accc42aac1adb7b9966feb5ff6b99e81fcec Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Fri, 23 Oct 2020 16:51:53 +0200 Subject: [PATCH] Refactor delete into helper --- .../pkg/indexer/index/cs3/autoincrement.go | 15 +---------- accounts/pkg/indexer/index/cs3/helper.go | 26 +++++++++++++++++++ accounts/pkg/indexer/index/cs3/non_unique.go | 16 +----------- accounts/pkg/indexer/index/cs3/unique.go | 15 +---------- .../unreleased/accounts-index-rebuild.md | 7 +++++ 5 files changed, 36 insertions(+), 43 deletions(-) create mode 100644 accounts/pkg/indexer/index/cs3/helper.go create mode 100644 changelog/unreleased/accounts-index-rebuild.md diff --git a/accounts/pkg/indexer/index/cs3/autoincrement.go b/accounts/pkg/indexer/index/cs3/autoincrement.go index ded4d9aa1..d1d9a9268 100644 --- a/accounts/pkg/indexer/index/cs3/autoincrement.go +++ b/accounts/pkg/indexer/index/cs3/autoincrement.go @@ -15,7 +15,6 @@ import ( idxerrs "github.com/owncloud/ocis/accounts/pkg/indexer/errors" user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" - rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" @@ -403,17 +402,5 @@ func (idx *Autoincrement) Delete() error { return err } - res, err := idx.storageProvider.Delete(ctx, &provider.DeleteRequest{ - Ref: &provider.Reference{ - Spec: &provider.Reference_Path{Path: path.Join("/meta", idx.indexRootDir)}, - }, - }) - if err != nil { - return err - } - if res.Status.Code != rpc.Code_CODE_OK { - return fmt.Errorf("error deleting index root dir: %v", idx.indexRootDir) - } - - return nil + return deleteIndexRoot(ctx, idx.storageProvider, idx.indexRootDir) } diff --git a/accounts/pkg/indexer/index/cs3/helper.go b/accounts/pkg/indexer/index/cs3/helper.go new file mode 100644 index 000000000..186e57034 --- /dev/null +++ b/accounts/pkg/indexer/index/cs3/helper.go @@ -0,0 +1,26 @@ +package cs3 + +import ( + "context" + "fmt" + "path" + + rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" + provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" +) + +func deleteIndexRoot(ctx context.Context, storageProvider provider.ProviderAPIClient, indexRootDir string) error { + res, err := storageProvider.Delete(ctx, &provider.DeleteRequest{ + Ref: &provider.Reference{ + Spec: &provider.Reference_Path{Path: path.Join("/meta", indexRootDir)}, + }, + }) + if err != nil { + return err + } + if res.Status.Code != rpc.Code_CODE_OK { + return fmt.Errorf("error deleting index root dir: %v", indexRootDir) + } + + return nil +} diff --git a/accounts/pkg/indexer/index/cs3/non_unique.go b/accounts/pkg/indexer/index/cs3/non_unique.go index d0a9dd923..f0a6ea683 100644 --- a/accounts/pkg/indexer/index/cs3/non_unique.go +++ b/accounts/pkg/indexer/index/cs3/non_unique.go @@ -10,8 +10,6 @@ import ( "path/filepath" "strings" - rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" - user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" @@ -418,17 +416,5 @@ func (idx *NonUnique) Delete() error { return err } - res, err := idx.storageProvider.Delete(ctx, &provider.DeleteRequest{ - Ref: &provider.Reference{ - Spec: &provider.Reference_Path{Path: path.Join("/meta", idx.indexRootDir)}, - }, - }) - if err != nil { - return err - } - if res.Status.Code != rpc.Code_CODE_OK { - return fmt.Errorf("error deleting index root dir: %v", idx.indexRootDir) - } - - return nil + return deleteIndexRoot(ctx, idx.storageProvider, idx.indexRootDir) } diff --git a/accounts/pkg/indexer/index/cs3/unique.go b/accounts/pkg/indexer/index/cs3/unique.go index 9768eac6b..ae007f2d1 100644 --- a/accounts/pkg/indexer/index/cs3/unique.go +++ b/accounts/pkg/indexer/index/cs3/unique.go @@ -11,7 +11,6 @@ import ( "strings" user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" - rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" @@ -388,17 +387,5 @@ func (idx *Unique) Delete() error { return err } - res, err := idx.storageProvider.Delete(ctx, &provider.DeleteRequest{ - Ref: &provider.Reference{ - Spec: &provider.Reference_Path{Path: path.Join("/meta", idx.indexRootDir)}, - }, - }) - if err != nil { - return err - } - if res.Status.Code != rpc.Code_CODE_OK { - return fmt.Errorf("error deleting index root dir: %v", idx.indexRootDir) - } - - return nil + return deleteIndexRoot(ctx, idx.storageProvider, idx.indexRootDir) } diff --git a/changelog/unreleased/accounts-index-rebuild.md b/changelog/unreleased/accounts-index-rebuild.md new file mode 100644 index 000000000..4b5d0b909 --- /dev/null +++ b/changelog/unreleased/accounts-index-rebuild.md @@ -0,0 +1,7 @@ +Change: Rebuild index command for accounts + +Tags: accounts + +The index for the accounts service can now be rebuilt by running the cli command `./bin/ocis accounts rebuild`. It deletes all configured indices and rebuilds them from the documents found on storage. + +https://github.com/owncloud/ocis/pull/748