Skip to content

Commit

Permalink
update reva to include decomposedfs nodes-per-space
Browse files Browse the repository at this point in the history
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
  • Loading branch information
butonic committed Feb 24, 2022
1 parent d92dc89 commit 75e2df7
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 47 deletions.
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -268,3 +268,5 @@ require (

// we need to use a fork to make the windows build pass
replace github.com/pkg/xattr => github.com/micbar/xattr v0.4.6-0.20220215112335-88e74d648fb7

replace github.com/cs3org/reva => github.com/butonic/reva v0.0.0-20220224164715-9139480decf4
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,8 @@ github.com/bmizerany/pat v0.0.0-20210406213842-e4b6760bdd6f/go.mod h1:8rLXio+Wji
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs=
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/butonic/reva v0.0.0-20220224164715-9139480decf4 h1:AEyl1KdfcdXehS4SJU3e8e34navAImRKbXz5BWAOxS4=
github.com/butonic/reva v0.0.0-20220224164715-9139480decf4/go.mod h1:M+Nausi93NaMDoinwiUX/Ekgrp/RrYv715FG5KrIarY=
github.com/c-bata/go-prompt v0.2.5/go.mod h1:vFnjEGDIIA/Lib7giyE4E9c50Lvl8j0S+7FVlAwDAVw=
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
Expand Down Expand Up @@ -339,8 +341,6 @@ github.com/crewjam/saml v0.4.5/go.mod h1:qCJQpUtZte9R1ZjUBcW8qtCNlinbO363ooNl02S
github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4=
github.com/cs3org/go-cs3apis v0.0.0-20220126114148-64c025ccdd19 h1:1jqPH58jCxvbaJ9WLIJ7W2/m622bWS6ChptzljSG6IQ=
github.com/cs3org/go-cs3apis v0.0.0-20220126114148-64c025ccdd19/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY=
github.com/cs3org/reva v1.16.1-0.20220221135950-8cc813ecfc4c h1:52qF91Pu/jUVVWgZo4kl2GaQT5SPCdV0b5s6SQG2jrM=
github.com/cs3org/reva v1.16.1-0.20220221135950-8cc813ecfc4c/go.mod h1:M+Nausi93NaMDoinwiUX/Ekgrp/RrYv715FG5KrIarY=
github.com/cubewise-code/go-mime v0.0.0-20200519001935-8c5762b177d8 h1:Z9lwXumT5ACSmJ7WGnFl+OMLLjpz5uR2fyz7dC255FI=
github.com/cubewise-code/go-mime v0.0.0-20200519001935-8c5762b177d8/go.mod h1:4abs/jPXcmJzYoYGF91JF9Uq9s/KL5n1jvFDix8KcqY=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
Expand Down
3 changes: 3 additions & 0 deletions graph/pkg/service/v0/drives.go
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,9 @@ func (g Graph) ListStorageSpacesWithFilters(ctx context.Context, filters []*stor
}

func (g Graph) cs3StorageSpaceToDrive(baseURL *url.URL, space *storageprovider.StorageSpace) (*libregraph.Drive, error) {
if space.Root == nil {
return nil, fmt.Errorf("space has no root")
}
rootID := resourceid.OwnCloudResourceIDWrap(space.Root)

var permissions []libregraph.Permission
Expand Down
3 changes: 3 additions & 0 deletions ocis-pkg/metadata_storage/metadata_storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ func (ms MetadataStorage) SimpleUpload(ctx context.Context, uploadpath string, c
if err != nil {
return err
}
if res.Status.Code != v1beta11.Code_CODE_OK {
return errtypes.NewErrtypeFromStatus(res.Status)
}

var endpoint string

Expand Down
45 changes: 45 additions & 0 deletions settings/pkg/service/v0/settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import (
)

const (
// BundleUUIDRoleMetadata represents the metadata user role
BundleUUIDRoleMetadata = "95cb8724-03b2-11eb-a0a6-c33ef8ef53ad"

// BundleUUIDRoleAdmin represents the admin role
BundleUUIDRoleAdmin = "71881883-1768-46bd-a24d-a356a2afdf7f"

Expand Down Expand Up @@ -366,6 +369,24 @@ func generatePermissionRequests() []*settingssvc.AddSettingToBundleRequest {
},
},
},
{
BundleId: BundleUUIDRoleUser,
Setting: &settingsmsg.Setting{
Id: CreateSpacePermissionID,
Name: CreateSpacePermissionName,
DisplayName: "Create own Space",
Description: "This permission allows to create a space owned by the current user.",
Resource: &settingsmsg.Resource{
Type: settingsmsg.Resource_TYPE_SYSTEM, // TODO resource type space? self? me? own?
},
Value: &settingsmsg.Setting_PermissionValue{
PermissionValue: &settingsmsg.Permission{
Operation: settingsmsg.Permission_OPERATION_CREATE,
Constraint: settingsmsg.Permission_CONSTRAINT_OWN,
},
},
},
},
{
BundleId: BundleUUIDRoleAdmin,
Setting: &settingsmsg.Setting{
Expand Down Expand Up @@ -402,11 +423,35 @@ func generatePermissionRequests() []*settingssvc.AddSettingToBundleRequest {
},
},
},
{
BundleId: BundleUUIDRoleMetadata,
Setting: &settingsmsg.Setting{
Id: CreateSpacePermissionID,
Name: CreateSpacePermissionName,
DisplayName: "Create own Space",
Description: "This permission allows to create a space owned by the current user.",
Resource: &settingsmsg.Resource{
Type: settingsmsg.Resource_TYPE_SYSTEM, // TODO resource type space? self? me? own?
},
Value: &settingsmsg.Setting_PermissionValue{
PermissionValue: &settingsmsg.Permission{
Operation: settingsmsg.Permission_OPERATION_CREATE,
Constraint: settingsmsg.Permission_CONSTRAINT_OWN,
},
},
},
},
}
}

