2021-01-06 07:13:39 +03:00
|
|
|
from src.util.config import (
|
|
|
|
load_config,
|
|
|
|
save_config,
|
|
|
|
)
|
2020-12-12 03:02:31 +03:00
|
|
|
from argparse import ArgumentParser
|
|
|
|
from typing import Dict
|
|
|
|
from src.util.default_root import DEFAULT_ROOT_PATH
|
2021-01-15 12:56:58 +03:00
|
|
|
from src.util.config import str2bool
|
2020-12-12 03:02:31 +03:00
|
|
|
|
|
|
|
|
|
|
|
def make_parser(parser: ArgumentParser):
|
|
|
|
|
|
|
|
parser.add_argument(
|
|
|
|
"--set-node-introducer",
|
|
|
|
help="Set the introducer for node - IP:Port",
|
|
|
|
type=str,
|
|
|
|
nargs="?",
|
|
|
|
default="",
|
|
|
|
)
|
|
|
|
|
|
|
|
parser.add_argument(
|
|
|
|
"--set-fullnode-port",
|
|
|
|
help="Set the port to use for the fullnode",
|
|
|
|
type=str,
|
|
|
|
nargs="?",
|
|
|
|
default="",
|
|
|
|
)
|
|
|
|
|
2020-12-12 09:09:34 +03:00
|
|
|
parser.add_argument(
|
|
|
|
"--set-log-level",
|
2021-01-20 11:56:43 +03:00
|
|
|
"--log-level",
|
|
|
|
"-log-level",
|
2020-12-12 09:09:34 +03:00
|
|
|
help="Set the instance log level, Can be CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET",
|
|
|
|
type=str,
|
|
|
|
nargs="?",
|
|
|
|
default="",
|
|
|
|
)
|
|
|
|
|
2021-01-15 12:56:58 +03:00
|
|
|
parser.add_argument(
|
|
|
|
"--enable-upnp",
|
|
|
|
"--upnp",
|
2021-01-20 11:56:43 +03:00
|
|
|
"-upnp",
|
2021-01-15 12:56:58 +03:00
|
|
|
help="Enable or disable uPnP. Can be True or False",
|
|
|
|
type=str,
|
|
|
|
nargs="?",
|
|
|
|
)
|
|
|
|
|
2020-12-12 03:02:31 +03:00
|
|
|
parser.set_defaults(function=configure)
|
|
|
|
|
|
|
|
|
|
|
|
def help_message():
|
|
|
|
print("usage: chia configure -flag")
|
|
|
|
print(
|
2020-12-12 09:32:04 +03:00
|
|
|
"""
|
2020-12-12 09:09:34 +03:00
|
|
|
chia configure [arguments] [inputs]
|
|
|
|
--set-node-introducer [IP:Port] (Set the introducer for node),
|
|
|
|
--set-fullnode-port [Port] (Set the full node default port, useful for beta testing),
|
2021-01-17 23:13:23 +03:00
|
|
|
--set-log-level [LogLevel] (Can be CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET),
|
|
|
|
--enable-upnp,
|
|
|
|
--upnp {True,False} (Enable or disable uPnP. Can be True or False)
|
2020-12-12 09:32:04 +03:00
|
|
|
"""
|
2020-12-12 03:02:31 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def configure(args, parser):
|
|
|
|
config: Dict = load_config(DEFAULT_ROOT_PATH, "config.yaml")
|
|
|
|
change_made = False
|
|
|
|
if args.set_node_introducer:
|
|
|
|
try:
|
|
|
|
if args.set_node_introducer.index(":"):
|
|
|
|
host, port = (
|
|
|
|
":".join(args.set_node_introducer.split(":")[:-1]),
|
|
|
|
args.set_node_introducer.split(":")[-1],
|
|
|
|
)
|
|
|
|
config["full_node"]["introducer_peer"]["host"] = host
|
|
|
|
config["full_node"]["introducer_peer"]["port"] = int(port)
|
2020-12-12 03:18:18 +03:00
|
|
|
config["introducer"]["port"] = int(port)
|
2020-12-12 03:02:31 +03:00
|
|
|
print("Node introducer updated.")
|
|
|
|
change_made = True
|
|
|
|
except ValueError:
|
|
|
|
print("Node introducer address must be in format [IP:Port]")
|
|
|
|
if args.set_fullnode_port:
|
|
|
|
config["full_node"]["port"] = int(args.set_fullnode_port)
|
|
|
|
config["full_node"]["introducer_peer"]["port"] = int(args.set_fullnode_port)
|
|
|
|
config["farmer"]["full_node_peer"]["port"] = int(args.set_fullnode_port)
|
|
|
|
config["timelord"]["full_node_peer"]["port"] = int(args.set_fullnode_port)
|
|
|
|
config["wallet"]["full_node_peer"]["port"] = int(args.set_fullnode_port)
|
|
|
|
config["wallet"]["introducer_peer"]["port"] = int(args.set_fullnode_port)
|
2020-12-12 03:21:53 +03:00
|
|
|
config["introducer"]["port"] = int(args.set_fullnode_port)
|
2020-12-12 03:02:31 +03:00
|
|
|
print("Default full node port updated.")
|
|
|
|
change_made = True
|
2020-12-12 09:09:34 +03:00
|
|
|
if args.set_log_level:
|
2020-12-12 09:32:04 +03:00
|
|
|
if (
|
|
|
|
(args.set_log_level == "CRITICAL")
|
|
|
|
or (args.set_log_level == "ERROR")
|
|
|
|
or (args.set_log_level == "WARNING")
|
|
|
|
or (args.set_log_level == "INFO")
|
|
|
|
or (args.set_log_level == "DEBUG")
|
|
|
|
or (args.set_log_level == "NOTSET")
|
|
|
|
):
|
2020-12-12 09:09:34 +03:00
|
|
|
config["logging"]["log_level"] = args.set_log_level
|
|
|
|
print("Logging level updated. Check CHIA_ROOT/log/debug.log")
|
|
|
|
change_made = True
|
2021-01-17 04:18:34 +03:00
|
|
|
if args.enable_upnp is not None:
|
2021-01-15 12:56:58 +03:00
|
|
|
config["full_node"]["enable_upnp"] = str2bool(args.enable_upnp)
|
|
|
|
if str2bool(args.enable_upnp):
|
|
|
|
print("uPnP enabled.")
|
|
|
|
else:
|
|
|
|
print("uPnP disabled.")
|
|
|
|
change_made = True
|
2020-12-12 03:02:31 +03:00
|
|
|
if change_made:
|
2021-01-12 00:59:08 +03:00
|
|
|
print("Restart any running chia services for changes to take effect.")
|
2020-12-12 03:02:31 +03:00
|
|
|
save_config(args.root_path, "config.yaml", config)
|
|
|
|
else:
|
|
|
|
help_message()
|
|
|
|
return 0
|