diff --git a/tests/Cluster.py b/tests/Cluster.py index b8041227c3f02e3756682522f42bc9b52ce5aa33..786beab691c82115f53da4f98c368c05f0dce0a1 100644 --- a/tests/Cluster.py +++ b/tests/Cluster.py @@ -30,6 +30,8 @@ class Cluster(object): __BiosPort=8788 __LauncherCmdArr=[] __bootlog="eosio-ignition-wd/bootlog.txt" + __configDir="etc/eosio/" + __dataDir="var/lib/" # pylint: disable=too-many-arguments # walletd [True|False] Is keosd running. If not load the wallet plugin @@ -745,6 +747,14 @@ class Cluster(object): m=re.search(r"node_([\d]+)", name) return int(m.group(1)) + @staticmethod + def nodeExtensionToName(ext): + r"""Convert node extension (bios, 0, 1, etc) to node name. """ + prefix="node_" + if ext == "bios": + return prefix + ext + + return "node_%02d" % (ext) @staticmethod def parseProducerKeys(configFile, nodeName): @@ -783,8 +793,7 @@ class Cluster(object): def parseProducers(nodeNum): """Parse node config file for producers.""" - node="node_%02d" % (nodeNum) - configFile="etc/eosio/%s/config.ini" % (node) + configFile=Cluster.__configDir + Cluster.nodeExtensionToName(nodeNum) + "/config.ini" if Utils.Debug: Utils.Print("Parsing config file %s" % configFile) configStr=None with open(configFile, 'r') as f: @@ -802,20 +811,20 @@ class Cluster(object): def parseClusterKeys(totalNodes): """Parse cluster config file. Updates producer keys data members.""" - node="node_bios" - configFile="etc/eosio/%s/config.ini" % (node) + nodeName=Cluster.nodeExtensionToName("bios") + configFile=Cluster.__configDir + nodeName + "/config.ini" if Utils.Debug: Utils.Print("Parsing config file %s" % configFile) - producerKeys=Cluster.parseProducerKeys(configFile, node) + producerKeys=Cluster.parseProducerKeys(configFile, nodeName) if producerKeys is None: Utils.Print("ERROR: Failed to parse eosio private keys from cluster config files.") return None for i in range(0, totalNodes): - node="node_%02d" % (i) - configFile="etc/eosio/%s/config.ini" % (node) + nodeName=Cluster.nodeExtensionToName(i) + configFile=Cluster.__configDir + nodeName + "/config.ini" if Utils.Debug: Utils.Print("Parsing config file %s" % configFile) - keys=Cluster.parseProducerKeys(configFile, node) + keys=Cluster.parseProducerKeys(configFile, nodeName) if keys is not None: producerKeys.update(keys) keyMsg="None" if keys is None else len(keys) @@ -1183,11 +1192,8 @@ class Cluster(object): @staticmethod def pgrepEosServerPattern(nodeInstance): - if isinstance(nodeInstance, str): - return r"[\n]?(\d+) (.* --data-dir var/lib/node_%s .*)\n" % nodeInstance - else: - nodeInstanceStr="%02d" % nodeInstance - return Cluster.pgrepEosServerPattern(nodeInstanceStr) + dataLocation=Cluster.__dataDir + Cluster.nodeExtensionToName(nodeInstance) + return r"[\n]?(\d+) (.* --data-dir %s .*)\n" % (dataLocation) # Populates list of EosInstanceInfo objects, matched to actual running instances def discoverLocalNodes(self, totalNodes, timeout=None): @@ -1268,17 +1274,18 @@ class Cluster(object): Utils.Print("File %s not found." % (fileName)) def dumpErrorDetails(self): - fileName="etc/eosio/node_bios/config.ini" + fileName=Cluster.__configDir + Cluster.nodeExtensionToName("bios") + "/config.ini" Cluster.dumpErrorDetailImpl(fileName) - fileName="var/lib/node_bios/stderr.txt" + fileName=Cluster.__dataDir + Cluster.nodeExtensionToName("bios") + "/stderr.txt" Cluster.dumpErrorDetailImpl(fileName) for i in range(0, len(self.nodes)): - fileName="etc/eosio/node_%02d/config.ini" % (i) + configLocation=Cluster.__configDir + Cluster.nodeExtensionToName(i) + "/" + fileName=configLocation + "config.ini" Cluster.dumpErrorDetailImpl(fileName) - fileName="etc/eosio/node_%02d/genesis.json" % (i) + fileName=configLocation + "genesis.json" Cluster.dumpErrorDetailImpl(fileName) - fileName="var/lib/node_%02d/stderr.txt" % (i) + fileName=Cluster.__dataDir + Cluster.nodeExtensionToName(i) + "/stderr.txt" Cluster.dumpErrorDetailImpl(fileName) if self.useBiosBootFile: @@ -1350,9 +1357,9 @@ class Cluster(object): return node.waitForNextBlock(timeout) def cleanup(self): - for f in glob.glob("var/lib/node_*"): + for f in glob.glob(Cluster.__dataDir + "node_*"): shutil.rmtree(f) - for f in glob.glob("etc/eosio/node_*"): + for f in glob.glob(Cluster.__configDir + "node_*"): shutil.rmtree(f) for f in self.filesToCleanup: