def getStatus(self): self.print('Nodes: ', newline=False) if not self.nodes: self.print("No nodes are running. Try typing 'new node <name>'.") else: self.printNames(self.nodes, newline=True) if not self.clients: clients = "No clients are running. Try typing 'new client <name>'." else: clients = ",".join(self.clients.keys()) self.print("Clients: " + clients) f = getMaxFailures(len(self.nodes)) self.print("f-value (number of possible faulty nodes): {}".format(f)) if f != 0 and len(self.nodes) >= 2 * f + 1: node = list(self.nodes.values())[0] mPrimary = node.replicas[node.instances.masterId].primaryName bPrimary = node.replicas[node.instances.backupIds[0]].primaryName self.print("Instances: {}".format(f + 1)) self.print(" Master (primary is on {})". format(Replica.getNodeName(mPrimary))) self.print(" Backup (primary is on {})". format(Replica.getNodeName(bPrimary))) else: self.print("Instances: " "Not enough nodes to create protocol instances")
def master_primary_name(self) -> Optional[str]: nm = self.replicas[0].primaryName if nm: return Replica.getNodeName(nm)