Remove bogus persistent_peers config

This commit is contained in:
David Boreham 2023-08-23 14:42:23 -06:00
parent e7c1f51112
commit cdf31cf491

View File

@ -25,6 +25,7 @@ import json
import os import os
import sys import sys
import tomli import tomli
import re
default_spec_file_content = """config: default_spec_file_content = """config:
node_moniker: my-node-name node_moniker: my-node-name
@ -42,13 +43,17 @@ class SetupPhase(Enum):
ILLEGAL = 3 ILLEGAL = 3
def _config_toml_path(network_dir: Path): def _client_toml_path(network_dir: Path):
return network_dir.joinpath("config", "client.toml") return network_dir.joinpath("config", "client.toml")
def _config_toml_path(network_dir: Path):
return network_dir.joinpath("config", "config.toml")
def _get_chain_id_from_config(network_dir: Path): def _get_chain_id_from_config(network_dir: Path):
chain_id = None chain_id = None
with open(_config_toml_path(network_dir), "rb") as f: with open(_client_toml_path(network_dir), "rb") as f:
toml_dict = tomli.load(f) toml_dict = tomli.load(f)
chain_id = toml_dict["chain-id"] chain_id = toml_dict["chain-id"]
return chain_id return chain_id
@ -56,7 +61,7 @@ def _get_chain_id_from_config(network_dir: Path):
def _get_node_moniker_from_config(network_dir: Path): def _get_node_moniker_from_config(network_dir: Path):
moniker = None moniker = None
with open(_config_toml_path(network_dir), "rb") as f: with open(_client_toml_path(network_dir), "rb") as f:
toml_dict = tomli.load(f) toml_dict = tomli.load(f)
moniker = toml_dict["moniker"] moniker = toml_dict["moniker"]
return moniker return moniker
@ -94,6 +99,20 @@ def _copy_gentx_files(options: CommandOptions, network_dir: Path, gentx_file_lis
copyfile(gentx_file_path, os.path.join(network_dir, "config", "gentx", os.path.basename(gentx_file_path))) copyfile(gentx_file_path, os.path.join(network_dir, "config", "gentx", os.path.basename(gentx_file_path)))
def _remove_persistent_peers(options: CommandOptions, network_dir: Path):
config_file_path = _config_toml_path(network_dir)
if not config_file_path.exists():
print("Error: config.toml not found")
sys.exit(1)
with open(config_file_path, "r") as input_file:
config_file_content = input_file.read()
persistent_peers_pattern = '^persistent_peers = "(.+?)"'
replace_with = "persistent_peers = \"\""
config_file_content = re.sub(persistent_peers_pattern, replace_with, config_file_content, flags=re.MULTILINE)
with open(config_file_path, "w") as output_file:
output_file.write(config_file_content)
def setup(command_context: DeployCommandContext, parameters: LaconicStackSetupCommand, extra_args): def setup(command_context: DeployCommandContext, parameters: LaconicStackSetupCommand, extra_args):
options = command_context.cluster_context.options options = command_context.cluster_context.options
@ -216,6 +235,8 @@ def setup(command_context: DeployCommandContext, parameters: LaconicStackSetupCo
print(f"Command output: {output1}") print(f"Command output: {output1}")
print(f"Generated genesis file, please copy to other nodes as required: \ print(f"Generated genesis file, please copy to other nodes as required: \
{os.path.join(network_dir, 'config', 'genesis.json')}") {os.path.join(network_dir, 'config', 'genesis.json')}")
# Last thing, collect-gentxs puts a likely bogus set of persistent_peers in config.toml so we remove that now
_remove_persistent_peers(options, network_dir)
# In both cases we validate the genesis file now # In both cases we validate the genesis file now
output2, status1 = run_container_command( output2, status1 = run_container_command(
command_context, "laconicd", f"laconicd validate-genesis --home {laconicd_home_path_in_container}", mounts) command_context, "laconicd", f"laconicd validate-genesis --home {laconicd_home_path_in_container}", mounts)