diff --git a/services/storage-users/pkg/command/uploads.go b/services/storage-users/pkg/command/uploads.go index 506dee2dab..568864defc 100644 --- a/services/storage-users/pkg/command/uploads.go +++ b/services/storage-users/pkg/command/uploads.go @@ -44,8 +44,8 @@ func ListUploads(cfg *config.Config) *cli.Command { fmt.Fprintf(os.Stderr, "Unknown filesystem driver '%s'\n", cfg.Driver) os.Exit(1) } - drivers := revaconfig.UserDrivers(cfg) - fs, err := f(drivers[cfg.Driver].(map[string]interface{})) + drivers := revaconfig.StorageProviderDrivers(cfg) + fs, err := f(drivers[cfg.Driver].(map[string]interface{}), nil) if err != nil { fmt.Fprintf(os.Stderr, "Failed to initialize filesystem driver '%s'\n", cfg.Driver) return err @@ -85,8 +85,8 @@ func PurgeExpiredUploads(cfg *config.Config) *cli.Command { fmt.Fprintf(os.Stderr, "Unknown filesystem driver '%s'\n", cfg.Driver) os.Exit(1) } - drivers := revaconfig.UserDrivers(cfg) - fs, err := f(drivers[cfg.Driver].(map[string]interface{})) + drivers := revaconfig.StorageProviderDrivers(cfg) + fs, err := f(drivers[cfg.Driver].(map[string]interface{}), nil) if err != nil { fmt.Fprintf(os.Stderr, "Failed to initialize filesystem driver '%s'\n", cfg.Driver) return err diff --git a/services/storage-users/pkg/revaconfig/config.go b/services/storage-users/pkg/revaconfig/config.go index 91e2ad06d3..cb072d8172 100644 --- a/services/storage-users/pkg/revaconfig/config.go +++ b/services/storage-users/pkg/revaconfig/config.go @@ -31,7 +31,7 @@ func StorageUsersConfigFromStruct(cfg *config.Config) map[string]interface{} { "services": map[string]interface{}{ "storageprovider": map[string]interface{}{ "driver": cfg.Driver, - "drivers": UserDrivers(cfg), + "drivers": StorageProviderDrivers(cfg), "mount_id": cfg.MountID, "expose_data_server": cfg.ExposeDataServer, "data_server_url": cfg.DataServerURL, @@ -65,7 +65,7 @@ func StorageUsersConfigFromStruct(cfg *config.Config) map[string]interface{} { "dataprovider": map[string]interface{}{ "prefix": cfg.HTTP.Prefix, "driver": cfg.Driver, - "drivers": UserDrivers(cfg), + "drivers": DataProviderDrivers(cfg), "nats_address": cfg.Events.Addr, "nats_clusterID": cfg.Events.ClusterID, "nats_tls_insecure": cfg.Events.TLSInsecure, diff --git a/services/storage-users/pkg/revaconfig/drivers.go b/services/storage-users/pkg/revaconfig/drivers.go new file mode 100644 index 0000000000..86758ba772 --- /dev/null +++ b/services/storage-users/pkg/revaconfig/drivers.go @@ -0,0 +1,248 @@ +package revaconfig + +import "github.com/owncloud/ocis/v2/services/storage-users/pkg/config" + +// EOS is the config mapping for the EOS storage driver +func EOS(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "namespace": cfg.Drivers.EOS.Root, + "shadow_namespace": cfg.Drivers.EOS.ShadowNamespace, + "uploads_namespace": cfg.Drivers.EOS.UploadsNamespace, + "share_folder": cfg.Drivers.EOS.ShareFolder, + "eos_binary": cfg.Drivers.EOS.EosBinary, + "xrdcopy_binary": cfg.Drivers.EOS.XrdcopyBinary, + "master_url": cfg.Drivers.EOS.MasterURL, + "slave_url": cfg.Drivers.EOS.SlaveURL, + "cache_directory": cfg.Drivers.EOS.CacheDirectory, + "sec_protocol": cfg.Drivers.EOS.SecProtocol, + "keytab": cfg.Drivers.EOS.Keytab, + "single_username": cfg.Drivers.EOS.SingleUsername, + "enable_logging": cfg.Drivers.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Drivers.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Drivers.EOS.ForceSingleUserMode, + "use_keytab": cfg.Drivers.EOS.UseKeytab, + "gatewaysvc": cfg.Drivers.EOS.GatewaySVC, + } +} + +// EOSHome is the config mapping for the EOSHome storage driver +func EOSHome(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "namespace": cfg.Drivers.EOS.Root, + "shadow_namespace": cfg.Drivers.EOS.ShadowNamespace, + "uploads_namespace": cfg.Drivers.EOS.UploadsNamespace, + "share_folder": cfg.Drivers.EOS.ShareFolder, + "eos_binary": cfg.Drivers.EOS.EosBinary, + "xrdcopy_binary": cfg.Drivers.EOS.XrdcopyBinary, + "master_url": cfg.Drivers.EOS.MasterURL, + "slave_url": cfg.Drivers.EOS.SlaveURL, + "cache_directory": cfg.Drivers.EOS.CacheDirectory, + "sec_protocol": cfg.Drivers.EOS.SecProtocol, + "keytab": cfg.Drivers.EOS.Keytab, + "single_username": cfg.Drivers.EOS.SingleUsername, + "user_layout": cfg.Drivers.EOS.UserLayout, + "enable_logging": cfg.Drivers.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Drivers.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Drivers.EOS.ForceSingleUserMode, + "use_keytab": cfg.Drivers.EOS.UseKeytab, + "gatewaysvc": cfg.Drivers.EOS.GatewaySVC, + } +} + +// EOSGRPC is the config mapping for the EOSGRPC storage driver +func EOSGRPC(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "namespace": cfg.Drivers.EOS.Root, + "shadow_namespace": cfg.Drivers.EOS.ShadowNamespace, + "share_folder": cfg.Drivers.EOS.ShareFolder, + "eos_binary": cfg.Drivers.EOS.EosBinary, + "xrdcopy_binary": cfg.Drivers.EOS.XrdcopyBinary, + "master_url": cfg.Drivers.EOS.MasterURL, + "master_grpc_uri": cfg.Drivers.EOS.GRPCURI, + "slave_url": cfg.Drivers.EOS.SlaveURL, + "cache_directory": cfg.Drivers.EOS.CacheDirectory, + "sec_protocol": cfg.Drivers.EOS.SecProtocol, + "keytab": cfg.Drivers.EOS.Keytab, + "single_username": cfg.Drivers.EOS.SingleUsername, + "user_layout": cfg.Drivers.EOS.UserLayout, + "enable_logging": cfg.Drivers.EOS.EnableLogging, + "show_hidden_sys_files": cfg.Drivers.EOS.ShowHiddenSysFiles, + "force_single_user_mode": cfg.Drivers.EOS.ForceSingleUserMode, + "use_keytab": cfg.Drivers.EOS.UseKeytab, + "enable_home": false, + "gatewaysvc": cfg.Drivers.EOS.GatewaySVC, + } +} + +// Local is the config mapping for the Local storage driver +func Local(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "root": cfg.Drivers.Local.Root, + "share_folder": cfg.Drivers.Local.ShareFolder, + } +} + +// LocalHome is the config mapping for the LocalHome storage driver +func LocalHome(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "root": cfg.Drivers.Local.Root, + "share_folder": cfg.Drivers.Local.ShareFolder, + "user_layout": cfg.Drivers.Local.UserLayout, + } +} + +// OwnCloudSQL is the config mapping for the OwnCloudSQL storage driver +func OwnCloudSQL(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "datadirectory": cfg.Drivers.OwnCloudSQL.Root, + "upload_info_dir": cfg.Drivers.OwnCloudSQL.UploadInfoDir, + "share_folder": cfg.Drivers.OwnCloudSQL.ShareFolder, + "user_layout": cfg.Drivers.OwnCloudSQL.UserLayout, + "enable_home": false, + "dbusername": cfg.Drivers.OwnCloudSQL.DBUsername, + "dbpassword": cfg.Drivers.OwnCloudSQL.DBPassword, + "dbhost": cfg.Drivers.OwnCloudSQL.DBHost, + "dbport": cfg.Drivers.OwnCloudSQL.DBPort, + "dbname": cfg.Drivers.OwnCloudSQL.DBName, + "userprovidersvc": cfg.Drivers.OwnCloudSQL.UsersProviderEndpoint, + } +} + +// Ocis is the config mapping for the Ocis storage driver +func Ocis(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "root": cfg.Drivers.OCIS.Root, + "user_layout": cfg.Drivers.OCIS.UserLayout, + "share_folder": cfg.Drivers.OCIS.ShareFolder, + "personalspacealias_template": cfg.Drivers.OCIS.PersonalSpaceAliasTemplate, + "generalspacealias_template": cfg.Drivers.OCIS.GeneralSpaceAliasTemplate, + "treetime_accounting": true, + "treesize_accounting": true, + "permissionssvc": cfg.Drivers.OCIS.PermissionsEndpoint, + "permissionssvc_tls_mode": cfg.Commons.GRPCClientTLS.Mode, + "max_acquire_lock_cycles": cfg.Drivers.OCIS.MaxAcquireLockCycles, + "lock_cycle_duration_factor": cfg.Drivers.OCIS.LockCycleDurationFactor, + "asyncfileuploads": cfg.Drivers.OCIS.AsyncUploads, + "statcache": map[string]interface{}{ + "cache_store": cfg.Cache.Store, + "cache_nodes": cfg.Cache.Nodes, + "cache_database": cfg.Cache.Database, + }, + "events": map[string]interface{}{ + "natsaddress": cfg.Events.Addr, + "natsclusterid": cfg.Events.ClusterID, + "tlsinsecure": cfg.Events.TLSInsecure, + "tlsrootcacertificate": cfg.Events.TLSRootCaCertPath, + "numconsumers": cfg.Events.NumConsumers, + }, + "tokens": map[string]interface{}{ + "transfer_shared_secret": cfg.Commons.TransferSecret, + "transfer_expires": cfg.TransferExpires, + "download_endpoint": cfg.DataServerURL, + "datagateway_endpoint": cfg.DataGatewayURL, + }, + } +} + +// OcisNoEvents is the config mapping for the ocis storage driver emitting no events +func OcisNoEvents(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "root": cfg.Drivers.OCIS.Root, + "user_layout": cfg.Drivers.OCIS.UserLayout, + "share_folder": cfg.Drivers.OCIS.ShareFolder, + "personalspacealias_template": cfg.Drivers.OCIS.PersonalSpaceAliasTemplate, + "generalspacealias_template": cfg.Drivers.OCIS.GeneralSpaceAliasTemplate, + "treetime_accounting": true, + "treesize_accounting": true, + "permissionssvc": cfg.Drivers.OCIS.PermissionsEndpoint, + "permissionssvc_tls_mode": cfg.Commons.GRPCClientTLS.Mode, + "max_acquire_lock_cycles": cfg.Drivers.OCIS.MaxAcquireLockCycles, + "lock_cycle_duration_factor": cfg.Drivers.OCIS.LockCycleDurationFactor, + "statcache": map[string]interface{}{ + "cache_store": cfg.Cache.Store, + "cache_nodes": cfg.Cache.Nodes, + "cache_database": cfg.Cache.Database, + }, + } +} + +// S3 is the config mapping for the s3 storage driver +func S3(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "enable_home": false, + "region": cfg.Drivers.S3.Region, + "access_key": cfg.Drivers.S3.AccessKey, + "secret_key": cfg.Drivers.S3.SecretKey, + "endpoint": cfg.Drivers.S3.Endpoint, + "bucket": cfg.Drivers.S3.Bucket, + "prefix": cfg.Drivers.S3.Root, + } +} + +// S3NG is the config mapping for the s3ng storage driver +func S3NG(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "root": cfg.Drivers.S3NG.Root, + "user_layout": cfg.Drivers.S3NG.UserLayout, + "share_folder": cfg.Drivers.S3NG.ShareFolder, + "personalspacealias_template": cfg.Drivers.S3NG.PersonalSpaceAliasTemplate, + "generalspacealias_template": cfg.Drivers.S3NG.GeneralSpaceAliasTemplate, + "treetime_accounting": true, + "treesize_accounting": true, + "permissionssvc": cfg.Drivers.S3NG.PermissionsEndpoint, + "permissionssvc_tls_mode": cfg.Commons.GRPCClientTLS.Mode, + "s3.region": cfg.Drivers.S3NG.Region, + "s3.access_key": cfg.Drivers.S3NG.AccessKey, + "s3.secret_key": cfg.Drivers.S3NG.SecretKey, + "s3.endpoint": cfg.Drivers.S3NG.Endpoint, + "s3.bucket": cfg.Drivers.S3NG.Bucket, + "max_acquire_lock_cycles": cfg.Drivers.S3NG.MaxAcquireLockCycles, + "lock_cycle_duration_factor": cfg.Drivers.S3NG.LockCycleDurationFactor, + "asyncfileuploads": cfg.Drivers.OCIS.AsyncUploads, + "statcache": map[string]interface{}{ + "cache_store": cfg.Cache.Store, + "cache_nodes": cfg.Cache.Nodes, + "cache_database": cfg.Cache.Database, + }, + "events": map[string]interface{}{ + "natsaddress": cfg.Events.Addr, + "natsclusterid": cfg.Events.ClusterID, + "tlsinsecure": cfg.Events.TLSInsecure, + "tlsrootcacertificate": cfg.Events.TLSRootCaCertPath, + "numconsumers": cfg.Events.NumConsumers, + }, + "tokens": map[string]interface{}{ + "transfer_shared_secret": cfg.Commons.TransferSecret, + "transfer_expires": cfg.TransferExpires, + "download_endpoint": cfg.DataServerURL, + "datagateway_endpoint": cfg.DataGatewayURL, + }, + } +} + +// S3NGNoEvents is the config mapping for the s3ng storage driver emitting no events +func S3NGNoEvents(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "root": cfg.Drivers.S3NG.Root, + "user_layout": cfg.Drivers.S3NG.UserLayout, + "share_folder": cfg.Drivers.S3NG.ShareFolder, + "personalspacealias_template": cfg.Drivers.S3NG.PersonalSpaceAliasTemplate, + "generalspacealias_template": cfg.Drivers.S3NG.GeneralSpaceAliasTemplate, + "treetime_accounting": true, + "treesize_accounting": true, + "permissionssvc": cfg.Drivers.S3NG.PermissionsEndpoint, + "permissionssvc_tls_mode": cfg.Commons.GRPCClientTLS.Mode, + "s3.region": cfg.Drivers.S3NG.Region, + "s3.access_key": cfg.Drivers.S3NG.AccessKey, + "s3.secret_key": cfg.Drivers.S3NG.SecretKey, + "s3.endpoint": cfg.Drivers.S3NG.Endpoint, + "s3.bucket": cfg.Drivers.S3NG.Bucket, + "max_acquire_lock_cycles": cfg.Drivers.S3NG.MaxAcquireLockCycles, + "lock_cycle_duration_factor": cfg.Drivers.S3NG.LockCycleDurationFactor, + "statcache": map[string]interface{}{ + "cache_store": cfg.Cache.Store, + "cache_nodes": cfg.Cache.Nodes, + "cache_database": cfg.Cache.Database, + }, + } +} diff --git a/services/storage-users/pkg/revaconfig/user.go b/services/storage-users/pkg/revaconfig/user.go index 0e6830408d..ef64d94b20 100644 --- a/services/storage-users/pkg/revaconfig/user.go +++ b/services/storage-users/pkg/revaconfig/user.go @@ -2,167 +2,32 @@ package revaconfig import "github.com/owncloud/ocis/v2/services/storage-users/pkg/config" -func UserDrivers(cfg *config.Config) map[string]interface{} { +// StorageProviderDrivers are the drivers for the storage provider +func StorageProviderDrivers(cfg *config.Config) map[string]interface{} { return map[string]interface{}{ - "eos": map[string]interface{}{ - "namespace": cfg.Drivers.EOS.Root, - "shadow_namespace": cfg.Drivers.EOS.ShadowNamespace, - "uploads_namespace": cfg.Drivers.EOS.UploadsNamespace, - "share_folder": cfg.Drivers.EOS.ShareFolder, - "eos_binary": cfg.Drivers.EOS.EosBinary, - "xrdcopy_binary": cfg.Drivers.EOS.XrdcopyBinary, - "master_url": cfg.Drivers.EOS.MasterURL, - "slave_url": cfg.Drivers.EOS.SlaveURL, - "cache_directory": cfg.Drivers.EOS.CacheDirectory, - "sec_protocol": cfg.Drivers.EOS.SecProtocol, - "keytab": cfg.Drivers.EOS.Keytab, - "single_username": cfg.Drivers.EOS.SingleUsername, - "enable_logging": cfg.Drivers.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Drivers.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Drivers.EOS.ForceSingleUserMode, - "use_keytab": cfg.Drivers.EOS.UseKeytab, - "gatewaysvc": cfg.Drivers.EOS.GatewaySVC, - }, - "eoshome": map[string]interface{}{ - "namespace": cfg.Drivers.EOS.Root, - "shadow_namespace": cfg.Drivers.EOS.ShadowNamespace, - "uploads_namespace": cfg.Drivers.EOS.UploadsNamespace, - "share_folder": cfg.Drivers.EOS.ShareFolder, - "eos_binary": cfg.Drivers.EOS.EosBinary, - "xrdcopy_binary": cfg.Drivers.EOS.XrdcopyBinary, - "master_url": cfg.Drivers.EOS.MasterURL, - "slave_url": cfg.Drivers.EOS.SlaveURL, - "cache_directory": cfg.Drivers.EOS.CacheDirectory, - "sec_protocol": cfg.Drivers.EOS.SecProtocol, - "keytab": cfg.Drivers.EOS.Keytab, - "single_username": cfg.Drivers.EOS.SingleUsername, - "user_layout": cfg.Drivers.EOS.UserLayout, - "enable_logging": cfg.Drivers.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Drivers.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Drivers.EOS.ForceSingleUserMode, - "use_keytab": cfg.Drivers.EOS.UseKeytab, - "gatewaysvc": cfg.Drivers.EOS.GatewaySVC, - }, - "eosgrpc": map[string]interface{}{ - "namespace": cfg.Drivers.EOS.Root, - "shadow_namespace": cfg.Drivers.EOS.ShadowNamespace, - "share_folder": cfg.Drivers.EOS.ShareFolder, - "eos_binary": cfg.Drivers.EOS.EosBinary, - "xrdcopy_binary": cfg.Drivers.EOS.XrdcopyBinary, - "master_url": cfg.Drivers.EOS.MasterURL, - "master_grpc_uri": cfg.Drivers.EOS.GRPCURI, - "slave_url": cfg.Drivers.EOS.SlaveURL, - "cache_directory": cfg.Drivers.EOS.CacheDirectory, - "sec_protocol": cfg.Drivers.EOS.SecProtocol, - "keytab": cfg.Drivers.EOS.Keytab, - "single_username": cfg.Drivers.EOS.SingleUsername, - "user_layout": cfg.Drivers.EOS.UserLayout, - "enable_logging": cfg.Drivers.EOS.EnableLogging, - "show_hidden_sys_files": cfg.Drivers.EOS.ShowHiddenSysFiles, - "force_single_user_mode": cfg.Drivers.EOS.ForceSingleUserMode, - "use_keytab": cfg.Drivers.EOS.UseKeytab, - "enable_home": false, - "gatewaysvc": cfg.Drivers.EOS.GatewaySVC, - }, - "local": map[string]interface{}{ - "root": cfg.Drivers.Local.Root, - "share_folder": cfg.Drivers.Local.ShareFolder, - }, - "localhome": map[string]interface{}{ - "root": cfg.Drivers.Local.Root, - "share_folder": cfg.Drivers.Local.ShareFolder, - "user_layout": cfg.Drivers.Local.UserLayout, - }, - "owncloudsql": map[string]interface{}{ - "datadirectory": cfg.Drivers.OwnCloudSQL.Root, - "upload_info_dir": cfg.Drivers.OwnCloudSQL.UploadInfoDir, - "share_folder": cfg.Drivers.OwnCloudSQL.ShareFolder, - "user_layout": cfg.Drivers.OwnCloudSQL.UserLayout, - "enable_home": false, - "dbusername": cfg.Drivers.OwnCloudSQL.DBUsername, - "dbpassword": cfg.Drivers.OwnCloudSQL.DBPassword, - "dbhost": cfg.Drivers.OwnCloudSQL.DBHost, - "dbport": cfg.Drivers.OwnCloudSQL.DBPort, - "dbname": cfg.Drivers.OwnCloudSQL.DBName, - "userprovidersvc": cfg.Drivers.OwnCloudSQL.UsersProviderEndpoint, - }, - "ocis": map[string]interface{}{ - "root": cfg.Drivers.OCIS.Root, - "user_layout": cfg.Drivers.OCIS.UserLayout, - "share_folder": cfg.Drivers.OCIS.ShareFolder, - "personalspacealias_template": cfg.Drivers.OCIS.PersonalSpaceAliasTemplate, - "generalspacealias_template": cfg.Drivers.OCIS.GeneralSpaceAliasTemplate, - "treetime_accounting": true, - "treesize_accounting": true, - "permissionssvc": cfg.Drivers.OCIS.PermissionsEndpoint, - "permissionssvc_tls_mode": cfg.Commons.GRPCClientTLS.Mode, - "max_acquire_lock_cycles": cfg.Drivers.OCIS.MaxAcquireLockCycles, - "lock_cycle_duration_factor": cfg.Drivers.OCIS.LockCycleDurationFactor, - "asyncfileuploads": cfg.Drivers.OCIS.AsyncUploads, - "statcache": map[string]interface{}{ - "cache_store": cfg.Cache.Store, - "cache_nodes": cfg.Cache.Nodes, - "cache_database": cfg.Cache.Database, - }, - "events": map[string]interface{}{ - "natsaddress": cfg.Events.Addr, - "natsclusterid": cfg.Events.ClusterID, - "tlsinsecure": cfg.Events.TLSInsecure, - "tlsrootcacertificate": cfg.Events.TLSRootCaCertPath, - "numconsumers": cfg.Events.NumConsumers, - }, - "tokens": map[string]interface{}{ - "transfer_shared_secret": cfg.Commons.TransferSecret, - "transfer_expires": cfg.TransferExpires, - "download_endpoint": cfg.DataServerURL, - "datagateway_endpoint": cfg.DataGatewayURL, - }, - }, - "s3": map[string]interface{}{ - "enable_home": false, - "region": cfg.Drivers.S3.Region, - "access_key": cfg.Drivers.S3.AccessKey, - "secret_key": cfg.Drivers.S3.SecretKey, - "endpoint": cfg.Drivers.S3.Endpoint, - "bucket": cfg.Drivers.S3.Bucket, - "prefix": cfg.Drivers.S3.Root, - }, - "s3ng": map[string]interface{}{ - "root": cfg.Drivers.S3NG.Root, - "user_layout": cfg.Drivers.S3NG.UserLayout, - "share_folder": cfg.Drivers.S3NG.ShareFolder, - "personalspacealias_template": cfg.Drivers.S3NG.PersonalSpaceAliasTemplate, - "generalspacealias_template": cfg.Drivers.S3NG.GeneralSpaceAliasTemplate, - "treetime_accounting": true, - "treesize_accounting": true, - "permissionssvc": cfg.Drivers.S3NG.PermissionsEndpoint, - "permissionssvc_tls_mode": cfg.Commons.GRPCClientTLS.Mode, - "s3.region": cfg.Drivers.S3NG.Region, - "s3.access_key": cfg.Drivers.S3NG.AccessKey, - "s3.secret_key": cfg.Drivers.S3NG.SecretKey, - "s3.endpoint": cfg.Drivers.S3NG.Endpoint, - "s3.bucket": cfg.Drivers.S3NG.Bucket, - "max_acquire_lock_cycles": cfg.Drivers.S3NG.MaxAcquireLockCycles, - "lock_cycle_duration_factor": cfg.Drivers.S3NG.LockCycleDurationFactor, - "asyncfileuploads": cfg.Drivers.OCIS.AsyncUploads, - "statcache": map[string]interface{}{ - "cache_store": cfg.Cache.Store, - "cache_nodes": cfg.Cache.Nodes, - "cache_database": cfg.Cache.Database, - }, - "events": map[string]interface{}{ - "natsaddress": cfg.Events.Addr, - "natsclusterid": cfg.Events.ClusterID, - "tlsinsecure": cfg.Events.TLSInsecure, - "tlsrootcacertificate": cfg.Events.TLSRootCaCertPath, - "numconsumers": cfg.Events.NumConsumers, - }, - "tokens": map[string]interface{}{ - "transfer_shared_secret": cfg.Commons.TransferSecret, - "transfer_expires": cfg.TransferExpires, - "download_endpoint": cfg.DataServerURL, - "datagateway_endpoint": cfg.DataGatewayURL, - }, - }, + "eos": EOS(cfg), + "eoshome": EOSHome(cfg), + "eosgrpc": EOSGRPC(cfg), + "local": Local(cfg), + "localhome": LocalHome(cfg), + "owncloudsql": OwnCloudSQL(cfg), + "ocis": OcisNoEvents(cfg), + "s3": S3(cfg), + "s3ng": S3NGNoEvents(cfg), + } +} + +// DataProviderDrivers are the drivers for the storage provider +func DataProviderDrivers(cfg *config.Config) map[string]interface{} { + return map[string]interface{}{ + "eos": EOS(cfg), + "eoshome": EOSHome(cfg), + "eosgrpc": EOSGRPC(cfg), + "local": Local(cfg), + "localhome": LocalHome(cfg), + "owncloudsql": OwnCloudSQL(cfg), + "ocis": Ocis(cfg), + "s3": S3(cfg), + "s3ng": S3NG(cfg), } }