reuse existing metadata storage
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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: "",
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user