From 550b0bbfeaa2790fa90062fbf230b5e5b3a6b853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 3 Dec 2021 10:11:19 +0000 Subject: [PATCH] reuse existing metadata storage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- accounts/pkg/storage/cs3.go | 19 +++++++++---------- storage/pkg/config/config.go | 8 ++++---- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/accounts/pkg/storage/cs3.go b/accounts/pkg/storage/cs3.go index f6cb9f84d..7418b6082 100644 --- a/accounts/pkg/storage/cs3.go +++ b/accounts/pkg/storage/cs3.go @@ -35,7 +35,6 @@ type CS3Repo struct { tm token.Manager storageProvider provider.ProviderAPIClient metadataStorage metadatastorage.MetadataStorage - space *provider.StorageSpace } // NewCS3Repo creates a new cs3 repo @@ -104,13 +103,13 @@ func (r *CS3Repo) Init() (err error) { case err != nil: return err case cssr.Status.Code == v1beta11.Code_CODE_OK: - // continue - case cssr.Status.Code != v1beta11.Code_CODE_ALREADY_EXISTS: - // continue + r.metadataStorage.SpaceRoot = cssr.StorageSpace.Root + case cssr.Status.Code == v1beta11.Code_CODE_ALREADY_EXISTS: + // TODO make CreateStorageSpace return existing space? + r.metadataStorage.SpaceRoot = &provider.ResourceId{StorageId: r.cfg.ServiceUser.UUID, OpaqueId: r.cfg.ServiceUser.UUID} default: return errtypes.NewErrtypeFromStatus(cssr.Status) } - r.metadataStorage.SpaceRoot = cssr.StorageSpace.Root return nil } @@ -154,7 +153,7 @@ func (r CS3Repo) LoadAccounts(ctx context.Context, a *[]*proto.Account) (err err res, err := r.storageProvider.ListContainer(ctx, &provider.ListContainerRequest{ Ref: &provider.Reference{ - ResourceId: r.space.Root, + ResourceId: r.metadataStorage.SpaceRoot, Path: utils.MakeRelativePath(accountsFolder), }, }) @@ -195,7 +194,7 @@ func (r CS3Repo) DeleteAccount(ctx context.Context, id string) (err error) { resp, err := r.storageProvider.Delete(ctx, &provider.DeleteRequest{ Ref: &provider.Reference{ - ResourceId: r.space.Root, + ResourceId: r.metadataStorage.SpaceRoot, Path: utils.MakeRelativePath(filepath.Join("/", accountsFolder, id)), }, }) @@ -251,7 +250,7 @@ func (r CS3Repo) LoadGroups(ctx context.Context, g *[]*proto.Group) (err error) res, err := r.storageProvider.ListContainer(ctx, &provider.ListContainerRequest{ Ref: &provider.Reference{ - ResourceId: r.space.Root, + ResourceId: r.metadataStorage.SpaceRoot, Path: utils.MakeRelativePath(groupsFolder), }, }) @@ -292,7 +291,7 @@ func (r CS3Repo) DeleteGroup(ctx context.Context, id string) (err error) { resp, err := r.storageProvider.Delete(ctx, &provider.DeleteRequest{ Ref: &provider.Reference{ - ResourceId: r.space.Root, + ResourceId: r.metadataStorage.SpaceRoot, Path: utils.MakeRelativePath(filepath.Join(groupsFolder, id)), }, }) @@ -345,7 +344,7 @@ func (r CS3Repo) groupURL(id string) string { } func (r CS3Repo) makeRootDirIfNotExist(ctx context.Context, folder string) error { - return MakeDirIfNotExist(ctx, r.storageProvider, r.space.Root, folder) + return MakeDirIfNotExist(ctx, r.storageProvider, r.metadataStorage.SpaceRoot, folder) } // MakeDirIfNotExist will create a root node in the metadata storage. Requires an authenticated context. diff --git a/storage/pkg/config/config.go b/storage/pkg/config/config.go index 22b502110..7c19cbc53 100644 --- a/storage/pkg/config/config.go +++ b/storage/pkg/config/config.go @@ -585,8 +585,8 @@ func DefaultConfig() *Config { EnableMedialSearch: false, }, OCDav: OCDav{ - WebdavNamespace: "/home/", - DavFilesNamespace: "/users/", + WebdavNamespace: "/users/{{.Id.OpaqueId}}", + DavFilesNamespace: "/users", }, Archiver: Archiver{ MaxNumFiles: 10000, @@ -751,7 +751,7 @@ func DefaultConfig() *Config { ArchiverPrefix: "archiver", DatagatewayPrefix: "data", Favorites: false, - OCDavInsecure: false, + OCDavInsecure: true, OCDavPrefix: "", OCSPrefix: "ocs", OCSSharePrefix: "/Shares", @@ -782,7 +782,7 @@ func DefaultConfig() *Config { EtagCacheTTL: 0, }, StorageRegistry: StorageRegistry{ - Driver: "static", + Driver: "spaces", HomeProvider: "/home", JSON: "", },