update reva to v0.0.2-0.20200212114015-0dbce24f7e8b (#91)

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
Jörn Friedrich Dreyer
2020-03-06 12:17:28 +01:00
committed by GitHub
parent 0b574786e1
commit e70e0c9176
22 changed files with 244 additions and 764 deletions
+9
View File
@@ -0,0 +1,9 @@
Enhancement: update reva to v0.0.2-0.20200212114015-0dbce24f7e8b
Reva has seen a lot of changes that allow us to
- reduce the configuration overhead
- use the autocreato home folder option
- use the home folder path layout option
- no longer start the root storage
Related: https://github.com/owncloud/ocis-reva/pull/91
+2 -3
View File
@@ -4,8 +4,7 @@ go 1.13
require (
github.com/cespare/xxhash/v2 v2.1.1 // indirect
github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e // indirect
github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5
github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b
github.com/gofrs/uuid v3.2.0+incompatible
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e // indirect
github.com/micro/cli/v2 v2.1.1
@@ -14,7 +13,7 @@ require (
github.com/pelletier/go-toml v1.6.0 // indirect
github.com/prometheus/client_model v0.0.0-20191202183732-d1d2010b5bee // indirect
github.com/prometheus/procfs v0.0.8 // indirect
github.com/restic/calens v0.2.0 // indirect
github.com/restic/calens v0.2.0
github.com/spf13/afero v1.2.2 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
+14 -9
View File
@@ -67,8 +67,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l
github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU=
github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g=
github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8=
github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.28.13 h1:JyCQQ86yil3hg7MtWdNH8Pbcgx92qlUV2v22Km63Mf4=
github.com/aws/aws-sdk-go v1.28.13/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -115,6 +115,8 @@ github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc
github.com/coreos/etcd v3.3.18+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-oidc v2.1.0+incompatible h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM=
github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
@@ -127,12 +129,10 @@ github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMEl
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83 h1:9bcp1jc6+36XUfuOae/w0BVrbzeVKBp/OqhTfCal40U=
github.com/cs3org/go-cs3apis v0.0.0-20191128165347-19746c015c83/go.mod h1:IsVGyZrOLUQD48JIhlM/xb3Vz6He5o2+W0ZTfUGY+IU=
github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e h1:cPcpOoPLdsIV2Bw1xMJCIw4ZAejtQqA6J0U56YHOJeQ=
github.com/cs3org/go-cs3apis v0.0.0-20191218073906-e3405ff6775e/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY=
github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5 h1:PkGon9KVtcApu462KRAmFV3iKHOk0S0CRoEzoar4eyE=
github.com/cs3org/reva v0.0.2-0.20200115110931-4c7513415ec5/go.mod h1:Hk3eCcdhtv4eIhKvRK736fQuOyS1HuHnUcz0Dq6NK1A=
github.com/cs3org/go-cs3apis v0.0.0-20200115100126-824a5f718250 h1:N/WWs9OegcgFlsUo7/iahxq+e3luhZKu0B8wLrWBsTQ=
github.com/cs3org/go-cs3apis v0.0.0-20200115100126-824a5f718250/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY=
github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b h1:8kfSFbzmolP/ZAm455PsAjD5qSqpESryEjpK0ceAWS0=
github.com/cs3org/reva v0.0.2-0.20200212114015-0dbce24f7e8b/go.mod h1:/Sg6MOumvaYkxRJJNZ0c8AvDJe+sn7MJnnxJfwY2MhE=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -215,6 +215,8 @@ github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
@@ -585,9 +587,10 @@ go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA=
go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8=
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY=
@@ -802,6 +805,8 @@ google.golang.org/grpc v1.25.1 h1:wdKvqQk7IttEw92GoRyKG2IDrUIpgpj6H6m81yfeMW0=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM=
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw=
+3 -11
View File
@@ -75,20 +75,12 @@ func AuthBasic(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.AuthBasic.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"grpc": map[string]interface{}{
"network": cfg.Reva.AuthBasic.Network,
"address": cfg.Reva.AuthBasic.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"authprovider": map[string]interface{}{
+3 -11
View File
@@ -75,20 +75,12 @@ func AuthBearer(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.AuthBearer.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"grpc": map[string]interface{}{
"network": cfg.Reva.AuthBearer.Network,
"address": cfg.Reva.AuthBearer.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"authprovider": map[string]interface{}{
+6 -47
View File
@@ -82,71 +82,30 @@ func Frontend(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.Frontend.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
"gatewaysvc": cfg.Reva.Gateway.URL, // Todo or address?
},
"http": map[string]interface{}{
"network": cfg.Reva.Frontend.Network,
"address": cfg.Reva.Frontend.Addr,
"middlewares": map[string]interface{}{
"auth": map[string]interface{}{
"gateway": cfg.Reva.Gateway.URL,
"credential_chain": []string{"basic", "bearer"},
"token_strategy": "header",
"token_writer": "header",
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
"cors": map[string]interface{}{
"allowed_origins": []string{"*"},
"allowed_methods": []string{
"OPTIONS",
"GET",
"PUT",
"POST",
"DELETE",
"MKCOL",
"PROPFIND",
"PROPPATCH",
"MOVE",
"COPY",
"REPORT",
"SEARCH",
},
"allowed_headers": []string{
"Origin",
"Accept",
"Depth",
"Content-Type",
"X-Requested-With",
"Authorization",
"Ocs-Apirequest",
"If-Match",
"If-None-Match",
"Destination",
"Overwrite",
},
"allow_credentials": true,
"options_passthrough": false,
"allow_credentials": true,
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"datagateway": map[string]interface{}{
"prefix": "data",
"gateway": "", // TODO not needed?
"transfer_shared_secret": cfg.Reva.TransferSecret,
},
"ocdav": map[string]interface{}{
"prefix": "",
"chunk_folder": "/var/tmp/revad/chunks",
"gateway": cfg.Reva.Gateway.URL,
"chunk_folder": "/var/tmp/reva/chunks",
"files_namespace": cfg.Reva.OCDav.DavFilesNamespace,
"webdav_namespace": cfg.Reva.OCDav.WebdavNamespace,
},
"ocs": map[string]interface{}{
"gateway": cfg.Reva.Gateway.URL,
"config": map[string]interface{}{
"version": "1.8",
"website": "reva",
+11 -20
View File
@@ -75,20 +75,13 @@ func Gateway(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.Gateway.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
"gatewaysvc": cfg.Reva.Gateway.URL, // Todo or address?
},
"grpc": map[string]interface{}{
"network": cfg.Reva.Gateway.Network,
"address": cfg.Reva.Gateway.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"gateway": map[string]interface{}{
@@ -104,16 +97,13 @@ func Gateway(cfg *config.Config) *cli.Command {
"publicshareprovidersvc": cfg.Reva.Sharing.URL,
"ocmshareprovidersvc": cfg.Reva.Sharing.URL,
"commit_share_to_storage_grant": cfg.Reva.Gateway.CommitShareToStorageGrant,
"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.
// other
"datagateway": cfg.Reva.Frontend.URL,
"transfer_shared_secret": cfg.Reva.TransferSecret,
"transfer_expires": cfg.Reva.TransferExpires,
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
"disable_home_creation_on_login": cfg.Reva.Gateway.DisableHomeCreationOnLogin,
"datagateway": cfg.Reva.Frontend.URL,
"transfer_shared_secret": cfg.Reva.TransferSecret,
"transfer_expires": cfg.Reva.TransferExpires,
},
"authregistry": map[string]interface{}{
"driver": "static",
@@ -130,6 +120,7 @@ func Gateway(cfg *config.Config) *cli.Command {
"driver": "static",
"drivers": map[string]interface{}{
"static": map[string]interface{}{
"home_provider": cfg.Reva.StorageHome.MountPath,
"rules": map[string]interface{}{
cfg.Reva.StorageRoot.MountPath: cfg.Reva.StorageRoot.URL,
cfg.Reva.StorageRoot.MountID: cfg.Reva.StorageRoot.URL,
+3 -11
View File
@@ -75,20 +75,12 @@ func Sharing(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.Sharing.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"grpc": map[string]interface{}{
"network": cfg.Reva.Sharing.Network,
"address": cfg.Reva.Sharing.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"usershareprovider": map[string]interface{}{
+9 -21
View File
@@ -74,20 +74,12 @@ func StorageHome(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.StorageHome.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"grpc": map[string]interface{}{
"network": cfg.Reva.StorageHome.Network,
"address": cfg.Reva.StorageHome.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"storageprovider": map[string]interface{}{
@@ -114,7 +106,6 @@ func StorageHome(cfg *config.Config) *cli.Command {
"owncloud": map[string]interface{}{
"datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory,
"scan": cfg.Reva.Storages.OwnCloud.Scan,
"autocreate": cfg.Reva.Storages.OwnCloud.Autocreate,
"redis": cfg.Reva.Storages.OwnCloud.Redis,
},
"s3": map[string]interface{}{
@@ -126,21 +117,18 @@ func StorageHome(cfg *config.Config) *cli.Command {
"prefix": cfg.Reva.Storages.S3.Prefix,
},
},
"path_wrapper": cfg.Reva.StorageHome.PathWrapper,
"mount_path": cfg.Reva.StorageHome.MountPath,
"mount_id": cfg.Reva.StorageHome.MountID,
"expose_data_server": cfg.Reva.StorageHome.ExposeDataServer,
"path_wrapper": cfg.Reva.StorageHome.PathWrapper,
"path_wrappers": map[string]interface{}{
"context": map[string]interface{}{
"prefix": cfg.Reva.StorageHome.PathWrapperContext.Prefix,
},
},
"mount_path": cfg.Reva.StorageHome.MountPath,
"mount_id": cfg.Reva.StorageHome.MountID,
"expose_data_server": cfg.Reva.StorageHome.ExposeDataServer,
// TODO use cfg.Reva.StorageHomeData.URL, ?
"data_server_url": cfg.Reva.StorageHome.DataServerURL,
"available_checksums": map[string]interface{}{
"md5": 100,
"unset": 1000,
},
"data_server_url": cfg.Reva.StorageHome.DataServerURL,
"enable_home_creation": cfg.Reva.StorageHome.EnableHomeCreation,
},
},
},
+3 -15
View File
@@ -74,23 +74,12 @@ func StorageHomeData(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.StorageHomeData.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"http": map[string]interface{}{
"network": cfg.Reva.StorageHomeData.Network,
"address": cfg.Reva.StorageHomeData.Addr,
"middlewares": map[string]interface{}{
"auth": map[string]interface{}{
"gateway": cfg.Reva.Gateway.URL,
"credential_chain": []string{"basic", "bearer"},
"token_strategy": "header",
"token_writer": "header",
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"dataprovider": map[string]interface{}{
@@ -118,7 +107,6 @@ func StorageHomeData(cfg *config.Config) *cli.Command {
"owncloud": map[string]interface{}{
"datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory,
"scan": cfg.Reva.Storages.OwnCloud.Scan,
"autocreate": cfg.Reva.Storages.OwnCloud.Autocreate,
"redis": cfg.Reva.Storages.OwnCloud.Redis,
},
"s3": map[string]interface{}{
+10 -21
View File
@@ -74,20 +74,12 @@ func StorageOC(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.StorageOC.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"grpc": map[string]interface{}{
"network": cfg.Reva.StorageOC.Network,
"address": cfg.Reva.StorageOC.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"storageprovider": map[string]interface{}{
@@ -114,8 +106,8 @@ func StorageOC(cfg *config.Config) *cli.Command {
"owncloud": map[string]interface{}{
"datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory,
"scan": cfg.Reva.Storages.OwnCloud.Scan,
"autocreate": cfg.Reva.Storages.OwnCloud.Autocreate,
"redis": cfg.Reva.Storages.OwnCloud.Redis,
"layout": cfg.Reva.Storages.OwnCloud.Layout,
},
"s3": map[string]interface{}{
"region": cfg.Reva.Storages.S3.Region,
@@ -126,21 +118,18 @@ func StorageOC(cfg *config.Config) *cli.Command {
"prefix": cfg.Reva.Storages.S3.Prefix,
},
},
"path_wrapper": cfg.Reva.StorageOC.PathWrapper,
"mount_path": cfg.Reva.StorageOC.MountPath,
"mount_id": cfg.Reva.StorageOC.MountID,
"expose_data_server": cfg.Reva.StorageOC.ExposeDataServer,
"path_wrapper": cfg.Reva.StorageOC.PathWrapper,
"path_wrappers": map[string]interface{}{
"context": map[string]interface{}{
"prefix": cfg.Reva.StorageOC.PathWrapperContext.Prefix,
},
},
"mount_path": cfg.Reva.StorageOC.MountPath,
"mount_id": cfg.Reva.StorageOC.MountID,
"expose_data_server": cfg.Reva.StorageOC.ExposeDataServer,
// TODO use cfg.Reva.SStorageOCData.URL, ?
"data_server_url": cfg.Reva.StorageOC.DataServerURL,
"available_checksums": map[string]interface{}{
"md5": 100,
"unset": 1000,
},
"data_server_url": cfg.Reva.StorageOC.DataServerURL,
"enable_home_creation": cfg.Reva.StorageOC.EnableHomeCreation,
},
},
},
+3 -15
View File
@@ -74,23 +74,12 @@ func StorageOCData(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.StorageOCData.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"http": map[string]interface{}{
"network": cfg.Reva.StorageOCData.Network,
"address": cfg.Reva.StorageOCData.Addr,
"middlewares": map[string]interface{}{
"auth": map[string]interface{}{
"gateway": cfg.Reva.Gateway.URL,
"credential_chain": []string{"basic", "bearer"},
"token_strategy": "header",
"token_writer": "header",
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"dataprovider": map[string]interface{}{
@@ -118,7 +107,6 @@ func StorageOCData(cfg *config.Config) *cli.Command {
"owncloud": map[string]interface{}{
"datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory,
"scan": cfg.Reva.Storages.OwnCloud.Scan,
"autocreate": cfg.Reva.Storages.OwnCloud.Autocreate,
"redis": cfg.Reva.Storages.OwnCloud.Redis,
},
"s3": map[string]interface{}{
+9 -21
View File
@@ -74,20 +74,12 @@ func StorageRoot(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.StorageRoot.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"grpc": map[string]interface{}{
"network": cfg.Reva.StorageRoot.Network,
"address": cfg.Reva.StorageRoot.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"storageprovider": map[string]interface{}{
@@ -114,7 +106,6 @@ func StorageRoot(cfg *config.Config) *cli.Command {
"owncloud": map[string]interface{}{
"datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory,
"scan": cfg.Reva.Storages.OwnCloud.Scan,
"autocreate": cfg.Reva.Storages.OwnCloud.Autocreate,
"redis": cfg.Reva.Storages.OwnCloud.Redis,
},
"s3": map[string]interface{}{
@@ -126,20 +117,17 @@ func StorageRoot(cfg *config.Config) *cli.Command {
"prefix": cfg.Reva.Storages.S3.Prefix,
},
},
"path_wrapper": cfg.Reva.StorageRoot.PathWrapper,
"mount_path": cfg.Reva.StorageRoot.MountPath,
"mount_id": cfg.Reva.StorageRoot.MountID,
"expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer,
"path_wrapper": cfg.Reva.StorageRoot.PathWrapper,
"path_wrappers": map[string]interface{}{
"context": map[string]interface{}{
"prefix": cfg.Reva.StorageRoot.PathWrapperContext.Prefix,
},
},
"mount_path": cfg.Reva.StorageRoot.MountPath,
"mount_id": cfg.Reva.StorageRoot.MountID,
"expose_data_server": cfg.Reva.StorageRoot.ExposeDataServer,
"data_server_url": cfg.Reva.StorageRoot.DataServerURL,
"available_checksums": map[string]interface{}{
"md5": 100,
"unset": 1000,
},
"data_server_url": cfg.Reva.StorageRoot.DataServerURL,
"enable_home_creation": cfg.Reva.StorageRoot.EnableHomeCreation,
},
},
},
+3 -11
View File
@@ -74,20 +74,12 @@ func Users(cfg *config.Config) *cli.Command {
"core": map[string]interface{}{
"max_cpus": cfg.Reva.Users.MaxCPUs,
},
"shared": map[string]interface{}{
"jwt_secret": cfg.Reva.JWTSecret,
},
"grpc": map[string]interface{}{
"network": cfg.Reva.Users.Network,
"address": cfg.Reva.Users.Addr,
// TODO extract interceptor config, which is the same for all grpc services
"interceptors": map[string]interface{}{
"auth": map[string]interface{}{
"token_manager": "jwt",
"token_managers": map[string]interface{}{
"jwt": map[string]interface{}{
"secret": cfg.Reva.JWTSecret,
},
},
},
},
// TODO build services dynamically
"services": map[string]interface{}{
"userprovider": map[string]interface{}{
+12 -3
View File
@@ -18,7 +18,10 @@ type Debug struct {
// Gateway defines the available gateway configuration.
type Gateway struct {
Port
CommitShareToStorageGrant bool
CommitShareToStorageGrant bool
CommitShareToStorageRef bool
ShareFolder string
DisableHomeCreationOnLogin bool
}
// Port defines the available port configuration.
@@ -65,7 +68,7 @@ type StoragePort struct {
MountID string
ExposeDataServer bool
DataServerURL string
// TODO checksums ... figure out what that is supposed to do
EnableHomeCreation bool
// for HTTP ports with only one http service
Prefix string
@@ -120,6 +123,9 @@ type DriverEOS struct {
// UseKeyTabAuth changes will authenticate requests by using an EOS keytab.
UseKeytab bool
// EnableHome enables the creation of home directories.
EnableHome bool
// SecProtocol specifies the xrootd security protocol to use between the server and EOS.
SecProtocol string
@@ -128,6 +134,9 @@ type DriverEOS struct {
// SingleUsername is the username to use when SingleUserMode is enabled
SingleUsername string
// Layout of the users home dir path
Layout string
}
// DriverLocal defines the available local storage driver configuration.
@@ -139,8 +148,8 @@ type DriverLocal struct {
type DriverOwnCloud struct {
Datadirectory string
Scan bool
Autocreate bool
Redis string
Layout string
}
// DriverS3 defines the available S3 storage driver configuration.
+24 -3
View File
@@ -136,13 +136,34 @@ func GatewayWithConfig(cfg *config.Config) []cli.Flag {
Usage: "--service gateway [--service authregistry]",
EnvVars: []string{"REVA_GATEWAY_SERVICES"},
},
// TODO should defaults to true. reverse logic to 'disable-share-commit'?
&cli.BoolFlag{
Name: "commit-share-to-storage-grant",
Usage: "Commit shares to the share manager as well as as a grant to the storage",
EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STRORAGE_GRANT"},
Value: true,
Usage: "Commit shares to the share manager",
EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT"},
Destination: &cfg.Reva.Gateway.CommitShareToStorageGrant,
},
&cli.BoolFlag{
Name: "commit-share-to-storage-ref",
Value: true,
// TODO clarify
Usage: "Commit shares to the storage",
EnvVars: []string{"REVA_GATEWAY_COMMIT_SHARE_TO_STORAGE_REF"},
Destination: &cfg.Reva.Gateway.CommitShareToStorageRef,
},
&cli.StringFlag{
Name: "share-folder",
Value: "/",
Usage: "mount shares in this folder of the home storage provider",
EnvVars: []string{"REVA_GATEWAY_SHARE_FOLDER"},
Destination: &cfg.Reva.Gateway.ShareFolder,
},
&cli.BoolFlag{
Name: "disable-home-creation-on-login",
Usage: "Disable creation of home folder on login",
EnvVars: []string{"REVA_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN"},
Destination: &cfg.Reva.Gateway.DisableHomeCreationOnLogin,
},
// other services
-507
View File
@@ -1,507 +0,0 @@
package flagset
/* TODO move this into dedicated flagsets, along with storage commands
import (
"github.com/micro/cli"
"github.com/owncloud/ocis-reva/pkg/config"
)
// ServerWithConfig applies cfg to the root flagset
func ServerWithConfig(cfg *config.Config) []cli.Flag {
return []cli.Flag{
// debug ports are the odd ports
&cli.StringFlag{
Name: "storage-eos-debug-addr",
Value: "0.0.0.0:9159",
Usage: "Address to bind storage eos debug server",
EnvVar: "REVA_STORAGE_EOS_DEBUG_ADDR",
Destination: &cfg.Reva.StorageEOS.DebugAddr,
},
&cli.StringFlag{
Name: "storage-eos-data-debug-addr",
Value: "0.0.0.0:9161",
Usage: "Address to bind storage eos data debug server",
EnvVar: "REVA_STORAGE_HOME_DATA_DEBUG_ADDR",
Destination: &cfg.Reva.StorageEOSData.DebugAddr,
},
&cli.StringFlag{
Name: "storage-s3-debug-addr",
Value: "0.0.0.0:9167",
Usage: "Address to bind storage s3 debug server",
EnvVar: "REVA_STORAGE_S3_DEBUG_ADDR",
Destination: &cfg.Reva.StorageS3.DebugAddr,
},
&cli.StringFlag{
Name: "storage-s3-data-debug-addr",
Value: "0.0.0.0:9169",
Usage: "Address to bind storage s3 data debug server",
EnvVar: "REVA_STORAGE_S3_DATA_DEBUG_ADDR",
Destination: &cfg.Reva.StorageS3Data.DebugAddr,
},
&cli.StringFlag{
Name: "storage-custom-debug-addr",
Value: "0.0.0.0:9171",
Usage: "Address to bind storage custom debug server",
EnvVar: "REVA_STORAGE_CUSTOM_DEBUG_ADDR",
Destination: &cfg.Reva.StorageCustom.DebugAddr,
},
&cli.StringFlag{
Name: "storage-custom-data-debug-addr",
Value: "0.0.0.0:9173",
Usage: "Address to bind storage custom data debug server",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_DEBUG_ADDR",
Destination: &cfg.Reva.StorageCustomData.DebugAddr,
},
// Services
// Storage eos
&cli.StringFlag{
Name: "storage-eos-network",
Value: "tcp",
Usage: "Network to use for the reva storage-eos service, can be 'tcp', 'udp' or 'unix'",
EnvVar: "REVA_STORAGE_EOS_NETWORK",
Destination: &cfg.Reva.StorageEOS.Network,
},
&cli.StringFlag{
Name: "storage-eos-protocol",
Value: "grpc",
Usage: "protocol for reva storage-eos service, can be 'http' or 'grpc'",
EnvVar: "REVA_STORAGE_EOS_PROTOCOL",
Destination: &cfg.Reva.StorageEOS.Protocol,
},
&cli.StringFlag{
Name: "storage-eos-addr",
Value: "0.0.0.0:9158",
Usage: "Address to bind reva storage-eos service",
EnvVar: "REVA_STORAGE_EOS_ADDR",
Destination: &cfg.Reva.StorageEOS.Addr,
},
&cli.StringFlag{
Name: "storage-eos-url",
Value: "localhost:9158",
Usage: "URL to use for the reva storage-eos service",
EnvVar: "REVA_STORAGE_EOS_URL",
Destination: &cfg.Reva.StorageEOS.URL,
},
&cli.StringFlag{
Name: "storage-eos-services",
Value: "storageprovider",
Usage: "comma separated list of services to include in the storage-eos service",
EnvVar: "REVA_STORAGE_EOS_SERVICES",
Destination: &cfg.Reva.StorageEOS.Services,
},
&cli.StringFlag{
Name: "storage-eos-driver",
Value: "local",
Usage: "eos storage driver",
EnvVar: "REVA_STORAGE_EOS_DRIVER",
Destination: &cfg.Reva.StorageEOS.Driver,
},
&cli.StringFlag{
Name: "storage-eos-path-wrapper",
Value: "",
Usage: "eos storage path wrapper",
EnvVar: "REVA_STORAGE_EOS_PATH_WRAPPER",
Destination: &cfg.Reva.StorageEOS.PathWrapper,
},
&cli.StringFlag{
Name: "storage-eos-path-wrapper-context-prefix",
Value: "",
Usage: "eos storage path wrapper context prefix",
EnvVar: "REVA_STORAGE_EOS_PATH_WRAPPER_CONTEXT_PREFIX",
Destination: &cfg.Reva.StorageEOS.PathWrapperContext.Prefix,
},
&cli.StringFlag{
Name: "storage-eos-mount-path",
Value: "/eos",
Usage: "eos storage mount path",
EnvVar: "REVA_STORAGE_EOS_MOUNT_PATH",
Destination: &cfg.Reva.StorageEOS.MountPath,
},
&cli.StringFlag{
Name: "storage-eos-mount-id",
Value: "",
Usage: "eos storage mount id",
EnvVar: "REVA_STORAGE_EOS_MOUNT_ID",
Destination: &cfg.Reva.StorageEOS.MountID,
},
&cli.BoolFlag{
Name: "storage-eos-expose-data-server",
Usage: "eos storage exposes a dedicated data server",
EnvVar: "REVA_STORAGE_EOS_EXPOSE_DATA_SERVER",
Destination: &cfg.Reva.StorageEOS.ExposeDataServer,
},
&cli.StringFlag{
Name: "storage-eos-data-server-url",
Value: "",
Usage: "eos storage data server url",
EnvVar: "REVA_STORAGE_EOS_DATA_SERVER_URL",
Destination: &cfg.Reva.StorageEOS.DataServerURL,
},
// Storage eos data
&cli.StringFlag{
Name: "storage-eos-data-network",
Value: "tcp",
Usage: "Network to use for the reva storage-eos data service, can be 'tcp', 'udp' or 'unix'",
EnvVar: "REVA_STORAGE_EOS_DATA_NETWORK",
Destination: &cfg.Reva.StorageEOSData.Network,
},
&cli.StringFlag{
Name: "storage-eos-data-protocol",
Value: "http",
Usage: "protocol for reva storage-eos data service, can be 'http' or 'grpc'",
EnvVar: "REVA_STORAGE_EOS_DATA_PROTOCOL",
Destination: &cfg.Reva.StorageEOSData.Protocol,
},
&cli.StringFlag{
Name: "storage-eos-data-addr",
Value: "0.0.0.0:9160",
Usage: "Address to bind reva storage-eos data service",
EnvVar: "REVA_STORAGE_EOS_DATA_ADDR",
Destination: &cfg.Reva.StorageEOSData.Addr,
},
&cli.StringFlag{
Name: "storage-eos-data-url",
Value: "localhost:9160",
Usage: "URL to use for the reva storage-eos data service",
EnvVar: "REVA_STORAGE_EOS_DATA_URL",
Destination: &cfg.Reva.StorageEOSData.URL,
},
&cli.StringFlag{
Name: "storage-eos-data-services",
Value: "dataprovider",
Usage: "comma separated list of services to include in the storage-eos data service",
EnvVar: "REVA_STORAGE_EOS_DATA_SERVICES",
Destination: &cfg.Reva.StorageEOSData.Services,
},
&cli.StringFlag{
Name: "storage-eos-data-driver",
Value: "eos",
Usage: "eos data storage driver",
EnvVar: "REVA_STORAGE_EOS_DATA_DRIVER",
Destination: &cfg.Reva.StorageEOSData.Driver,
},
&cli.StringFlag{
Name: "storage-eos-data-prefix",
Value: "data",
Usage: "prefix for the http endpoint, without leading slash",
EnvVar: "REVA_STORAGE_EOS_DATA_PREFIX",
Destination: &cfg.Reva.StorageEOSData.Prefix,
},
&cli.StringFlag{
Name: "storage-eos-data-temp-folder",
Value: "/var/tmp/",
Usage: "storage eos data temp folder",
EnvVar: "REVA_STORAGE_HOME_DATA_TEMP_FOLDER",
Destination: &cfg.Reva.StorageEOSData.TempFolder,
},
// Storage s3
&cli.StringFlag{
Name: "storage-s3-network",
Value: "tcp",
Usage: "Network to use for the reva storage-oc service, can be 'tcp', 'udp' or 'unix'",
EnvVar: "REVA_STORAGE_S3_NETWORK",
Destination: &cfg.Reva.StorageS3.Network,
},
&cli.StringFlag{
Name: "storage-s3-protocol",
Value: "grpc",
Usage: "protocol for reva storage-s3 service, can be 'http' or 'grpc'",
EnvVar: "REVA_STORAGE_S3_PROTOCOL",
Destination: &cfg.Reva.StorageS3.Protocol,
},
&cli.StringFlag{
Name: "storage-s3-addr",
Value: "0.0.0.0:9166",
Usage: "Address to bind reva storage-s3 service",
EnvVar: "REVA_STORAGE_S3_ADDR",
Destination: &cfg.Reva.StorageS3.Addr,
},
&cli.StringFlag{
Name: "storage-s3-url",
Value: "localhost:9166",
Usage: "URL to use for the reva storage-s3 service",
EnvVar: "REVA_STORAGE_S3_URL",
Destination: &cfg.Reva.StorageS3.URL,
},
&cli.StringFlag{
Name: "storage-s3-services",
Value: "storageprovider",
Usage: "comma separated list of services to include in the storage-s3 service",
EnvVar: "REVA_STORAGE_S3_SERVICES",
Destination: &cfg.Reva.StorageS3.Services,
},
&cli.StringFlag{
Name: "storage-s3-driver",
Value: "local",
Usage: "s3 storage driver",
EnvVar: "REVA_STORAGE_S3_DRIVER",
Destination: &cfg.Reva.StorageS3.Driver,
},
&cli.StringFlag{
Name: "storage-s3-path-wrapper",
Value: "",
Usage: "s3 storage path wrapper",
EnvVar: "REVA_STORAGE_S3_PATH_WRAPPER",
Destination: &cfg.Reva.StorageS3.PathWrapper,
},
&cli.StringFlag{
Name: "storage-s3-path-wrapper-context-prefix",
Value: "",
Usage: "s3 storage path wrapper context prefix",
EnvVar: "REVA_STORAGE_S3_PATH_WRAPPER_CONTEXT_PREFIX",
Destination: &cfg.Reva.StorageS3.PathWrapperContext.Prefix,
},
&cli.StringFlag{
Name: "storage-s3-mount-path",
Value: "",
Usage: "s3 storage mount path",
EnvVar: "REVA_STORAGE_S3_MOUNT_PATH",
Destination: &cfg.Reva.StorageS3.MountPath,
},
&cli.StringFlag{
Name: "storage-s3-mount-id",
Value: "",
Usage: "s3 storage mount id",
EnvVar: "REVA_STORAGE_S3_MOUNT_ID",
Destination: &cfg.Reva.StorageS3.MountID,
},
&cli.BoolFlag{
Name: "storage-s3-expose-data-server",
Usage: "s3 storage exposes a dedicated data server",
EnvVar: "REVA_STORAGE_S3_EXPOSE_DATA_SERVER",
Destination: &cfg.Reva.StorageS3.ExposeDataServer,
},
&cli.StringFlag{
Name: "storage-s3-data-server-url",
Value: "",
Usage: "s3 storage data server url",
EnvVar: "REVA_STORAGE_S3_DATA_SERVER_URL",
Destination: &cfg.Reva.StorageS3.DataServerURL,
},
// Storage s3 data
&cli.StringFlag{
Name: "storage-s3-data-network",
Value: "tcp",
Usage: "Network to use for the reva storage-s3 data service, can be 'tcp', 'udp' or 'unix'",
EnvVar: "REVA_STORAGE_S3_DATA_NETWORK",
Destination: &cfg.Reva.StorageS3Data.Network,
},
&cli.StringFlag{
Name: "storage-s3-data-protocol",
Value: "http",
Usage: "protocol for reva storage-s3 data service, can be 'http' or 'grpc'",
EnvVar: "REVA_STORAGE_S3_DATA_PROTOCOL",
Destination: &cfg.Reva.StorageS3Data.Protocol,
},
&cli.StringFlag{
Name: "storage-s3-data-addr",
Value: "0.0.0.0:9168",
Usage: "Address to bind reva storage-s3 data service",
EnvVar: "REVA_STORAGE_S3_DATA_ADDR",
Destination: &cfg.Reva.StorageS3Data.Addr,
},
&cli.StringFlag{
Name: "storage-s3-data-url",
Value: "localhost:9168",
Usage: "URL to use for the reva storage-s3 data service",
EnvVar: "REVA_STORAGE_S3_DATA_URL",
Destination: &cfg.Reva.StorageS3Data.URL,
},
&cli.StringFlag{
Name: "storage-s3-data-services",
Value: "dataprovider",
Usage: "comma separated list of services to include in the storage-s3 data service",
EnvVar: "REVA_STORAGE_S3_DATA_SERVICES",
Destination: &cfg.Reva.StorageS3Data.Services,
},
&cli.StringFlag{
Name: "storage-s3-data-driver",
Value: "s3",
Usage: "s3 data storage driver",
EnvVar: "REVA_STORAGE_S3_DATA_DRIVER",
Destination: &cfg.Reva.StorageS3Data.Driver,
},
&cli.StringFlag{
Name: "storage-s3-data-prefix",
Value: "data",
Usage: "prefix for the http endpoint, without leading slash",
EnvVar: "REVA_STORAGE_S3_DATA_PREFIX",
Destination: &cfg.Reva.StorageS3Data.Prefix,
},
&cli.StringFlag{
Name: "storage-s3-data-temp-folder",
Value: "/var/tmp/",
Usage: "storage s3 data temp folder",
EnvVar: "REVA_STORAGE_S3_DATA_TEMP_FOLDER",
Destination: &cfg.Reva.StorageS3Data.TempFolder,
},
// Storage custom
&cli.StringFlag{
Name: "storage-custom-network",
Value: "tcp",
Usage: "Network to use for the reva storage-custom service, can be 'tcp', 'udp' or 'unix'",
EnvVar: "REVA_STORAGE_CUSTOM_NETWORK",
Destination: &cfg.Reva.StorageCustom.Network,
},
&cli.StringFlag{
Name: "storage-custom-protocol",
Value: "grpc",
Usage: "protocol for reva storage-custom service, can be 'http' or 'grpc'",
EnvVar: "REVA_STORAGE_CUSTOM_PROTOCOL",
Destination: &cfg.Reva.StorageCustom.Protocol,
},
&cli.StringFlag{
Name: "storage-custom-addr",
Value: "0.0.0.0:9170",
Usage: "Address to bind reva storage-custom service",
EnvVar: "REVA_STORAGE_CUSTOM_ADDR",
Destination: &cfg.Reva.StorageCustom.Addr,
},
&cli.StringFlag{
Name: "storage-custom-url",
Value: "localhost:9170",
Usage: "URL to use for the reva storage-custom service",
EnvVar: "REVA_STORAGE_CUSTOM_URL",
Destination: &cfg.Reva.StorageCustom.URL,
},
&cli.StringFlag{
Name: "storage-custom-services",
Value: "storageprovider",
Usage: "comma separated list of services to include in the storage-custom service",
EnvVar: "REVA_STORAGE_CUSTOM_SERVICES",
Destination: &cfg.Reva.StorageCustom.Services,
},
&cli.StringFlag{
Name: "storage-custom-driver",
Value: "local",
Usage: "custom storage driver",
EnvVar: "REVA_STORAGE_CUSTOM_DRIVER",
Destination: &cfg.Reva.StorageCustom.Driver,
},
&cli.StringFlag{
Name: "storage-custom-path-wrapper",
Value: "",
Usage: "custom storage path wrapper",
EnvVar: "REVA_STORAGE_CUSTOM_PATH_WRAPPER",
Destination: &cfg.Reva.StorageCustom.PathWrapper,
},
&cli.StringFlag{
Name: "storage-custom-path-wrapper-context-prefix",
Value: "",
Usage: "custom storage path wrapper context prefix",
EnvVar: "REVA_STORAGE_CUSTOM_PATH_WRAPPER_CONTEXT_PREFIX",
Destination: &cfg.Reva.StorageCustom.PathWrapperContext.Prefix,
},
&cli.StringFlag{
Name: "storage-custom-mount-path",
Value: "",
Usage: "custom storage mount path",
EnvVar: "REVA_STORAGE_CUSTOM_MOUNT_PATH",
Destination: &cfg.Reva.StorageCustom.MountPath,
},
&cli.StringFlag{
Name: "storage-custom-mount-id",
Value: "",
Usage: "custom storage mount id",
EnvVar: "REVA_STORAGE_CUSTOM_MOUNT_ID",
Destination: &cfg.Reva.StorageCustom.MountID,
},
&cli.BoolFlag{
Name: "storage-custom-expose-data-server",
Usage: "custom storage exposes a dedicated data server",
EnvVar: "REVA_STORAGE_CUSTOM_EXPOSE_DATA_SERVER",
Destination: &cfg.Reva.StorageCustom.ExposeDataServer,
},
&cli.StringFlag{
Name: "storage-custom-data-server-url",
Value: "",
Usage: "custom storage data server url",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_SERVER_URL",
Destination: &cfg.Reva.StorageCustom.DataServerURL,
},
// Storage custom data
&cli.StringFlag{
Name: "storage-custom-data-network",
Value: "tcp",
Usage: "Network to use for the reva storage-custom data service, can be 'tcp', 'udp' or 'unix'",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_NETWORK",
Destination: &cfg.Reva.StorageCustomData.Network,
},
&cli.StringFlag{
Name: "storage-custom-data-protocol",
Value: "http",
Usage: "protocol for reva storage-custom data service, can be 'http' or 'grpc'",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_PROTOCOL",
Destination: &cfg.Reva.StorageCustomData.Protocol,
},
&cli.StringFlag{
Name: "storage-custom-data-addr",
Value: "0.0.0.0:9172",
Usage: "Address to bind reva storage-custom data service",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_ADDR",
Destination: &cfg.Reva.StorageCustomData.Addr,
},
&cli.StringFlag{
Name: "storage-custom-data-url",
Value: "localhost:9172",
Usage: "URL to use for the reva storage-custom data service",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_URL",
Destination: &cfg.Reva.StorageCustomData.URL,
},
&cli.StringFlag{
Name: "storage-custom-data-services",
Value: "dataprovider",
Usage: "comma separated list of services to include in the storage-custom data service",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_SERVICES",
Destination: &cfg.Reva.StorageCustomData.Services,
},
&cli.StringFlag{
Name: "storage-custom-data-driver",
Value: "",
Usage: "custom data storage driver",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_DRIVER",
Destination: &cfg.Reva.StorageCustomData.Driver,
},
&cli.StringFlag{
Name: "storage-custom-data-prefix",
Value: "data",
Usage: "prefix for the http endpoint, without leading slash",
EnvVar: "REVA_STORAGE_S3_DATA_PREFIX",
Destination: &cfg.Reva.StorageCustomData.Prefix,
},
&cli.StringFlag{
Name: "storage-custom-data-temp-folder",
Value: "/var/tmp/",
Usage: "storage custom data temp folder",
EnvVar: "REVA_STORAGE_CUSTOM_DATA_TEMP_FOLDER",
Destination: &cfg.Reva.StorageCustomData.TempFolder,
},
&cli.StringFlag{
Name: "asset-path",
Value: "",
Usage: "Path to custom assets",
EnvVar: "REVA_ASSET_PATH",
Destination: &cfg.Asset.Path,
},
}
}
*/
+27 -7
View File
@@ -172,6 +172,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_HOME_DATA_SERVER_URL"},
Destination: &cfg.Reva.StorageHome.DataServerURL,
},
&cli.BoolFlag{
Name: "enable-home-creation",
Value: true,
Usage: "if enabled home dirs will be automatically created",
EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"},
Destination: &cfg.Reva.StorageHome.EnableHomeCreation,
},
// Storage drivers
@@ -243,6 +250,12 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"},
Destination: &cfg.Reva.Storages.EOS.UseKeytab,
},
&cli.BoolFlag{
Name: "storage-eos-enable-home",
Usage: "enable the creation of home directories",
EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"},
Destination: &cfg.Reva.Storages.EOS.EnableHome,
},
&cli.StringFlag{
Name: "storage-eos-sec-protocol",
Value: "",
@@ -264,6 +277,13 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"},
Destination: &cfg.Reva.Storages.EOS.SingleUsername,
},
&cli.StringFlag{
Name: "storage-eos-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"},
Destination: &cfg.Reva.Storages.EOS.Layout,
},
// local
@@ -291,13 +311,6 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"},
Destination: &cfg.Reva.Storages.OwnCloud.Scan,
},
&cli.BoolFlag{
Name: "storage-owncloud-autocreate",
Value: true,
Usage: "autocreate home path for new users",
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"},
Destination: &cfg.Reva.Storages.OwnCloud.Autocreate,
},
&cli.StringFlag{
Name: "storage-owncloud-redis",
Value: ":6379",
@@ -305,5 +318,12 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"},
Destination: &cfg.Reva.Storages.OwnCloud.Redis,
},
&cli.StringFlag{
Name: "storage-owncloud-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"},
Destination: &cfg.Reva.Storages.OwnCloud.Layout,
},
}
}
+20 -7
View File
@@ -214,6 +214,12 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"},
Destination: &cfg.Reva.Storages.EOS.UseKeytab,
},
&cli.BoolFlag{
Name: "storage-eos-enable-home",
Usage: "enable the creation of home directories",
EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"},
Destination: &cfg.Reva.Storages.EOS.EnableHome,
},
&cli.StringFlag{
Name: "storage-eos-sec-protocol",
Value: "",
@@ -235,6 +241,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"},
Destination: &cfg.Reva.Storages.EOS.SingleUsername,
},
&cli.StringFlag{
Name: "storage-eos-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"},
Destination: &cfg.Reva.Storages.EOS.Layout,
},
// local
@@ -262,13 +275,6 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"},
Destination: &cfg.Reva.Storages.OwnCloud.Scan,
},
&cli.BoolFlag{
Name: "storage-owncloud-autocreate",
Value: true,
Usage: "autocreate home path for new users",
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"},
Destination: &cfg.Reva.Storages.OwnCloud.Autocreate,
},
&cli.StringFlag{
Name: "storage-owncloud-redis",
Value: ":6379",
@@ -276,6 +282,13 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"},
Destination: &cfg.Reva.Storages.OwnCloud.Redis,
},
&cli.StringFlag{
Name: "storage-owncloud-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"},
Destination: &cfg.Reva.Storages.OwnCloud.Layout,
},
// Gateway
+27 -7
View File
@@ -172,6 +172,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OC_DATA_SERVER_URL"},
Destination: &cfg.Reva.StorageOC.DataServerURL,
},
&cli.BoolFlag{
Name: "enable-home-creation",
// Value: true, // TODO jfd we may need to default to true here so the new webdav endpoint will autocreate user homes as well
Usage: "if enabled home dirs will be automatically created",
EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"},
Destination: &cfg.Reva.StorageHome.EnableHomeCreation,
},
// Storage drivers
@@ -243,6 +250,12 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"},
Destination: &cfg.Reva.Storages.EOS.UseKeytab,
},
&cli.BoolFlag{
Name: "storage-eos-enable-home",
Usage: "enable the creation of home directories",
EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"},
Destination: &cfg.Reva.Storages.EOS.EnableHome,
},
&cli.StringFlag{
Name: "storage-eos-sec-protocol",
Value: "",
@@ -264,6 +277,13 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"},
Destination: &cfg.Reva.Storages.EOS.SingleUsername,
},
&cli.StringFlag{
Name: "storage-eos-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"},
Destination: &cfg.Reva.Storages.EOS.Layout,
},
// local
@@ -291,13 +311,6 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"},
Destination: &cfg.Reva.Storages.OwnCloud.Scan,
},
&cli.BoolFlag{
Name: "storage-owncloud-autocreate",
Value: true,
Usage: "autocreate home path for new users",
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"},
Destination: &cfg.Reva.Storages.OwnCloud.Autocreate,
},
&cli.StringFlag{
Name: "storage-owncloud-redis",
Value: ":6379",
@@ -305,5 +318,12 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"},
Destination: &cfg.Reva.Storages.OwnCloud.Redis,
},
&cli.StringFlag{
Name: "storage-owncloud-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"},
Destination: &cfg.Reva.Storages.OwnCloud.Layout,
},
}
}
+20 -7
View File
@@ -214,6 +214,12 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"},
Destination: &cfg.Reva.Storages.EOS.UseKeytab,
},
&cli.BoolFlag{
Name: "storage-eos-enable-home",
Usage: "enable the creation of home directories",
EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"},
Destination: &cfg.Reva.Storages.EOS.EnableHome,
},
&cli.StringFlag{
Name: "storage-eos-sec-protocol",
Value: "",
@@ -235,6 +241,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"},
Destination: &cfg.Reva.Storages.EOS.SingleUsername,
},
&cli.StringFlag{
Name: "storage-eos-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"},
Destination: &cfg.Reva.Storages.EOS.Layout,
},
// local
@@ -262,13 +275,6 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"},
Destination: &cfg.Reva.Storages.OwnCloud.Scan,
},
&cli.BoolFlag{
Name: "storage-owncloud-autocreate",
Value: true,
Usage: "autocreate home path for new users",
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"},
Destination: &cfg.Reva.Storages.OwnCloud.Autocreate,
},
&cli.StringFlag{
Name: "storage-owncloud-redis",
Value: ":6379",
@@ -276,6 +282,13 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"},
Destination: &cfg.Reva.Storages.OwnCloud.Redis,
},
&cli.StringFlag{
Name: "storage-owncloud-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"},
Destination: &cfg.Reva.Storages.OwnCloud.Layout,
},
// Gateway
+26 -7
View File
@@ -171,6 +171,12 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_ROOT_DATA_SERVER_URL"},
Destination: &cfg.Reva.StorageRoot.DataServerURL,
},
&cli.BoolFlag{
Name: "enable-home-creation",
Usage: "if enabled home dirs will be automatically created",
EnvVars: []string{"REVA_STORAGE_HOME_ENABLE_HOME_CREATION"},
Destination: &cfg.Reva.StorageHome.EnableHomeCreation,
},
// Storage drivers
@@ -242,6 +248,12 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_USE_KEYTAB"},
Destination: &cfg.Reva.Storages.EOS.UseKeytab,
},
&cli.BoolFlag{
Name: "storage-eos-enable-home",
Usage: "enable the creation of home directories",
EnvVars: []string{"REVA_STORAGE_EOS_ENABLE_HOME"},
Destination: &cfg.Reva.Storages.EOS.EnableHome,
},
&cli.StringFlag{
Name: "storage-eos-sec-protocol",
Value: "",
@@ -263,6 +275,13 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_EOS_SINGLE_USERNAME"},
Destination: &cfg.Reva.Storages.EOS.SingleUsername,
},
&cli.StringFlag{
Name: "storage-eos-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_EOS_LAYOUT"},
Destination: &cfg.Reva.Storages.EOS.Layout,
},
// local
@@ -290,13 +309,6 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_SCAN"},
Destination: &cfg.Reva.Storages.OwnCloud.Scan,
},
&cli.BoolFlag{
Name: "storage-owncloud-autocreate",
Value: true,
Usage: "autocreate home path for new users",
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_AUTOCREATE"},
Destination: &cfg.Reva.Storages.OwnCloud.Autocreate,
},
&cli.StringFlag{
Name: "storage-owncloud-redis",
Value: ":6379",
@@ -304,5 +316,12 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag {
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_REDIS_ADDR"},
Destination: &cfg.Reva.Storages.OwnCloud.Redis,
},
&cli.StringFlag{
Name: "storage-owncloud-layout",
Value: "{{.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" `,
EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"},
Destination: &cfg.Reva.Storages.OwnCloud.Layout,
},
}
}