Merge pull request #140 from ipfs/fix/empty-cluster-secret
Distinguish unset/empty cluster secret; also rename generateSecret -> customSecret
This commit is contained in:
commit
9204bdd15f
|
@ -210,15 +210,10 @@ configuration.
|
||||||
Name: "custom-secret, s",
|
Name: "custom-secret, s",
|
||||||
Usage: "prompt for the cluster secret",
|
Usage: "prompt for the cluster secret",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
|
||||||
Name: "env-cluster-secret",
|
|
||||||
EnvVar: "CLUSTER_SECRET",
|
|
||||||
Hidden: true,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
Action: func(c *cli.Context) error {
|
Action: func(c *cli.Context) error {
|
||||||
initConfig(c.GlobalBool("force"), !c.Bool("custom-secret"),
|
userSecret, userSecretDefined := userProvidedSecret(c.Bool("custom-secret"))
|
||||||
c.String("env-cluster-secret"))
|
initConfig(c.GlobalBool("force"), userSecret, userSecretDefined)
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -251,7 +246,7 @@ configuration.
|
||||||
|
|
||||||
func run(c *cli.Context) error {
|
func run(c *cli.Context) error {
|
||||||
if c.Bool("init") {
|
if c.Bool("init") {
|
||||||
initConfig(c.Bool("force"), false, "")
|
initConfig(c.Bool("force"), nil, false)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,7 +365,7 @@ func setupDebug() {
|
||||||
//SetFacilityLogLevel("libp2p-raft", l)
|
//SetFacilityLogLevel("libp2p-raft", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
func initConfig(force bool, generateSecret bool, envSecret string) {
|
func initConfig(force bool, userSecret []byte, userSecretDefined bool) {
|
||||||
if _, err := os.Stat(configPath); err == nil && !force {
|
if _, err := os.Stat(configPath); err == nil && !force {
|
||||||
err := fmt.Errorf("%s exists. Try running with -f", configPath)
|
err := fmt.Errorf("%s exists. Try running with -f", configPath)
|
||||||
checkErr("", err)
|
checkErr("", err)
|
||||||
|
@ -379,16 +374,9 @@ func initConfig(force bool, generateSecret bool, envSecret string) {
|
||||||
cfg, err := ipfscluster.NewDefaultConfig()
|
cfg, err := ipfscluster.NewDefaultConfig()
|
||||||
checkErr("creating default configuration", err)
|
checkErr("creating default configuration", err)
|
||||||
|
|
||||||
if len(envSecret) != 0 {
|
if userSecretDefined {
|
||||||
// read cluster secret from env variable
|
cfg.ClusterSecret = userSecret
|
||||||
fmt.Println("Reading cluster secret from CLUSTER_SECRET environment variable.")
|
|
||||||
cfg.ClusterSecret, err = ipfscluster.DecodeClusterSecret(envSecret)
|
|
||||||
} else if !generateSecret {
|
|
||||||
// get cluster secret from user
|
|
||||||
cfg.ClusterSecret, err = ipfscluster.DecodeClusterSecret(promptUser("Enter cluster secret (32-byte hex string): "))
|
|
||||||
|
|
||||||
}
|
}
|
||||||
checkErr("parsing cluster secret", err)
|
|
||||||
|
|
||||||
err = os.MkdirAll(filepath.Dir(configPath), 0700)
|
err = os.MkdirAll(filepath.Dir(configPath), 0700)
|
||||||
err = cfg.Save(configPath)
|
err = cfg.Save(configPath)
|
||||||
|
@ -397,6 +385,21 @@ func initConfig(force bool, generateSecret bool, envSecret string) {
|
||||||
programName, configPath)
|
programName, configPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func userProvidedSecret(enterSecret bool) ([]byte, bool) {
|
||||||
|
var secret string
|
||||||
|
if enterSecret {
|
||||||
|
secret = promptUser("Enter cluster secret (32-byte hex string): ")
|
||||||
|
} else if envSecret, envSecretDefined := os.LookupEnv("CLUSTER_SECRET"); envSecretDefined {
|
||||||
|
secret = envSecret
|
||||||
|
} else {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
|
||||||
|
decodedSecret, err := ipfscluster.DecodeClusterSecret(secret)
|
||||||
|
checkErr("parsing user-provided secret", err)
|
||||||
|
return decodedSecret, true
|
||||||
|
}
|
||||||
|
|
||||||
func loadConfig() (*ipfscluster.Config, error) {
|
func loadConfig() (*ipfscluster.Config, error) {
|
||||||
return ipfscluster.LoadConfig(configPath)
|
return ipfscluster.LoadConfig(configPath)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user