mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-02-16 16:38:07 +00:00
better error messages on directory creation failure (#3536)
This commit is contained in:
parent
e7d017b50c
commit
70270eeabe
@ -406,8 +406,10 @@ proc new*(T: type BeaconChainDB,
|
|||||||
SqStoreRef.init("", "test", readOnly = readOnly, inMemory = true).expect(
|
SqStoreRef.init("", "test", readOnly = readOnly, inMemory = true).expect(
|
||||||
"working database (out of memory?)")
|
"working database (out of memory?)")
|
||||||
else:
|
else:
|
||||||
let s = secureCreatePath(dir)
|
if (let res = secureCreatePath(dir); res.isErr):
|
||||||
doAssert s.isOk # TODO(zah) Handle this in a better way
|
fatal "Failed to create create database directory",
|
||||||
|
path = dir, err = ioErrorMsg(res.error)
|
||||||
|
quit 1
|
||||||
|
|
||||||
SqStoreRef.init(
|
SqStoreRef.init(
|
||||||
dir, "nbc", readOnly = readOnly, manualCheckpoint = true).expectDb()
|
dir, "nbc", readOnly = readOnly, manualCheckpoint = true).expectDb()
|
||||||
|
@ -894,15 +894,15 @@ func dumpDirOutgoing*(config: AnyConf): string =
|
|||||||
|
|
||||||
proc createDumpDirs*(config: BeaconNodeConf) =
|
proc createDumpDirs*(config: BeaconNodeConf) =
|
||||||
if config.dumpEnabled:
|
if config.dumpEnabled:
|
||||||
let resInv = secureCreatePath(config.dumpDirInvalid)
|
if (let res = secureCreatePath(config.dumpDirInvalid); res.isErr):
|
||||||
if resInv.isErr():
|
warn "Could not create dump directory",
|
||||||
warn "Could not create dump directory", path = config.dumpDirInvalid
|
path = config.dumpDirInvalid, err = ioErrorMsg(res.error)
|
||||||
let resInc = secureCreatePath(config.dumpDirIncoming)
|
if (let res = secureCreatePath(config.dumpDirIncoming); res.isErr):
|
||||||
if resInc.isErr():
|
warn "Could not create dump directory",
|
||||||
warn "Could not create dump directory", path = config.dumpDirIncoming
|
path = config.dumpDirIncoming, err = ioErrorMsg(res.error)
|
||||||
let resOut = secureCreatePath(config.dumpDirOutgoing)
|
if (let res = secureCreatePath(config.dumpDirOutgoing); res.isErr):
|
||||||
if resOut.isErr():
|
warn "Could not create dump directory",
|
||||||
warn "Could not create dump directory", path = config.dumpDirOutgoing
|
path = config.dumpDirOutgoing, err = ioErrorMsg(res.error)
|
||||||
|
|
||||||
func parseCmdArg*(T: type GraffitiBytes, input: TaintedString): T
|
func parseCmdArg*(T: type GraffitiBytes, input: TaintedString): T
|
||||||
{.raises: [ValueError, Defect].} =
|
{.raises: [ValueError, Defect].} =
|
||||||
|
@ -374,14 +374,14 @@ proc doDeposits*(config: BeaconNodeConf, rng: var BrHmacDrbgContext) {.
|
|||||||
swap(seed, walletRes.get.seed)
|
swap(seed, walletRes.get.seed)
|
||||||
walletPath = walletRes.get.walletPath
|
walletPath = walletRes.get.walletPath
|
||||||
|
|
||||||
let vres = secureCreatePath(config.outValidatorsDir)
|
if (let res = secureCreatePath(config.outValidatorsDir); res.isErr):
|
||||||
if vres.isErr():
|
fatal "Could not create directory",
|
||||||
fatal "Could not create directory", path = config.outValidatorsDir
|
path = config.outValidatorsDir, err = ioErrorMsg(res.error)
|
||||||
quit QuitFailure
|
quit QuitFailure
|
||||||
|
|
||||||
let sres = secureCreatePath(config.outSecretsDir)
|
if (let res = secureCreatePath(config.outSecretsDir); res.isErr):
|
||||||
if sres.isErr():
|
fatal "Could not create directory",
|
||||||
fatal "Could not create directory", path = config.outSecretsDir
|
path = config.outSecretsDir, err = ioErrorMsg(res.error)
|
||||||
quit QuitFailure
|
quit QuitFailure
|
||||||
|
|
||||||
let deposits = generateDeposits(
|
let deposits = generateDeposits(
|
||||||
|
@ -198,15 +198,13 @@ proc main() {.async.} =
|
|||||||
seed = getSeed(mnemonic, KeyStorePass.init "")
|
seed = getSeed(mnemonic, KeyStorePass.init "")
|
||||||
cfg = getRuntimeConfig(conf.eth2Network)
|
cfg = getRuntimeConfig(conf.eth2Network)
|
||||||
|
|
||||||
let vres = secureCreatePath(string conf.outValidatorsDir)
|
if (let res = secureCreatePath(string conf.outValidatorsDir); res.isErr):
|
||||||
if vres.isErr():
|
|
||||||
warn "Could not create validators folder",
|
warn "Could not create validators folder",
|
||||||
path = string conf.outValidatorsDir, err = ioErrorMsg(vres.error)
|
path = string conf.outValidatorsDir, err = ioErrorMsg(res.error)
|
||||||
|
|
||||||
let sres = secureCreatePath(string conf.outSecretsDir)
|
if (let res = secureCreatePath(string conf.outSecretsDir); res.isErr):
|
||||||
if sres.isErr():
|
|
||||||
warn "Could not create secrets folder",
|
warn "Could not create secrets folder",
|
||||||
path = string conf.outSecretsDir, err = ioErrorMsg(sres.error)
|
path = string conf.outSecretsDir, err = ioErrorMsg(res.error)
|
||||||
|
|
||||||
let deposits = generateDeposits(
|
let deposits = generateDeposits(
|
||||||
cfg,
|
cfg,
|
||||||
|
@ -154,10 +154,9 @@ proc checkAndCreateDataDir*(dataDir: string): bool =
|
|||||||
new_permissions = requiredPerms.toOct(4)
|
new_permissions = requiredPerms.toOct(4)
|
||||||
return false
|
return false
|
||||||
else:
|
else:
|
||||||
let res = secureCreatePath(dataDir)
|
if (let res = secureCreatePath(dataDir); res.isErr):
|
||||||
if res.isErr():
|
fatal "Could not create data directory",
|
||||||
fatal "Could not create data directory", data_dir = dataDir,
|
path = dataDir, err = ioErrorMsg(res.error), errorCode = $res.error
|
||||||
errorMsg = ioErrorMsg(res.error), errorCode = $res.error
|
|
||||||
return false
|
return false
|
||||||
elif defined(windows):
|
elif defined(windows):
|
||||||
let amask = {AccessFlags.Read, AccessFlags.Write, AccessFlags.Execute}
|
let amask = {AccessFlags.Read, AccessFlags.Write, AccessFlags.Execute}
|
||||||
@ -165,18 +164,17 @@ proc checkAndCreateDataDir*(dataDir: string): bool =
|
|||||||
let cres = checkCurrentUserOnlyACL(dataDir)
|
let cres = checkCurrentUserOnlyACL(dataDir)
|
||||||
if cres.isErr():
|
if cres.isErr():
|
||||||
fatal "Could not check data folder's ACL",
|
fatal "Could not check data folder's ACL",
|
||||||
data_dir = dataDir, errorCode = $cres.error,
|
path = dataDir, errorCode = $cres.error,
|
||||||
errorMsg = ioErrorMsg(cres.error)
|
errorMsg = ioErrorMsg(cres.error)
|
||||||
return false
|
return false
|
||||||
else:
|
else:
|
||||||
if cres.get() == false:
|
if cres.get() == false:
|
||||||
fatal "Data folder has insecure ACL", data_dir = dataDir
|
fatal "Data folder has insecure ACL", path = dataDir
|
||||||
return false
|
return false
|
||||||
else:
|
else:
|
||||||
let res = secureCreatePath(dataDir)
|
if (let res = secureCreatePath(dataDir); res.isErr):
|
||||||
if res.isErr():
|
fatal "Could not create data folder",
|
||||||
fatal "Could not create data folder", data_dir = dataDir,
|
path = dataDir, err = ioErrorMsg(res.error), errorCode = $res.error
|
||||||
errorMsg = ioErrorMsg(res.error), errorCode = $res.error
|
|
||||||
return false
|
return false
|
||||||
else:
|
else:
|
||||||
fatal "Unsupported operation system"
|
fatal "Unsupported operation system"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user