From b55874ea661ba3388df658eeb7df7136341c0d9c Mon Sep 17 00:00:00 2001 From: willcl-ark Date: Wed, 6 Mar 2024 09:17:21 +0000 Subject: [PATCH 1/2] tank: fix default version string --- src/warnet/tank.py | 14 +++++++++----- src/warnet/warnet.py | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/warnet/tank.py b/src/warnet/tank.py index b3ca2c30e..bedf00aab 100644 --- a/src/warnet/tank.py +++ b/src/warnet/tank.py @@ -30,7 +30,7 @@ def __init__(self, index: int, config_dir: Path, warnet): self.warnet = warnet self.network_name = warnet.network_name self.bitcoin_network = warnet.bitcoin_network - self.version = "25.1" + self.version: str = "" self.image: str = "" self.bitcoin_config = "" self.conf_file = None @@ -52,13 +52,17 @@ def __init__(self, index: int, config_dir: Path, warnet): self.init_peers = [] def __str__(self) -> str: - return f"Tank(index: {self.index}, version: {self.version}, conf: {self.bitcoin_config}, conf file: {self.conf_file}, netem: {self.netem}, IPv4: {self._ipv4})" + version_str = f"version: {self.version}" if self.version else f"image: {self.image}" + return f"Tank(index: {self.index}, {version_str}, conf: {self.bitcoin_config}, conf file: {self.conf_file}, netem: {self.netem}, IPv4: {self._ipv4})" - def _parse_version(self): - if self.version not in SUPPORTED_TAGS or ("/" in self.version and "#" in self.version): + def _parse_version(self, version): + if not version: + return + if version not in SUPPORTED_TAGS and not ("/" in version and "#" in version): raise Exception( f"Unsupported version: can't be generated from Docker images: {self.version}" ) + self.version = version def parse_graph_node(self, node): # Dynamically parse properties based on the schema @@ -66,7 +70,7 @@ def parse_graph_node(self, node): for property, specs in self.warnet.node_schema["properties"].items(): value = node.get(property, specs.get("default")) if property == "version": - self._parse_version() + self._parse_version(value) setattr(self, property, value) graph_properties[property] = value diff --git a/src/warnet/warnet.py b/src/warnet/warnet.py index 20cb8b7a3..3ac8eeb18 100644 --- a/src/warnet/warnet.py +++ b/src/warnet/warnet.py @@ -48,7 +48,7 @@ def __str__(self) -> str: for tank in self.tanks: tanks_str += template % ( tank.index, - tank.version, + tank.version if tank.version is not None else tank.image, tank.ipv4, tank.lnnode.impl if tank.lnnode is not None else None, tank.lnnode.image if tank.lnnode is not None else None, @@ -98,7 +98,7 @@ def _warnet_dict_representation(self) -> dict: has_ln = any(tank.lnnode and tank.lnnode.impl for tank in self.tanks) tanks = [] for tank in self.tanks: - tank_data = [tank.index, tank.version, tank.ipv4, tank.bitcoin_config, tank.netem] + tank_data = [tank.index, tank.version if tank.version else tank.image, tank.ipv4, tank.bitcoin_config, tank.netem] if has_ln: tank_data.extend( [ From e17b0841113d97d314b64a3757cf808ad2a706fa Mon Sep 17 00:00:00 2001 From: willcl-ark Date: Fri, 8 Mar 2024 20:11:03 +0000 Subject: [PATCH 2/2] remove unused __str__ methods --- src/warnet/lnnode.py | 3 --- src/warnet/tank.py | 4 ---- src/warnet/warnet.py | 26 -------------------------- 3 files changed, 33 deletions(-) diff --git a/src/warnet/lnnode.py b/src/warnet/lnnode.py index 12d6d3b85..e3dcc94dc 100644 --- a/src/warnet/lnnode.py +++ b/src/warnet/lnnode.py @@ -20,9 +20,6 @@ def __init__(self, warnet, tank, impl, image, backend: BackendInterface, cb=None self.ipv4 = generate_ipv4_addr(self.warnet.subnet) self.rpc_port = 10009 - def __str__(self): - return f"LNNode: index={self.tank.index}, ipv4={self.ipv4}, rpc_port={self.rpc_port}" - @property def status(self) -> RunningStatus: return self.warnet.container_interface.get_status(self.tank.index, ServiceType.LIGHTNING) diff --git a/src/warnet/tank.py b/src/warnet/tank.py index bedf00aab..06ba0828f 100644 --- a/src/warnet/tank.py +++ b/src/warnet/tank.py @@ -51,10 +51,6 @@ def __init__(self, index: int, config_dir: Path, warnet): # indicating which tanks to initially connect to self.init_peers = [] - def __str__(self) -> str: - version_str = f"version: {self.version}" if self.version else f"image: {self.image}" - return f"Tank(index: {self.index}, {version_str}, conf: {self.bitcoin_config}, conf file: {self.conf_file}, netem: {self.netem}, IPv4: {self._ipv4})" - def _parse_version(self, version): if not version: return diff --git a/src/warnet/warnet.py b/src/warnet/warnet.py index 3ac8eeb18..5e6ba2735 100644 --- a/src/warnet/warnet.py +++ b/src/warnet/warnet.py @@ -38,32 +38,6 @@ def __init__(self, config_dir, backend, network_name: str): self.backend = backend self.node_schema = load_schema() - def __str__(self) -> str: - # TODO: bitcoin_conf and tc_netem can be added back in to this table - # if we write a helper function that can text-wrap inside a column - template = ( - "\t" + "%-8.8s" + "%-25.24s" + "%-18.18s" + "%-18.18s" + "%-18.18s" + "%-18.18s" + "\n" - ) - tanks_str = template % ("Index", "Version", "IPv4", "LN", "LN Image", "LN IPv4") - for tank in self.tanks: - tanks_str += template % ( - tank.index, - tank.version if tank.version is not None else tank.image, - tank.ipv4, - tank.lnnode.impl if tank.lnnode is not None else None, - tank.lnnode.image if tank.lnnode is not None else None, - tank.lnnode.ipv4 if tank.lnnode is not None else None, - ) - return ( - f"Warnet:\n" - f"\tTemp Directory: {self.config_dir}\n" - f"\tBitcoin Network: {self.bitcoin_network}\n" - f"\tDocker Network: {self.network_name}\n" - f"\tSubnet: {self.subnet}\n" - f"\tGraph: {self.graph}\n" - f"Tanks:\n{tanks_str}" - ) - def _warnet_dict_representation(self) -> dict: repr = {} # Warnet