add spaces registry, drop mount_path
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
@@ -181,7 +181,11 @@ func gatewayConfigFromStruct(c *cli.Context, cfg *config.Config, logger log.Logg
|
|||||||
"drivers": map[string]interface{}{
|
"drivers": map[string]interface{}{
|
||||||
"static": map[string]interface{}{
|
"static": map[string]interface{}{
|
||||||
"home_provider": cfg.Reva.StorageRegistry.HomeProvider,
|
"home_provider": cfg.Reva.StorageRegistry.HomeProvider,
|
||||||
"rules": rules(cfg, logger),
|
"rules": simpleRules(cfg, logger),
|
||||||
|
},
|
||||||
|
"spaces": map[string]interface{}{
|
||||||
|
"home_provider": cfg.Reva.StorageRegistry.HomeProvider,
|
||||||
|
"rules": spacesRules(cfg, logger),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -191,7 +195,7 @@ func gatewayConfigFromStruct(c *cli.Context, cfg *config.Config, logger log.Logg
|
|||||||
return rcfg
|
return rcfg
|
||||||
}
|
}
|
||||||
|
|
||||||
func rules(cfg *config.Config, logger log.Logger) map[string]map[string]interface{} {
|
func simpleRules(cfg *config.Config, logger log.Logger) map[string]map[string]interface{} {
|
||||||
|
|
||||||
// if a list of rules is given it overrides the generated rules from below
|
// if a list of rules is given it overrides the generated rules from below
|
||||||
if len(cfg.Reva.StorageRegistry.Rules) > 0 {
|
if len(cfg.Reva.StorageRegistry.Rules) > 0 {
|
||||||
@@ -233,6 +237,44 @@ func rules(cfg *config.Config, logger log.Logger) map[string]map[string]interfac
|
|||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func spacesRules(cfg *config.Config, logger log.Logger) map[string]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]map[string]interface{}{}
|
||||||
|
for i := range cfg.Reva.StorageRegistry.Rules {
|
||||||
|
parts := strings.SplitN(cfg.Reva.StorageRegistry.Rules[i], "=", 2)
|
||||||
|
rules[parts[0]] = map[string]interface{}{"address": parts[1]}
|
||||||
|
}
|
||||||
|
return rules
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if the rules have to be read from a json file
|
||||||
|
if cfg.Reva.StorageRegistry.JSON != "" {
|
||||||
|
data, err := ioutil.ReadFile(cfg.Reva.StorageRegistry.JSON)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error().Err(err).Msg("Failed to read storage registry rules from JSON file: " + cfg.Reva.StorageRegistry.JSON)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
var rules map[string]map[string]interface{}
|
||||||
|
if err = json.Unmarshal(data, &rules); err != nil {
|
||||||
|
logger.Error().Err(err).Msg("Failed to unmarshal storage registry rules")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return rules
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate rules based on default config
|
||||||
|
return map[string]map[string]interface{}{
|
||||||
|
"/personal": {"address": cfg.Reva.StorageUsers.Endpoint},
|
||||||
|
// public link storage returns the mount id of the actual storage
|
||||||
|
"/public": {"address": cfg.Reva.StoragePublicLink.Endpoint},
|
||||||
|
// TODO shares
|
||||||
|
//"/shares": {"address": cfg.Reva.StoragePublicLink.Endpoint},
|
||||||
|
// medatada storage not part of the global namespace
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func mimetypes(cfg *config.Config, logger log.Logger) []map[string]interface{} {
|
func mimetypes(cfg *config.Config, logger log.Logger) []map[string]interface{} {
|
||||||
|
|
||||||
type mimeTypeConfig struct {
|
type mimeTypeConfig struct {
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ func storageHomeConfigFromStruct(c *cli.Context, cfg *config.Config) map[string]
|
|||||||
"storageprovider": map[string]interface{}{
|
"storageprovider": map[string]interface{}{
|
||||||
"driver": cfg.Reva.StorageHome.Driver,
|
"driver": cfg.Reva.StorageHome.Driver,
|
||||||
"drivers": storagedrivers.HomeDrivers(cfg),
|
"drivers": storagedrivers.HomeDrivers(cfg),
|
||||||
"mount_path": cfg.Reva.StorageHome.MountPath,
|
|
||||||
"mount_id": cfg.Reva.StorageHome.MountID,
|
"mount_id": cfg.Reva.StorageHome.MountID,
|
||||||
"expose_data_server": cfg.Reva.StorageHome.ExposeDataServer,
|
"expose_data_server": cfg.Reva.StorageHome.ExposeDataServer,
|
||||||
"data_server_url": cfg.Reva.StorageHome.DataServerURL,
|
"data_server_url": cfg.Reva.StorageHome.DataServerURL,
|
||||||
|
|||||||
@@ -132,7 +132,6 @@ func storageMetadataFromStruct(c *cli.Context, cfg *config.Config) map[string]in
|
|||||||
},
|
},
|
||||||
"services": map[string]interface{}{
|
"services": map[string]interface{}{
|
||||||
"storageprovider": map[string]interface{}{
|
"storageprovider": map[string]interface{}{
|
||||||
"mount_path": "/meta",
|
|
||||||
"driver": cfg.Reva.StorageMetadata.Driver,
|
"driver": cfg.Reva.StorageMetadata.Driver,
|
||||||
"drivers": storagedrivers.MetadataDrivers(cfg),
|
"drivers": storagedrivers.MetadataDrivers(cfg),
|
||||||
"data_server_url": cfg.Reva.StorageMetadata.DataServerURL,
|
"data_server_url": cfg.Reva.StorageMetadata.DataServerURL,
|
||||||
|
|||||||
@@ -101,8 +101,6 @@ func storagePublicLinkConfigFromStruct(c *cli.Context, cfg *config.Config) map[s
|
|||||||
},
|
},
|
||||||
"services": map[string]interface{}{
|
"services": map[string]interface{}{
|
||||||
"publicstorageprovider": map[string]interface{}{
|
"publicstorageprovider": map[string]interface{}{
|
||||||
"mount_path": cfg.Reva.StoragePublicLink.MountPath,
|
|
||||||
"mount_id": cfg.Reva.StoragePublicLink.MountID,
|
|
||||||
"gateway_addr": cfg.Reva.Gateway.Endpoint,
|
"gateway_addr": cfg.Reva.Gateway.Endpoint,
|
||||||
},
|
},
|
||||||
"authprovider": map[string]interface{}{
|
"authprovider": map[string]interface{}{
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ func storageUsersConfigFromStruct(c *cli.Context, cfg *config.Config) map[string
|
|||||||
"storageprovider": map[string]interface{}{
|
"storageprovider": map[string]interface{}{
|
||||||
"driver": cfg.Reva.StorageUsers.Driver,
|
"driver": cfg.Reva.StorageUsers.Driver,
|
||||||
"drivers": storagedrivers.UserDrivers(cfg),
|
"drivers": storagedrivers.UserDrivers(cfg),
|
||||||
"mount_path": cfg.Reva.StorageUsers.MountPath,
|
|
||||||
"mount_id": cfg.Reva.StorageUsers.MountID,
|
"mount_id": cfg.Reva.StorageUsers.MountID,
|
||||||
"expose_data_server": cfg.Reva.StorageUsers.ExposeDataServer,
|
"expose_data_server": cfg.Reva.StorageUsers.ExposeDataServer,
|
||||||
"data_server_url": cfg.Reva.StorageUsers.DataServerURL,
|
"data_server_url": cfg.Reva.StorageUsers.DataServerURL,
|
||||||
|
|||||||
Reference in New Issue
Block a user