add deprecation support

This commit is contained in:
Frank 2020-07-10 20:18:09 +08:00
parent 973de3239f
commit 5dfb8c9474
5 changed files with 47 additions and 11 deletions

View File

@ -191,11 +191,10 @@ lotus-health:
.PHONY: lotus-health .PHONY: lotus-health
BINS+=lotus-health BINS+=lotus-health
lotus-testground: testground:
go build -tags lotus-testground -o /dev/null ./cmd/lotus go build -tags testground -o /dev/null ./cmd/lotus
.PHONY: testground
.PHONY: lotus-testground BINS+=testground
BINS+=lotus-testground
# MISC # MISC

View File

@ -2,6 +2,7 @@ package cli
import ( import (
"fmt" "fmt"
"os"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"golang.org/x/xerrors" "golang.org/x/xerrors"
@ -126,6 +127,9 @@ var authApiInfoToken = &cli.Command{
} }
envVar := envForRepo(t) envVar := envForRepo(t)
if _, ok := os.LookupEnv(envForRepo(t)); !ok {
envVar = envForRepoDeprecation(t)
}
// TODO: Log in audit log when it is implemented // TODO: Log in audit log when it is implemented

View File

@ -89,15 +89,37 @@ func envForRepo(t repo.RepoType) string {
} }
} }
// TODO remove after deprecation period
func envForRepoDeprecation(t repo.RepoType) string {
switch t {
case repo.FullNode:
return "FULLNODE_API_INFO"
case repo.StorageMiner:
return "STORAGE_API_INFO"
default:
panic(fmt.Sprintf("Unknown repo type: %v", t))
}
}
func GetAPIInfo(ctx *cli.Context, t repo.RepoType) (APIInfo, error) { func GetAPIInfo(ctx *cli.Context, t repo.RepoType) (APIInfo, error) {
if env, ok := os.LookupEnv(envForRepo(t)); ok { envKey := envForRepo(t)
env, ok := os.LookupEnv(envKey)
if !ok {
// TODO remove after deprecation period
envKey = envForRepoDeprecation(t)
env, ok = os.LookupEnv(envKey)
if ok {
log.Warnf("Use deprecation env(%s) value, please use env(%s) instead.", envKey, envForRepo(t))
}
}
if ok {
sp := strings.SplitN(env, ":", 2) sp := strings.SplitN(env, ":", 2)
if len(sp) != 2 { if len(sp) != 2 {
log.Warnf("invalid env(%s) value, missing token or address", envForRepo(t)) log.Warnf("invalid env(%s) value, missing token or address", envKey)
} else { } else {
ma, err := multiaddr.NewMultiaddr(sp[1]) ma, err := multiaddr.NewMultiaddr(sp[1])
if err != nil { if err != nil {
return APIInfo{}, xerrors.Errorf("could not parse multiaddr from env(%s): %w", envForRepo(t), err) return APIInfo{}, xerrors.Errorf("could not parse multiaddr from env(%s): %w", envKey, err)
} }
return APIInfo{ return APIInfo{
Addr: ma, Addr: ma,

View File

@ -37,6 +37,8 @@ import (
var log = logging.Logger("main") var log = logging.Logger("main")
const FlagWorkerRepo = "worker-repo" const FlagWorkerRepo = "worker-repo"
// TODO remove after deprecation period
const FlagWorkerRepoDeprecation = "workerrepo"
func main() { func main() {
lotuslog.SetupLogLevels() lotuslog.SetupLogLevels()
@ -54,13 +56,17 @@ func main() {
Flags: []cli.Flag{ Flags: []cli.Flag{
&cli.StringFlag{ &cli.StringFlag{
Name: FlagWorkerRepo, Name: FlagWorkerRepo,
EnvVars: []string{"LOTUS_WORKER_PATH"}, Aliases: []string{FlagWorkerRepoDeprecation},
EnvVars: []string{"LOTUS_WORKER_PATH", "WORKER_PATH"},
Value: "~/.lotusworker", // TODO: Consider XDG_DATA_HOME Value: "~/.lotusworker", // TODO: Consider XDG_DATA_HOME
Usage: fmt.Sprintf("Specify worker repo path. flag %s and env WORKER_PATH are DEPRECATION, will REMOVE SOON", FlagWorkerRepoDeprecation),
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: "miner-repo", Name: "miner-repo",
EnvVars: []string{"LOTUS_MINER_PATH"}, Aliases: []string{"storagerepo"},
EnvVars: []string{"LOTUS_MINER_PATH", "LOTUS_STORAGE_PATH"},
Value: "~/.lotusminer", // TODO: Consider XDG_DATA_HOME Value: "~/.lotusminer", // TODO: Consider XDG_DATA_HOME
Usage: fmt.Sprintf("Specify miner repo path. flag storagerepo and env LOTUS_STORAGE_PATH are DEPRECATION, will REMOVE SOON"),
}, },
&cli.BoolFlag{ &cli.BoolFlag{
Name: "enable-gpu-proving", Name: "enable-gpu-proving",

View File

@ -2,6 +2,7 @@ package main
import ( import (
"context" "context"
"fmt"
"os" "os"
logging "github.com/ipfs/go-log/v2" logging "github.com/ipfs/go-log/v2"
@ -21,6 +22,8 @@ import (
var log = logging.Logger("main") var log = logging.Logger("main")
const FlagMinerRepo = "miner-repo" const FlagMinerRepo = "miner-repo"
// TODO remove after deprecation period
const FlagMinerRepoDeprecation = "storagerepo"
func main() { func main() {
lotuslog.SetupLogLevels() lotuslog.SetupLogLevels()
@ -80,8 +83,10 @@ func main() {
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: FlagMinerRepo, Name: FlagMinerRepo,
EnvVars: []string{"LOTUS_MINER_PATH"}, Aliases: []string{FlagMinerRepoDeprecation},
EnvVars: []string{"LOTUS_MINER_PATH", "LOTUS_STORAGE_PATH"},
Value: "~/.lotusminer", // TODO: Consider XDG_DATA_HOME Value: "~/.lotusminer", // TODO: Consider XDG_DATA_HOME
Usage: fmt.Sprintf("Specify miner repo path. flag(%s) and env(LOTUS_STORAGE_PATH) are DEPRECATION, will REMOVE SOON", FlagMinerRepoDeprecation),
}, },
}, },