add ocis driver, arbitrary storage driver rules
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
@@ -885,9 +885,6 @@ Usage: `ocis-reva gateway [command options] [arguments...]`
|
|||||||
--share-folder | $REVA_GATEWAY_SHARE_FOLDER
|
--share-folder | $REVA_GATEWAY_SHARE_FOLDER
|
||||||
: mount shares in this folder of the home storage provider. Default: `Shares`.
|
: mount shares in this folder of the home storage provider. Default: `Shares`.
|
||||||
|
|
||||||
--link_grants_file | $REVA_GATEWAY_LINK_GRANTS_FILE
|
|
||||||
: when using a json manager, file to use as json serialized database. Default: `/var/tmp/reva/link_grants.json`.
|
|
||||||
|
|
||||||
--disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN
|
--disable-home-creation-on-login | $REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN
|
||||||
: Disable creation of home folder on login.
|
: Disable creation of home folder on login.
|
||||||
|
|
||||||
|
|||||||
+23
-18
@@ -7,10 +7,10 @@ import (
|
|||||||
func drivers(cfg *config.Config) map[string]interface{} {
|
func drivers(cfg *config.Config) map[string]interface{} {
|
||||||
return map[string]interface{}{
|
return map[string]interface{}{
|
||||||
"eos": map[string]interface{}{
|
"eos": map[string]interface{}{
|
||||||
"namespace": cfg.Reva.Storages.Common.Root,
|
"namespace": cfg.Reva.Storages.EOS.Root,
|
||||||
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
||||||
"uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace,
|
"uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace,
|
||||||
"share_folder": cfg.Reva.Storages.Common.ShareFolder,
|
"share_folder": cfg.Reva.Storages.EOS.ShareFolder,
|
||||||
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
||||||
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
||||||
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
||||||
@@ -26,10 +26,10 @@ func drivers(cfg *config.Config) map[string]interface{} {
|
|||||||
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
||||||
},
|
},
|
||||||
"eoshome": map[string]interface{}{
|
"eoshome": map[string]interface{}{
|
||||||
"namespace": cfg.Reva.Storages.Common.Root,
|
"namespace": cfg.Reva.Storages.EOS.Root,
|
||||||
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
||||||
"uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace,
|
"uploads_namespace": cfg.Reva.Storages.EOS.UploadsNamespace,
|
||||||
"share_folder": cfg.Reva.Storages.Common.ShareFolder,
|
"share_folder": cfg.Reva.Storages.EOS.ShareFolder,
|
||||||
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
||||||
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
||||||
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
||||||
@@ -38,7 +38,7 @@ func drivers(cfg *config.Config) map[string]interface{} {
|
|||||||
"sec_protocol": cfg.Reva.Storages.EOS.SecProtocol,
|
"sec_protocol": cfg.Reva.Storages.EOS.SecProtocol,
|
||||||
"keytab": cfg.Reva.Storages.EOS.Keytab,
|
"keytab": cfg.Reva.Storages.EOS.Keytab,
|
||||||
"single_username": cfg.Reva.Storages.EOS.SingleUsername,
|
"single_username": cfg.Reva.Storages.EOS.SingleUsername,
|
||||||
"user_layout": cfg.Reva.Storages.Common.UserLayout,
|
"user_layout": cfg.Reva.Storages.EOS.UserLayout,
|
||||||
"enable_logging": cfg.Reva.Storages.EOS.EnableLogging,
|
"enable_logging": cfg.Reva.Storages.EOS.EnableLogging,
|
||||||
"show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles,
|
"show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles,
|
||||||
"force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode,
|
"force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode,
|
||||||
@@ -46,9 +46,9 @@ func drivers(cfg *config.Config) map[string]interface{} {
|
|||||||
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
||||||
},
|
},
|
||||||
"eosgrpc": map[string]interface{}{
|
"eosgrpc": map[string]interface{}{
|
||||||
"namespace": cfg.Reva.Storages.Common.Root,
|
"namespace": cfg.Reva.Storages.EOS.Root,
|
||||||
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
"shadow_namespace": cfg.Reva.Storages.EOS.ShadowNamespace,
|
||||||
"share_folder": cfg.Reva.Storages.Common.ShareFolder,
|
"share_folder": cfg.Reva.Storages.EOS.ShareFolder,
|
||||||
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
"eos_binary": cfg.Reva.Storages.EOS.EosBinary,
|
||||||
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
"xrdcopy_binary": cfg.Reva.Storages.EOS.XrdcopyBinary,
|
||||||
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
"master_url": cfg.Reva.Storages.EOS.MasterURL,
|
||||||
@@ -58,38 +58,43 @@ func drivers(cfg *config.Config) map[string]interface{} {
|
|||||||
"sec_protocol": cfg.Reva.Storages.EOS.SecProtocol,
|
"sec_protocol": cfg.Reva.Storages.EOS.SecProtocol,
|
||||||
"keytab": cfg.Reva.Storages.EOS.Keytab,
|
"keytab": cfg.Reva.Storages.EOS.Keytab,
|
||||||
"single_username": cfg.Reva.Storages.EOS.SingleUsername,
|
"single_username": cfg.Reva.Storages.EOS.SingleUsername,
|
||||||
"user_layout": cfg.Reva.Storages.Common.UserLayout,
|
"user_layout": cfg.Reva.Storages.EOS.UserLayout,
|
||||||
"enable_logging": cfg.Reva.Storages.EOS.EnableLogging,
|
"enable_logging": cfg.Reva.Storages.EOS.EnableLogging,
|
||||||
"show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles,
|
"show_hidden_sys_files": cfg.Reva.Storages.EOS.ShowHiddenSysFiles,
|
||||||
"force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode,
|
"force_single_user_mode": cfg.Reva.Storages.EOS.ForceSingleUserMode,
|
||||||
"use_keytab": cfg.Reva.Storages.EOS.UseKeytab,
|
"use_keytab": cfg.Reva.Storages.EOS.UseKeytab,
|
||||||
"enable_home": cfg.Reva.Storages.Common.EnableHome,
|
"enable_home": cfg.Reva.Storages.EOS.EnableHome,
|
||||||
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
"gatewaysvc": cfg.Reva.Storages.EOS.GatewaySVC,
|
||||||
},
|
},
|
||||||
"local": map[string]interface{}{
|
"local": map[string]interface{}{
|
||||||
"root": cfg.Reva.Storages.Common.Root,
|
"root": cfg.Reva.Storages.Local.Root,
|
||||||
"share_folder": cfg.Reva.Storages.Common.ShareFolder,
|
"share_folder": cfg.Reva.Storages.Local.ShareFolder,
|
||||||
},
|
},
|
||||||
"localhome": map[string]interface{}{
|
"localhome": map[string]interface{}{
|
||||||
"root": cfg.Reva.Storages.Common.Root,
|
"root": cfg.Reva.Storages.Local.Root,
|
||||||
"share_folder": cfg.Reva.Storages.Common.ShareFolder,
|
"share_folder": cfg.Reva.Storages.Local.ShareFolder,
|
||||||
"user_layout": cfg.Reva.Storages.Common.UserLayout,
|
"user_layout": cfg.Reva.Storages.Local.UserLayout,
|
||||||
},
|
},
|
||||||
"owncloud": map[string]interface{}{
|
"owncloud": map[string]interface{}{
|
||||||
"datadirectory": cfg.Reva.Storages.Common.Root,
|
"datadirectory": cfg.Reva.Storages.OwnCloud.Root,
|
||||||
"scan": cfg.Reva.Storages.OwnCloud.Scan,
|
"scan": cfg.Reva.Storages.OwnCloud.Scan,
|
||||||
"redis": cfg.Reva.Storages.OwnCloud.Redis,
|
"redis": cfg.Reva.Storages.OwnCloud.Redis,
|
||||||
"enable_home": cfg.Reva.Storages.Common.EnableHome,
|
"enable_home": cfg.Reva.Storages.OwnCloud.EnableHome,
|
||||||
"user_layout": cfg.Reva.Storages.Common.UserLayout,
|
"user_layout": cfg.Reva.Storages.OwnCloud.UserLayout,
|
||||||
"userprovidersvc": cfg.Reva.Users.URL,
|
"userprovidersvc": cfg.Reva.Users.URL,
|
||||||
},
|
},
|
||||||
|
"ocis": map[string]interface{}{
|
||||||
|
"root": cfg.Reva.Storages.Common.Root,
|
||||||
|
"enable_home": cfg.Reva.Storages.Common.EnableHome,
|
||||||
|
"user_layout": cfg.Reva.Storages.Common.UserLayout,
|
||||||
|
},
|
||||||
"s3": map[string]interface{}{
|
"s3": map[string]interface{}{
|
||||||
"region": cfg.Reva.Storages.S3.Region,
|
"region": cfg.Reva.Storages.S3.Region,
|
||||||
"access_key": cfg.Reva.Storages.S3.AccessKey,
|
"access_key": cfg.Reva.Storages.S3.AccessKey,
|
||||||
"secret_key": cfg.Reva.Storages.S3.SecretKey,
|
"secret_key": cfg.Reva.Storages.S3.SecretKey,
|
||||||
"endpoint": cfg.Reva.Storages.S3.Endpoint,
|
"endpoint": cfg.Reva.Storages.S3.Endpoint,
|
||||||
"bucket": cfg.Reva.Storages.S3.Bucket,
|
"bucket": cfg.Reva.Storages.S3.Bucket,
|
||||||
"prefix": cfg.Reva.Storages.Common.Root,
|
"prefix": cfg.Reva.Storages.S3.Root,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-23
@@ -5,6 +5,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"path"
|
"path"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/cs3org/reva/cmd/revad/runtime"
|
"github.com/cs3org/reva/cmd/revad/runtime"
|
||||||
@@ -25,6 +26,7 @@ func Gateway(cfg *config.Config) *cli.Command {
|
|||||||
Flags: flagset.GatewayWithConfig(cfg),
|
Flags: flagset.GatewayWithConfig(cfg),
|
||||||
Before: func(c *cli.Context) error {
|
Before: func(c *cli.Context) error {
|
||||||
cfg.Reva.Gateway.Services = c.StringSlice("service")
|
cfg.Reva.Gateway.Services = c.StringSlice("service")
|
||||||
|
cfg.Reva.StorageRegistry.Rules = c.StringSlice("storage-registry-rule")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
@@ -104,8 +106,6 @@ func Gateway(cfg *config.Config) *cli.Command {
|
|||||||
"commit_share_to_storage_grant": cfg.Reva.Gateway.CommitShareToStorageGrant,
|
"commit_share_to_storage_grant": cfg.Reva.Gateway.CommitShareToStorageGrant,
|
||||||
"commit_share_to_storage_ref": cfg.Reva.Gateway.CommitShareToStorageRef,
|
"commit_share_to_storage_ref": cfg.Reva.Gateway.CommitShareToStorageRef,
|
||||||
"share_folder": cfg.Reva.Gateway.ShareFolder, // ShareFolder is the location where to create shares in the recipient's storage provider.
|
"share_folder": cfg.Reva.Gateway.ShareFolder, // ShareFolder is the location where to create shares in the recipient's storage provider.
|
||||||
// public links
|
|
||||||
"link_grants_file": cfg.Reva.Gateway.LinkGrants,
|
|
||||||
// other
|
// other
|
||||||
"disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin,
|
"disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin,
|
||||||
"datagateway": urlWithScheme(cfg.Reva.DataGateway.URL),
|
"datagateway": urlWithScheme(cfg.Reva.DataGateway.URL),
|
||||||
@@ -125,28 +125,11 @@ func Gateway(cfg *config.Config) *cli.Command {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"storageregistry": map[string]interface{}{
|
"storageregistry": map[string]interface{}{
|
||||||
"driver": "static",
|
"driver": cfg.Reva.StorageRegistry.Driver,
|
||||||
"drivers": map[string]interface{}{
|
"drivers": map[string]interface{}{
|
||||||
"static": map[string]interface{}{
|
"static": map[string]interface{}{
|
||||||
"home_provider": cfg.Reva.Gateway.HomeProvider,
|
"home_provider": cfg.Reva.StorageRegistry.HomeProvider,
|
||||||
"rules": map[string]interface{}{
|
"rules": rules(cfg),
|
||||||
cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL,
|
|
||||||
cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL,
|
|
||||||
cfg.Reva.StorageHome.MountPath: cfg.Reva.StorageHome.URL,
|
|
||||||
cfg.Reva.StorageHome.MountID: cfg.Reva.StorageHome.URL,
|
|
||||||
cfg.Reva.StorageEOS.MountPath: cfg.Reva.StorageEOS.URL,
|
|
||||||
cfg.Reva.StorageEOS.MountID: cfg.Reva.StorageEOS.URL,
|
|
||||||
cfg.Reva.StorageOC.MountPath: cfg.Reva.StorageOC.URL,
|
|
||||||
cfg.Reva.StorageOC.MountID: cfg.Reva.StorageOC.URL,
|
|
||||||
cfg.Reva.StorageS3.MountPath: cfg.Reva.StorageS3.URL,
|
|
||||||
cfg.Reva.StorageS3.MountID: cfg.Reva.StorageS3.URL,
|
|
||||||
cfg.Reva.StorageWND.MountPath: cfg.Reva.StorageWND.URL,
|
|
||||||
cfg.Reva.StorageWND.MountID: cfg.Reva.StorageWND.URL,
|
|
||||||
cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL,
|
|
||||||
cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL,
|
|
||||||
"/public/": "localhost:10054",
|
|
||||||
"e1a73ede-549b-4226-abdf-40e69ca8230d": "localhost:10054",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -244,6 +227,17 @@ func Gateway(cfg *config.Config) *cli.Command {
|
|||||||
|
|
||||||
func rules(cfg *config.Config) map[string]interface{} {
|
func rules(cfg *config.Config) map[string]interface{} {
|
||||||
|
|
||||||
|
// if a list of rules is given it overrides the generated rules from below
|
||||||
|
if len(cfg.Reva.StorageRegistry.Rules) > 0 {
|
||||||
|
rules := map[string]interface{}{}
|
||||||
|
for i := range cfg.Reva.StorageRegistry.Rules {
|
||||||
|
parts := strings.SplitN(cfg.Reva.StorageRegistry.Rules[i], "=", 2)
|
||||||
|
rules[parts[0]] = parts[1]
|
||||||
|
}
|
||||||
|
return rules
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate rules based on default config
|
||||||
return map[string]interface{}{
|
return map[string]interface{}{
|
||||||
cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL,
|
cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL,
|
||||||
cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL,
|
cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL,
|
||||||
@@ -260,6 +254,6 @@ func rules(cfg *config.Config) map[string]interface{} {
|
|||||||
cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL,
|
cfg.Reva.StorageCustom.MountPath: cfg.Reva.StorageCustom.URL,
|
||||||
cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL,
|
cfg.Reva.StorageCustom.MountID: cfg.Reva.StorageCustom.URL,
|
||||||
cfg.Reva.StoragePublicLink.MountPath: cfg.Reva.StoragePublicLink.URL,
|
cfg.Reva.StoragePublicLink.MountPath: cfg.Reva.StoragePublicLink.URL,
|
||||||
cfg.Reva.StoragePublicLink.MountID: cfg.Reva.StoragePublicLink.URL,
|
// public link storage returns the mount id of the actual storage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-20
@@ -23,9 +23,14 @@ type Gateway struct {
|
|||||||
ShareFolder string
|
ShareFolder string
|
||||||
LinkGrants string
|
LinkGrants string
|
||||||
DisableHomeCreationOnLogin bool
|
DisableHomeCreationOnLogin bool
|
||||||
// include the home folder config for the storage registry
|
}
|
||||||
|
|
||||||
|
// StorageRegistry defines the available storage registry configuration
|
||||||
|
type StorageRegistry struct {
|
||||||
|
Driver string
|
||||||
// HomeProvider is the path in the global namespace that the static storage registry uses to determine the home storage
|
// HomeProvider is the path in the global namespace that the static storage registry uses to determine the home storage
|
||||||
HomeProvider string
|
HomeProvider string
|
||||||
|
Rules []string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sharing defines the available sharing configuration.
|
// Sharing defines the available sharing configuration.
|
||||||
@@ -100,15 +105,29 @@ type PublicStorage struct {
|
|||||||
// StorageConfig combines all available storage driver configuration parts.
|
// StorageConfig combines all available storage driver configuration parts.
|
||||||
type StorageConfig struct {
|
type StorageConfig struct {
|
||||||
EOS DriverEOS
|
EOS DriverEOS
|
||||||
Local DriverLocal
|
Local DriverCommon
|
||||||
OwnCloud DriverOwnCloud
|
OwnCloud DriverOwnCloud
|
||||||
S3 DriverS3
|
S3 DriverS3
|
||||||
Common DriverCommon
|
Common DriverCommon
|
||||||
// TODO checksums ... figure out what that is supposed to do
|
// TODO checksums ... figure out what that is supposed to do
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DriverCommon defines common driver configuration options.
|
||||||
|
type DriverCommon struct {
|
||||||
|
// Root is the absolute path to the location of the data
|
||||||
|
Root string
|
||||||
|
//ShareFolder defines the name of the folder jailing all shares
|
||||||
|
ShareFolder string
|
||||||
|
// UserLayout contains the template used to construct
|
||||||
|
// the internal path, eg: `{{substr 0 1 .Username}}/{{.Username}}`
|
||||||
|
UserLayout string
|
||||||
|
// EnableHome enables the creation of home directories.
|
||||||
|
EnableHome bool
|
||||||
|
}
|
||||||
|
|
||||||
// DriverEOS defines the available EOS driver configuration.
|
// DriverEOS defines the available EOS driver configuration.
|
||||||
type DriverEOS struct {
|
type DriverEOS struct {
|
||||||
|
DriverCommon
|
||||||
|
|
||||||
// ShadowNamespace for storing shadow data
|
// ShadowNamespace for storing shadow data
|
||||||
ShadowNamespace string
|
ShadowNamespace string
|
||||||
@@ -167,32 +186,18 @@ type DriverEOS struct {
|
|||||||
GatewaySVC string
|
GatewaySVC string
|
||||||
}
|
}
|
||||||
|
|
||||||
// DriverLocal defines the available local storage driver configuration.
|
|
||||||
type DriverLocal struct {
|
|
||||||
Root string
|
|
||||||
}
|
|
||||||
|
|
||||||
// DriverCommon defines common driver configuration options.
|
|
||||||
type DriverCommon struct {
|
|
||||||
// Root is the absolute path to the location of the data
|
|
||||||
Root string
|
|
||||||
//ShareFolder defines the name of the folder jailing all shares
|
|
||||||
ShareFolder string
|
|
||||||
// UserLayout contains the template used to construct
|
|
||||||
// the internal path, eg: `{{substr 0 1 .Username}}/{{.Username}}`
|
|
||||||
UserLayout string
|
|
||||||
// EnableHome enables the creation of home directories.
|
|
||||||
EnableHome bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// DriverOwnCloud defines the available ownCloud storage driver configuration.
|
// DriverOwnCloud defines the available ownCloud storage driver configuration.
|
||||||
type DriverOwnCloud struct {
|
type DriverOwnCloud struct {
|
||||||
|
DriverCommon
|
||||||
|
|
||||||
Redis string
|
Redis string
|
||||||
Scan bool
|
Scan bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// DriverS3 defines the available S3 storage driver configuration.
|
// DriverS3 defines the available S3 storage driver configuration.
|
||||||
type DriverS3 struct {
|
type DriverS3 struct {
|
||||||
|
DriverCommon
|
||||||
|
|
||||||
Region string
|
Region string
|
||||||
AccessKey string
|
AccessKey string
|
||||||
SecretKey string
|
SecretKey string
|
||||||
@@ -270,6 +275,7 @@ type Reva struct {
|
|||||||
Frontend FrontendPort
|
Frontend FrontendPort
|
||||||
DataGateway Port
|
DataGateway Port
|
||||||
Gateway Gateway
|
Gateway Gateway
|
||||||
|
StorageRegistry StorageRegistry
|
||||||
Users Users
|
Users Users
|
||||||
AuthProvider Users
|
AuthProvider Users
|
||||||
AuthBasic Port
|
AuthBasic Port
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
Value: "/eos/dockertest/reva",
|
Value: "/eos/dockertest/reva",
|
||||||
Usage: "Namespace for metadata operations",
|
Usage: "Namespace for metadata operations",
|
||||||
EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"},
|
EnvVars: []string{"REVA_STORAGE_EOS_NAMESPACE"},
|
||||||
Destination: &cfg.Reva.Storages.Common.Root,
|
Destination: &cfg.Reva.Storages.EOS.Root,
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "storage-eos-shadow-namespace",
|
Name: "storage-eos-shadow-namespace",
|
||||||
@@ -30,7 +30,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
Value: "/Shares",
|
Value: "/Shares",
|
||||||
Usage: "name of the share folder",
|
Usage: "name of the share folder",
|
||||||
EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"},
|
EnvVars: []string{"REVA_STORAGE_EOS_SHARE_FOLDER"},
|
||||||
Destination: &cfg.Reva.Storages.Common.ShareFolder,
|
Destination: &cfg.Reva.Storages.EOS.ShareFolder,
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "storage-eos-binary",
|
Name: "storage-eos-binary",
|
||||||
@@ -95,7 +95,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
Name: "storage-eos-enable-home",
|
Name: "storage-eos-enable-home",
|
||||||
Usage: "enable the creation of home directories",
|
Usage: "enable the creation of home directories",
|
||||||
EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"},
|
EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"},
|
||||||
Destination: &cfg.Reva.Storages.Common.EnableHome,
|
Destination: &cfg.Reva.Storages.EOS.EnableHome,
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "storage-eos-sec-protocol",
|
Name: "storage-eos-sec-protocol",
|
||||||
@@ -120,7 +120,7 @@ func DriverEOSWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
Value: "{{substr 0 1 .Username}}/{{.Username}}",
|
Value: "{{substr 0 1 .Username}}/{{.Username}}",
|
||||||
Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `,
|
Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `,
|
||||||
EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"},
|
EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"},
|
||||||
Destination: &cfg.Reva.Storages.Common.UserLayout,
|
Destination: &cfg.Reva.Storages.EOS.UserLayout,
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "storage-eos-gatewaysvc",
|
Name: "storage-eos-gatewaysvc",
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package flagset
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/micro/cli/v2"
|
||||||
|
"github.com/owncloud/ocis-reva/pkg/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DriverOCISWithConfig applies cfg to the root flagset
|
||||||
|
func DriverOCISWithConfig(cfg *config.Config) []cli.Flag {
|
||||||
|
return []cli.Flag{
|
||||||
|
&cli.StringFlag{
|
||||||
|
Name: "storage-ocis-root",
|
||||||
|
Value: "/var/tmp/ocis/root",
|
||||||
|
Usage: "the path to the local storage root",
|
||||||
|
EnvVars: []string{"REVA_STORAGE_OCIS_ROOT"},
|
||||||
|
Destination: &cfg.Reva.Storages.Common.Root,
|
||||||
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "storage-ocis-enable-home",
|
||||||
|
Value: true,
|
||||||
|
Usage: "enable the creation of home storages",
|
||||||
|
EnvVars: []string{"REVA_STORAGE_OCIS_ENABLE_HOME"},
|
||||||
|
Destination: &cfg.Reva.Storages.Common.EnableHome,
|
||||||
|
},
|
||||||
|
&cli.StringFlag{
|
||||||
|
Name: "storage-ocis-layout",
|
||||||
|
Value: "{{.Id.OpaqueId}}",
|
||||||
|
Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `,
|
||||||
|
EnvVars: []string{"REVA_STORAGE_OCIS_LAYOUT"},
|
||||||
|
Destination: &cfg.Reva.Storages.Common.UserLayout,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
Value: "/var/tmp/reva/data",
|
Value: "/var/tmp/reva/data",
|
||||||
Usage: "the path to the owncloud data directory",
|
Usage: "the path to the owncloud data directory",
|
||||||
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"},
|
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_DATADIR"},
|
||||||
Destination: &cfg.Reva.Storages.Common.Root,
|
Destination: &cfg.Reva.Storages.OwnCloud.Root,
|
||||||
},
|
},
|
||||||
&cli.BoolFlag{
|
&cli.BoolFlag{
|
||||||
Name: "storage-owncloud-scan",
|
Name: "storage-owncloud-scan",
|
||||||
@@ -34,14 +34,14 @@ func DriverOwnCloudWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
Value: false,
|
Value: false,
|
||||||
Usage: "enable the creation of home storages",
|
Usage: "enable the creation of home storages",
|
||||||
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"},
|
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_ENABLE_HOME"},
|
||||||
Destination: &cfg.Reva.Storages.Common.EnableHome,
|
Destination: &cfg.Reva.Storages.OwnCloud.EnableHome,
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "storage-owncloud-layout",
|
Name: "storage-owncloud-layout",
|
||||||
Value: "{{.Id.OpaqueId}}",
|
Value: "{{.Id.OpaqueId}}",
|
||||||
Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `,
|
Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `,
|
||||||
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"},
|
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"},
|
||||||
Destination: &cfg.Reva.Storages.Common.UserLayout,
|
Destination: &cfg.Reva.Storages.OwnCloud.UserLayout,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-16
@@ -98,14 +98,6 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
EnvVars: []string{"REVA_GATEWAY_SHARE_FOLDER"},
|
EnvVars: []string{"REVA_GATEWAY_SHARE_FOLDER"},
|
||||||
Destination: &cfg.Reva.Gateway.ShareFolder,
|
Destination: &cfg.Reva.Gateway.ShareFolder,
|
||||||
},
|
},
|
||||||
// TODO(refs) temporary workaround needed for storing link grants.
|
|
||||||
&cli.StringFlag{
|
|
||||||
Name: "link_grants_file",
|
|
||||||
Value: "/var/tmp/reva/link_grants.json",
|
|
||||||
Usage: "when using a json manager, file to use as json serialized database",
|
|
||||||
EnvVars: []string{"REVA_GATEWAY_LINK_GRANTS_FILE"},
|
|
||||||
Destination: &cfg.Reva.Gateway.LinkGrants,
|
|
||||||
},
|
|
||||||
&cli.BoolFlag{
|
&cli.BoolFlag{
|
||||||
Name: "disable-home-creation-on-login",
|
Name: "disable-home-creation-on-login",
|
||||||
Usage: "Disable creation of home folder on login",
|
Usage: "Disable creation of home folder on login",
|
||||||
@@ -117,12 +109,26 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
|
|
||||||
// storage registry
|
// storage registry
|
||||||
|
|
||||||
|
&cli.StringFlag{
|
||||||
|
Name: "storage-registry-driver",
|
||||||
|
Value: "static",
|
||||||
|
Usage: "driver of the storage registry",
|
||||||
|
EnvVars: []string{"REVA_STORAGE_REGISTRY_DRIVER"},
|
||||||
|
Destination: &cfg.Reva.StorageRegistry.Driver,
|
||||||
|
},
|
||||||
|
&cli.StringSliceFlag{
|
||||||
|
Name: "storage-registry-rule",
|
||||||
|
Value: cli.NewStringSlice(),
|
||||||
|
Usage: `Replaces the generated storage registry rules with this set: --storage-registry-rule "/eos=localhost:9158" [--storage-registry-rule "1284d238-aa92-42ce-bdc4-0b0000009162=localhost:9162"]`,
|
||||||
|
EnvVars: []string{"REVA_STORAGE_REGISTRY_RULES"},
|
||||||
|
},
|
||||||
|
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "storage-home-provider",
|
Name: "storage-home-provider",
|
||||||
Value: "/home",
|
Value: "/home",
|
||||||
Usage: "mount point of the storage provider for user homes in the global namespace",
|
Usage: "mount point of the storage provider for user homes in the global namespace",
|
||||||
EnvVars: []string{"REVA_STORAGE_HOME_PROVIDER"},
|
EnvVars: []string{"REVA_STORAGE_HOME_PROVIDER"},
|
||||||
Destination: &cfg.Reva.Gateway.HomeProvider,
|
Destination: &cfg.Reva.StorageRegistry.HomeProvider,
|
||||||
},
|
},
|
||||||
|
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
@@ -168,13 +174,6 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
Destination: &cfg.Reva.Sharing.URL,
|
Destination: &cfg.Reva.Sharing.URL,
|
||||||
},
|
},
|
||||||
|
|
||||||
&cli.StringSliceFlag{
|
|
||||||
Name: "storage-registry-rule",
|
|
||||||
Value: cli.NewStringSlice(),
|
|
||||||
Usage: `Replace the generated storage registry rules with this set --storage-registry-rule "/eos=localhost:9158" [--storage-registry-rule "1284d238-aa92-42ce-bdc4-0b0000009162=localhost:9162"]`,
|
|
||||||
EnvVars: []string{"REVA_STORAGE_REGISTRY_RULES"},
|
|
||||||
},
|
|
||||||
|
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: "storage-root-url",
|
Name: "storage-root-url",
|
||||||
Value: "localhost:9152",
|
Value: "localhost:9152",
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
||||||
|
flags = append(flags, DriverOCISWithConfig(cfg)...)
|
||||||
|
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
||||||
|
flags = append(flags, DriverOCISWithConfig(cfg)...)
|
||||||
|
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
||||||
|
flags = append(flags, DriverOCISWithConfig(cfg)...)
|
||||||
|
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
||||||
|
flags = append(flags, DriverOCISWithConfig(cfg)...)
|
||||||
|
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
||||||
|
flags = append(flags, DriverOCISWithConfig(cfg)...)
|
||||||
|
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
||||||
|
flags = append(flags, DriverOCISWithConfig(cfg)...)
|
||||||
|
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag {
|
|||||||
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
flags = append(flags, DriverEOSWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
flags = append(flags, DriverLocalWithConfig(cfg)...)
|
||||||
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
flags = append(flags, DriverOwnCloudWithConfig(cfg)...)
|
||||||
|
flags = append(flags, DriverOCISWithConfig(cfg)...)
|
||||||
|
|
||||||
return flags
|
return flags
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user