diff --git a/opencloud/pkg/backup/provider.go b/opencloud/pkg/backup/provider.go index f076f47107..bd91ee8f1b 100644 --- a/opencloud/pkg/backup/provider.go +++ b/opencloud/pkg/backup/provider.go @@ -134,7 +134,7 @@ func (dp *DataProvider) getBlobPath(path string) (string, Inconsistency) { if bid := m["user.oc.blobid"]; string(bid) != "" { spaceID, _ := getIDsFromPath(filepath.Join(dp.discpath, path)) - return dp.lbs.Path(&node.Node{BlobID: string(bid), SpaceID: spaceID}), "" + return dp.lbs.Path(&node.Node{BaseNode: node.BaseNode{SpaceID: spaceID}, BlobID: string(bid)}), "" } return "", "" diff --git a/opencloud/pkg/command/decomposedfs.go b/opencloud/pkg/command/decomposedfs.go index 960247bb40..8fade97739 100644 --- a/opencloud/pkg/command/decomposedfs.go +++ b/opencloud/pkg/command/decomposedfs.go @@ -213,7 +213,7 @@ func dumpCmd(cfg *config.Config) *cli.Command { Usage: `print the metadata of the given node. String attributes will be enclosed in quotes. Binary attributes will be returned encoded as base64 with their value being prefixed with '0s'.`, Action: func(c *cli.Context) error { lu, backend := getBackend(c) - path, err := getPath(c, lu) + path, err := getNode(c, lu) if err != nil { return err } @@ -242,7 +242,7 @@ func getCmd(cfg *config.Config) *cli.Command { }, Action: func(c *cli.Context) error { lu, backend := getBackend(c) - path, err := getPath(c, lu) + path, err := getNode(c, lu) if err != nil { return err } @@ -278,7 +278,7 @@ func setCmd(cfg *config.Config) *cli.Command { }, Action: func(c *cli.Context) error { lu, backend := getBackend(c) - path, err := getPath(c, lu) + n, err := getNode(c, lu) if err != nil { return err } @@ -300,7 +300,7 @@ func setCmd(cfg *config.Config) *cli.Command { } } - err = backend.Set(c.Context, path, c.String("attribute"), []byte(v)) + err = backend.Set(c.Context, n, c.String("attribute"), []byte(v)) if err != nil { fmt.Println("Error setting attribute") return err @@ -332,27 +332,15 @@ func getBackend(c *cli.Context) (*lookup.Lookup, metadata.Backend) { return lu, backend } -func getPath(c *cli.Context, lu *lookup.Lookup) (string, error) { +func getNode(c *cli.Context, lu *lookup.Lookup) (*node.Node, error) { nodeFlag := c.String("node") - path := "" - if strings.HasPrefix(nodeFlag, "/") { - path = nodeFlag - } else { - nId := c.String("node") - id, err := storagespace.ParseID(nId) - if err != nil { - fmt.Println("Invalid node id.") - return "", err - } - n, err := lu.NodeFromID(context.Background(), &id) - if err != nil || !n.Exists { - fmt.Println("Can not find node '" + nId + "'") - return "", err - } - path = n.InternalPath() + id, err := storagespace.ParseID(nodeFlag) + if err != nil { + fmt.Println("Invalid node id.") + return nil, err } - return path, nil + return lu.NodeFromID(context.Background(), &id) } func printAttribs(attribs map[string][]byte, onlyAttribute string) { diff --git a/opencloud/pkg/command/shares.go b/opencloud/pkg/command/shares.go index 5a5408b565..e2bb37a0e4 100644 --- a/opencloud/pkg/command/shares.go +++ b/opencloud/pkg/command/shares.go @@ -15,7 +15,9 @@ import ( "github.com/opencloud-eu/opencloud/pkg/config" "github.com/opencloud-eu/opencloud/pkg/config/configlog" "github.com/opencloud-eu/opencloud/pkg/config/parser" + oclog "github.com/opencloud-eu/opencloud/pkg/log" mregistry "github.com/opencloud-eu/opencloud/pkg/registry" + sharing "github.com/opencloud-eu/opencloud/services/sharing/pkg/config" sharingparser "github.com/opencloud-eu/opencloud/services/sharing/pkg/config/parser" ) @@ -126,3 +128,87 @@ func cleanup(c *cli.Context, cfg *config.Config) error { return nil } + +func revaShareConfig(cfg *sharing.Config) map[string]interface{} { + return map[string]interface{}{ + "json": map[string]interface{}{ + "file": cfg.UserSharingDrivers.JSON.File, + "gateway_addr": cfg.Reva.Address, + }, + "sql": map[string]interface{}{ // cernbox sql + "db_username": cfg.UserSharingDrivers.SQL.DBUsername, + "db_password": cfg.UserSharingDrivers.SQL.DBPassword, + "db_host": cfg.UserSharingDrivers.SQL.DBHost, + "db_port": cfg.UserSharingDrivers.SQL.DBPort, + "db_name": cfg.UserSharingDrivers.SQL.DBName, + "password_hash_cost": cfg.UserSharingDrivers.SQL.PasswordHashCost, + "enable_expired_shares_cleanup": cfg.UserSharingDrivers.SQL.EnableExpiredSharesCleanup, + "janitor_run_interval": cfg.UserSharingDrivers.SQL.JanitorRunInterval, + }, + "owncloudsql": map[string]interface{}{ + "gateway_addr": cfg.Reva.Address, + "storage_mount_id": cfg.UserSharingDrivers.OwnCloudSQL.UserStorageMountID, + "db_username": cfg.UserSharingDrivers.OwnCloudSQL.DBUsername, + "db_password": cfg.UserSharingDrivers.OwnCloudSQL.DBPassword, + "db_host": cfg.UserSharingDrivers.OwnCloudSQL.DBHost, + "db_port": cfg.UserSharingDrivers.OwnCloudSQL.DBPort, + "db_name": cfg.UserSharingDrivers.OwnCloudSQL.DBName, + }, + "cs3": map[string]interface{}{ + "gateway_addr": cfg.UserSharingDrivers.CS3.ProviderAddr, + "provider_addr": cfg.UserSharingDrivers.CS3.ProviderAddr, + "service_user_id": cfg.UserSharingDrivers.CS3.SystemUserID, + "service_user_idp": cfg.UserSharingDrivers.CS3.SystemUserIDP, + "machine_auth_apikey": cfg.UserSharingDrivers.CS3.SystemUserAPIKey, + }, + "jsoncs3": map[string]interface{}{ + "gateway_addr": cfg.Reva.Address, + "provider_addr": cfg.UserSharingDrivers.JSONCS3.ProviderAddr, + "service_user_id": cfg.UserSharingDrivers.JSONCS3.SystemUserID, + "service_user_idp": cfg.UserSharingDrivers.JSONCS3.SystemUserIDP, + "machine_auth_apikey": cfg.UserSharingDrivers.JSONCS3.SystemUserAPIKey, + }, + } +} + +func revaPublicShareConfig(cfg *sharing.Config) map[string]interface{} { + return map[string]interface{}{ + "json": map[string]interface{}{ + "file": cfg.PublicSharingDrivers.JSON.File, + "gateway_addr": cfg.Reva.Address, + }, + "jsoncs3": map[string]interface{}{ + "gateway_addr": cfg.Reva.Address, + "provider_addr": cfg.PublicSharingDrivers.JSONCS3.ProviderAddr, + "service_user_id": cfg.PublicSharingDrivers.JSONCS3.SystemUserID, + "service_user_idp": cfg.PublicSharingDrivers.JSONCS3.SystemUserIDP, + "machine_auth_apikey": cfg.PublicSharingDrivers.JSONCS3.SystemUserAPIKey, + }, + "sql": map[string]interface{}{ + "db_username": cfg.PublicSharingDrivers.SQL.DBUsername, + "db_password": cfg.PublicSharingDrivers.SQL.DBPassword, + "db_host": cfg.PublicSharingDrivers.SQL.DBHost, + "db_port": cfg.PublicSharingDrivers.SQL.DBPort, + "db_name": cfg.PublicSharingDrivers.SQL.DBName, + "password_hash_cost": cfg.PublicSharingDrivers.SQL.PasswordHashCost, + "enable_expired_shares_cleanup": cfg.PublicSharingDrivers.SQL.EnableExpiredSharesCleanup, + "janitor_run_interval": cfg.PublicSharingDrivers.SQL.JanitorRunInterval, + }, + "cs3": map[string]interface{}{ + "gateway_addr": cfg.PublicSharingDrivers.CS3.ProviderAddr, + "provider_addr": cfg.PublicSharingDrivers.CS3.ProviderAddr, + "service_user_id": cfg.PublicSharingDrivers.CS3.SystemUserID, + "service_user_idp": cfg.PublicSharingDrivers.CS3.SystemUserIDP, + "machine_auth_apikey": cfg.PublicSharingDrivers.CS3.SystemUserAPIKey, + }, + } +} + +func logger() *zerolog.Logger { + log := oclog.NewLogger( + oclog.Name("migrate"), + oclog.Level("info"), + oclog.Pretty(true), + oclog.Color(true)).Logger + return &log +}