Browse Source

Merge pull request #1318 from tendermint/bucky/testnet-cmd-fix

testnet cmd: ensure config dir exists. closes #1290
pull/1323/head
Ethan Buchman 7 years ago
committed by GitHub
parent
commit
ff1ec0260e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 12 deletions
  1. +6
    -5
      cmd/tendermint/commands/testnet.go
  2. +7
    -7
      types/priv_validator.go

+ 6
- 5
cmd/tendermint/commands/testnet.go View File

@ -75,15 +75,16 @@ func testnetFiles(cmd *cobra.Command, args []string) {
// Initialize per-machine core directory
func initMachCoreDirectory(base, mach string) error {
// Create priv_validator.json file if not present
defaultConfig := cfg.DefaultBaseConfig()
dir := filepath.Join(base, mach)
err := cmn.EnsureDir(dir, 0777)
privValPath := filepath.Join(dir, defaultConfig.PrivValidator)
dir = filepath.Dir(privValPath)
err := cmn.EnsureDir(dir, 0700)
if err != nil {
return err
}
// Create priv_validator.json file if not present
defaultConfig := cfg.DefaultBaseConfig()
ensurePrivValidator(filepath.Join(dir, defaultConfig.PrivValidator))
ensurePrivValidator(privValPath)
return nil
}


+ 7
- 7
types/priv_validator.go View File

@ -98,6 +98,7 @@ type PrivValidator interface {
// PrivValidatorFS implements PrivValidator using data persisted to disk
// to prevent double signing. The Signer itself can be mutated to use
// something besides the default, for instance a hardware signer.
// NOTE: the directory containing the privVal.filePath must already exist.
type PrivValidatorFS struct {
Address Address `json:"address"`
PubKey crypto.PubKey `json:"pub_key"`
@ -217,18 +218,17 @@ func (privVal *PrivValidatorFS) Save() {
}
func (privVal *PrivValidatorFS) save() {
if privVal.filePath == "" {
cmn.PanicSanity("Cannot save PrivValidator: filePath not set")
outFile := privVal.filePath
if outFile == "" {
panic("Cannot save PrivValidator: filePath not set")
}
jsonBytes, err := json.Marshal(privVal)
if err != nil {
// `@; BOOM!!!
cmn.PanicCrisis(err)
panic(err)
}
err = cmn.WriteFileAtomic(privVal.filePath, jsonBytes, 0600)
err = cmn.WriteFileAtomic(outFile, jsonBytes, 0600)
if err != nil {
// `@; BOOM!!!
cmn.PanicCrisis(err)
panic(err)
}
}


Loading…
Cancel
Save