func defaultRoleAssignments() []*settingsmsg.UserRoleAssignment {
return []*settingsmsg.UserRoleAssignment{
// accounts service user for the metadata user is allowed to create spaces

{
AccountUuid: "95cb8724-03b2-11eb-a0a6-c33ef8ef53ad",
RoleId: BundleUUIDRoleAdmin,
},
// default admin users
{
AccountUuid: "058bff95-6708-4fe5-91e4-9ea3d377588b",
Expand Down
5 changes: 2 additions & 3 deletions storage/pkg/command/storagedrivers/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,10 @@ func MetadataDrivers(cfg *config.Config) map[string]interface{} {
},
"ocis": map[string]interface{}{
"root": cfg.Reva.MetadataStorage.OCIS.Root,
"enable_home": false,
"user_layout": cfg.Reva.MetadataStorage.OCIS.UserLayout,
"treetime_accounting": false,
"treesize_accounting": false,
"owner": cfg.Reva.MetadataStorage.OCIS.ServiceUserUUID, // the accounts service system account uuid
"permissionssvc": cfg.Reva.Permissions.Endpoint,
},
"s3": map[string]interface{}{
"region": cfg.Reva.MetadataStorage.S3.Region,
Expand All @@ -69,7 +68,7 @@ func MetadataDrivers(cfg *config.Config) map[string]interface{} {
"user_layout": cfg.Reva.MetadataStorage.S3NG.UserLayout,
"treetime_accounting": false,
"treesize_accounting": false,
"owner": cfg.Reva.MetadataStorage.S3NG.ServiceUserUUID, // the accounts service system account uuid
"permissionssvc": cfg.Reva.Permissions.Endpoint,
"s3.region": cfg.Reva.MetadataStorage.S3NG.Region,
"s3.access_key": cfg.Reva.MetadataStorage.S3NG.AccessKey,
"s3.secret_key": cfg.Reva.MetadataStorage.S3NG.SecretKey,
Expand Down
6 changes: 2 additions & 4 deletions storage/pkg/command/storagedrivers/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,11 @@ func UserDrivers(cfg *config.Config) map[string]interface{} {
},
"ocis": map[string]interface{}{
"root": cfg.Reva.UserStorage.OCIS.Root,
"enable_home": false,
"user_layout": cfg.Reva.UserStorage.OCIS.UserLayout,
"share_folder": cfg.Reva.UserStorage.OCIS.ShareFolder,
"treetime_accounting": true,
"treesize_accounting": true,
"owner": cfg.Reva.UserStorage.OCIS.ServiceUserUUID, // the accounts service system account uuid
"permissionssvc": cfg.Reva.Permissions.Endpoint,
},
"s3": map[string]interface{}{
"enable_home": false,
Expand All @@ -108,12 +107,11 @@ func UserDrivers(cfg *config.Config) map[string]interface{} {
},
"s3ng": map[string]interface{}{
"root": cfg.Reva.UserStorage.S3NG.Root,
"enable_home": false,
"user_layout": cfg.Reva.UserStorage.S3NG.UserLayout,
"share_folder": cfg.Reva.UserStorage.S3NG.ShareFolder,
"treetime_accounting": true,
"treesize_accounting": true,
"owner": cfg.Reva.UserStorage.S3NG.ServiceUserUUID, // the accounts service system account uuid
"permissionssvc": cfg.Reva.Permissions.Endpoint,
"s3.region": cfg.Reva.UserStorage.S3NG.Region,
"s3.access_key": cfg.Reva.UserStorage.S3NG.AccessKey,
"s3.secret_key": cfg.Reva.UserStorage.S3NG.SecretKey,
Expand Down
29 changes: 5 additions & 24 deletions storage/pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,8 +307,6 @@ type DriverEOS struct {
// DriverOCIS defines the available oCIS storage driver configuration.
type DriverOCIS struct {
DriverCommon

ServiceUserUUID string `ocisConfig:"service_user_uuid"`
}

// DriverOwnCloudSQL defines the available ownCloudSQL storage driver configuration.
Expand Down Expand Up @@ -338,12 +336,11 @@ type DriverS3 struct {
type DriverS3NG struct {
DriverCommon

ServiceUserUUID string `ocisConfig:"service_user_uuid"`
Region string `ocisConfig:"region"`
AccessKey string `ocisConfig:"access_key"`
SecretKey string `ocisConfig:"secret_key"`
Endpoint string `ocisConfig:"endpoint"`
Bucket string `ocisConfig:"bucket"`
Region string `ocisConfig:"region"`
AccessKey string `ocisConfig:"access_key"`
SecretKey string `ocisConfig:"secret_key"`
Endpoint string `ocisConfig:"endpoint"`
Bucket string `ocisConfig:"bucket"`
}

// OIDC defines the available OpenID Connect configuration.
Expand Down Expand Up @@ -1531,10 +1528,6 @@ func structMappings(cfg *Config) []shared.EnvBinding {
EnvVars: []string{"STORAGE_USERS_DRIVER_OCIS_SHARE_FOLDER"},
Destination: &cfg.Reva.UserStorage.OCIS.ShareFolder,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_OCIS_SERVICE_USER_UUID"},
Destination: &cfg.Reva.UserStorage.OCIS.ServiceUserUUID,
},
// driver owncloud sql
{
EnvVars: []string{"STORAGE_USERS_DRIVER_OWNCLOUDSQL_DATADIR"},
Expand Down Expand Up @@ -1604,10 +1597,6 @@ func structMappings(cfg *Config) []shared.EnvBinding {
EnvVars: []string{"STORAGE_USERS_DRIVER_S3NG_LAYOUT"},
Destination: &cfg.Reva.UserStorage.S3NG.UserLayout,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_S3NG_SERVICE_USER_UUID"},
Destination: &cfg.Reva.UserStorage.S3NG.ServiceUserUUID,
},
{
EnvVars: []string{"STORAGE_USERS_DRIVER_S3NG_SHARE_FOLDER"},
Destination: &cfg.Reva.UserStorage.S3NG.ShareFolder,
Expand Down Expand Up @@ -1718,10 +1707,6 @@ func structMappings(cfg *Config) []shared.EnvBinding {
EnvVars: []string{"STORAGE_METADATA_DRIVER_OCIS_LAYOUT"},
Destination: &cfg.Reva.MetadataStorage.OCIS.UserLayout,
},
{
EnvVars: []string{"STORAGE_METADATA_DRIVER_OCIS_SERVICE_USER_UUID"},
Destination: &cfg.Reva.MetadataStorage.OCIS.ServiceUserUUID,
},

// metadata driver s3
{
Expand Down Expand Up @@ -1754,10 +1739,6 @@ func structMappings(cfg *Config) []shared.EnvBinding {
EnvVars: []string{"STORAGE_METADATA_DRIVER_S3NG_LAYOUT"},
Destination: &cfg.Reva.MetadataStorage.S3NG.UserLayout,
},
{
EnvVars: []string{"STORAGE_METADATA_DRIVER_S3NG_SERVICE_USER_UUID"},
Destination: &cfg.Reva.MetadataStorage.S3NG.ServiceUserUUID,
},
{
EnvVars: []string{"STORAGE_METADATA_DRIVER_S3NG_REGION"},
Destination: &cfg.Reva.MetadataStorage.S3NG.Region,
Expand Down
24 changes: 10 additions & 14 deletions storage/pkg/config/defaultconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,20 +141,18 @@ func DefaultConfig() *Config {
UserLayout: defaultUserLayout,
EnableHome: false,
},
ServiceUserUUID: defaultServiceUserUUID,
Region: "default",
AccessKey: "",
SecretKey: "",
Endpoint: "",
Bucket: "",
Region: "default",
AccessKey: "",
SecretKey: "",
Endpoint: "",
Bucket: "",
},
OCIS: DriverOCIS{
DriverCommon: DriverCommon{
Root: path.Join(defaults.BaseDataPath(), "storage", "users"),
ShareFolder: defaultShareFolder,
UserLayout: defaultUserLayout,
},
ServiceUserUUID: defaultServiceUserUUID,
},
},
MetadataStorage: StorageConfig{
Expand Down Expand Up @@ -197,12 +195,11 @@ func DefaultConfig() *Config {
UserLayout: defaultUserLayout,
EnableHome: false,
},
ServiceUserUUID: defaultServiceUserUUID,
Region: "default",
AccessKey: "",
SecretKey: "",
Endpoint: "",
Bucket: "",
Region: "default",
AccessKey: "",
SecretKey: "",
Endpoint: "",
Bucket: "",
},
OCIS: DriverOCIS{
DriverCommon: DriverCommon{
Expand All @@ -211,7 +208,6 @@ func DefaultConfig() *Config {
UserLayout: defaultUserLayout,
EnableHome: false,
},
ServiceUserUUID: defaultServiceUserUUID,
},
},
Frontend: FrontendPort{
Expand Down

0 comments on commit 75e2df7

Please sign in to comment.