lnd_test: make sure node ID is correctly initialized in log file name
This commit is contained in:
parent
578f1d9332
commit
cbd981c236
@ -326,7 +326,8 @@ func (n *NetworkHarness) RestoreNodeWithSeed(name string, extraArgs []string,
|
|||||||
// wallet with or without a seed. If hasSeed is false, the returned harness node
|
// wallet with or without a seed. If hasSeed is false, the returned harness node
|
||||||
// can be used immediately. Otherwise, the node will require an additional
|
// can be used immediately. Otherwise, the node will require an additional
|
||||||
// initialization phase where the wallet is either created or restored.
|
// initialization phase where the wallet is either created or restored.
|
||||||
func (n *NetworkHarness) newNode(name string, extraArgs []string, hasSeed bool) (*HarnessNode, error) {
|
func (n *NetworkHarness) newNode(name string, extraArgs []string,
|
||||||
|
hasSeed bool) (*HarnessNode, error) {
|
||||||
node, err := newNode(nodeConfig{
|
node, err := newNode(nodeConfig{
|
||||||
Name: name,
|
Name: name,
|
||||||
HasSeed: hasSeed,
|
HasSeed: hasSeed,
|
||||||
|
@ -266,12 +266,44 @@ func (hn *HarnessNode) start(lndError chan<- error) error {
|
|||||||
var errb bytes.Buffer
|
var errb bytes.Buffer
|
||||||
hn.cmd.Stderr = &errb
|
hn.cmd.Stderr = &errb
|
||||||
|
|
||||||
|
// Make sure the log file cleanup function is initialized, even
|
||||||
|
// if no log file is created.
|
||||||
|
var finalizeLogfile = func() {
|
||||||
|
if hn.logFile != nil {
|
||||||
|
hn.logFile.Close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If the logoutput flag is passed, redirect output from the nodes to
|
// If the logoutput flag is passed, redirect output from the nodes to
|
||||||
// log files.
|
// log files.
|
||||||
if *logOutput {
|
if *logOutput {
|
||||||
fileName := fmt.Sprintf("output-%d-%s-%s.log", hn.NodeID,
|
fileName := fmt.Sprintf("output-%d-%s-%s.log", hn.NodeID,
|
||||||
hn.cfg.Name, hex.EncodeToString(hn.PubKey[:logPubKeyBytes]))
|
hn.cfg.Name, hex.EncodeToString(hn.PubKey[:logPubKeyBytes]))
|
||||||
|
|
||||||
|
// If the node's PubKey is not yet initialized, create a temporary
|
||||||
|
// file name. Later, after the PubKey has been initialized, the
|
||||||
|
// file can be moved to its final name with the PubKey included.
|
||||||
|
if bytes.Equal(hn.PubKey[:4], []byte{0, 0, 0, 0}) {
|
||||||
|
fileName = fmt.Sprintf("output-%d-%s-tmp__.log", hn.NodeID,
|
||||||
|
hn.cfg.Name)
|
||||||
|
|
||||||
|
// Once the node has done its work, the log file can be renamed.
|
||||||
|
finalizeLogfile = func() {
|
||||||
|
if hn.logFile != nil {
|
||||||
|
hn.logFile.Close()
|
||||||
|
|
||||||
|
newFileName := fmt.Sprintf("output-%d-%s-%s.log",
|
||||||
|
hn.NodeID, hn.cfg.Name,
|
||||||
|
hex.EncodeToString(hn.PubKey[:logPubKeyBytes]))
|
||||||
|
err := os.Rename(fileName, newFileName)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Errorf("could not rename %s to %s: %v",
|
||||||
|
fileName, newFileName, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Create file if not exists, otherwise append.
|
// Create file if not exists, otherwise append.
|
||||||
file, err := os.OpenFile(fileName,
|
file, err := os.OpenFile(fileName,
|
||||||
os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666)
|
os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666)
|
||||||
@ -307,6 +339,9 @@ func (hn *HarnessNode) start(lndError chan<- error) error {
|
|||||||
|
|
||||||
// Signal any onlookers that this process has exited.
|
// Signal any onlookers that this process has exited.
|
||||||
close(hn.processExit)
|
close(hn.processExit)
|
||||||
|
|
||||||
|
// Make sure log file is closed and renamed if necessary.
|
||||||
|
finalizeLogfile()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// Write process ID to a file.
|
// Write process ID to a file.
|
||||||
|
Loading…
Reference in New Issue
Block a user