reuse existing metadata storage

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
Jörn Friedrich Dreyer
2021-12-07 12:46:48 +00:00
parent 31bf29cb26
commit 550b0bbfea
2 changed files with 13 additions and 14 deletions
+9 -10
View File
@@ -35,7 +35,6 @@ type CS3Repo struct {
tm token.Manager tm token.Manager
storageProvider provider.ProviderAPIClient storageProvider provider.ProviderAPIClient
metadataStorage metadatastorage.MetadataStorage metadataStorage metadatastorage.MetadataStorage
space *provider.StorageSpace
} }
// NewCS3Repo creates a new cs3 repo // NewCS3Repo creates a new cs3 repo
@@ -104,13 +103,13 @@ func (r *CS3Repo) Init() (err error) {
case err != nil: case err != nil:
return err return err
case cssr.Status.Code == v1beta11.Code_CODE_OK: case cssr.Status.Code == v1beta11.Code_CODE_OK:
// continue r.metadataStorage.SpaceRoot = cssr.StorageSpace.Root
case cssr.Status.Code != v1beta11.Code_CODE_ALREADY_EXISTS: case cssr.Status.Code == v1beta11.Code_CODE_ALREADY_EXISTS:
// continue // TODO make CreateStorageSpace return existing space?
r.metadataStorage.SpaceRoot = &provider.ResourceId{StorageId: r.cfg.ServiceUser.UUID, OpaqueId: r.cfg.ServiceUser.UUID}
default: default:
return errtypes.NewErrtypeFromStatus(cssr.Status) return errtypes.NewErrtypeFromStatus(cssr.Status)
} }
r.metadataStorage.SpaceRoot = cssr.StorageSpace.Root
return nil 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{ res, err := r.storageProvider.ListContainer(ctx, &provider.ListContainerRequest{
Ref: &provider.Reference{ Ref: &provider.Reference{
ResourceId: r.space.Root, ResourceId: r.metadataStorage.SpaceRoot,
Path: utils.MakeRelativePath(accountsFolder), 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{ resp, err := r.storageProvider.Delete(ctx, &provider.DeleteRequest{
Ref: &provider.Reference{ Ref: &provider.Reference{
ResourceId: r.space.Root, ResourceId: r.metadataStorage.SpaceRoot,
Path: utils.MakeRelativePath(filepath.Join("/", accountsFolder, id)), 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{ res, err := r.storageProvider.ListContainer(ctx, &provider.ListContainerRequest{
Ref: &provider.Reference{ Ref: &provider.Reference{
ResourceId: r.space.Root, ResourceId: r.metadataStorage.SpaceRoot,
Path: utils.MakeRelativePath(groupsFolder), 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{ resp, err := r.storageProvider.Delete(ctx, &provider.DeleteRequest{
Ref: &provider.Reference{ Ref: &provider.Reference{
ResourceId: r.space.Root, ResourceId: r.metadataStorage.SpaceRoot,
Path: utils.MakeRelativePath(filepath.Join(groupsFolder, id)), 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 { 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. // MakeDirIfNotExist will create a root node in the metadata storage. Requires an authenticated context.
+4 -4
View File
@@ -585,8 +585,8 @@ func DefaultConfig() *Config {
EnableMedialSearch: false, EnableMedialSearch: false,
}, },
OCDav: OCDav{ OCDav: OCDav{
WebdavNamespace: "/home/", WebdavNamespace: "/users/{{.Id.OpaqueId}}",
DavFilesNamespace: "/users/", DavFilesNamespace: "/users",
}, },
Archiver: Archiver{ Archiver: Archiver{
MaxNumFiles: 10000, MaxNumFiles: 10000,
@@ -751,7 +751,7 @@ func DefaultConfig() *Config {
ArchiverPrefix: "archiver", ArchiverPrefix: "archiver",
DatagatewayPrefix: "data", DatagatewayPrefix: "data",
Favorites: false, Favorites: false,
OCDavInsecure: false, OCDavInsecure: true,
OCDavPrefix: "", OCDavPrefix: "",
OCSPrefix: "ocs", OCSPrefix: "ocs",
OCSSharePrefix: "/Shares", OCSSharePrefix: "/Shares",
@@ -782,7 +782,7 @@ func DefaultConfig() *Config {
EtagCacheTTL: 0, EtagCacheTTL: 0,
}, },
StorageRegistry: StorageRegistry{ StorageRegistry: StorageRegistry{
Driver: "static", Driver: "spaces",
HomeProvider: "/home", HomeProvider: "/home",
JSON: "", JSON: "",
}, },