diff --git a/storage/pkg/command/appprovider.go b/storage/pkg/command/appprovider.go index 271fbecd5..710275936 100644 --- a/storage/pkg/command/appprovider.go +++ b/storage/pkg/command/appprovider.go @@ -81,6 +81,19 @@ func AppProvider(cfg *config.Config) *cli.Command { // appProviderConfigFromStruct will adapt an oCIS config struct into a reva mapstructure to start a reva service. func appProviderConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]interface{} { + drivers := map[string]interface{}{} + if cfg.Reva.AppProvider.Driver == "wopi" { + drivers = map[string]interface{}{ + "wopi": map[string]interface{}{ + "app_name": "CS3 WOPI server", + "insecure_connections": cfg.Reva.AppProvider.WopiDriver.Insecure, + "iop_secret": cfg.Reva.AppProvider.WopiDriver.IopSecret, + "wopi_url": cfg.Reva.AppProvider.WopiDriver.WopiURL, + "app_url": cfg.Reva.AppProvider.WopiDriver.AppURL, + }, + } + } + rcfg := map[string]interface{}{ "core": map[string]interface{}{ "max_cpus": cfg.Reva.AppProvider.MaxCPUs, @@ -99,16 +112,8 @@ func appProviderConfigFromStruct(c *cli.Context, cfg *config.Config) map[string] "services": map[string]interface{}{ "appprovider": map[string]interface{}{ "app_provider_url": cfg.Reva.AppProvider.ExternalAddr, - "driver": "wopi", //TODO: make configurable - "drivers": map[string]interface{}{ - "wopi": map[string]interface{}{ - "app_name": "CS3 WOPI server", - "insecure_connections": cfg.Reva.AppProvider.WopiDriver.Insecure, - "iop_secret": cfg.Reva.AppProvider.WopiDriver.IopSecret, - "wopi_url": cfg.Reva.AppProvider.WopiDriver.WopiURL, - "app_url": cfg.Reva.AppProvider.WopiDriver.AppURL, - }, - }, + "driver": cfg.Reva.AppProvider.Driver, + "drivers": drivers, }, }, }, diff --git a/storage/pkg/config/config.go b/storage/pkg/config/config.go index 534a70d9c..8ad6e69bd 100644 --- a/storage/pkg/config/config.go +++ b/storage/pkg/config/config.go @@ -43,6 +43,7 @@ type StorageRegistry struct { type AppProvider struct { Port ExternalAddr string + Driver string WopiDriver WopiDriver } diff --git a/storage/pkg/flagset/appprovider.go b/storage/pkg/flagset/appprovider.go index da8d328f1..3f85ae812 100644 --- a/storage/pkg/flagset/appprovider.go +++ b/storage/pkg/flagset/appprovider.go @@ -53,6 +53,14 @@ func AppProviderWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"APP_PROVIDER_BASIC_SERVICES"}, }, + &cli.StringFlag{ + Name: "driver", + Value: flags.OverrideDefaultString(cfg.Reva.AppProvider.Driver, ""), + Usage: "Driver to use for app provider", + EnvVars: []string{"APP_PROVIDER_DRIVER"}, + Destination: &cfg.Reva.AppProvider.Driver, + }, + // WOPI driver &cli.StringFlag{ Name: "wopi-driver-iopsecret",