Skip to content

Commit 90a548e

Browse files
committed
Move get_unresolved_peer_infos and set_peer_info from
`chia.util.config` to `chia.server.resolve_peer_info.py` so that `chia.util` no longer depends upon `chia.server`.
1 parent a7dd071 commit 90a548e

11 files changed

+59
-46
lines changed

chia/_tests/util/test_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
from chia._tests.util.misc import DataCase, Marks, datacases
99
from chia.server.outbound_message import NodeType
10+
from chia.server.resolve_peer_info import get_unresolved_peer_infos, set_peer_info
1011
from chia.types.peer_info import UnresolvedPeerInfo
11-
from chia.util.config import get_unresolved_peer_infos, set_peer_info
1212

1313

1414
@dataclass

chia/cmds/configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88

99
from chia.cmds.cmd_classes import ChiaCliContext
1010
from chia.server.outbound_message import NodeType
11+
from chia.server.resolve_peer_info import set_peer_info
1112
from chia.util.config import (
1213
initial_config_file,
1314
load_defaults_for_missing_services,
1415
lock_and_load_config,
1516
save_config,
16-
set_peer_info,
1717
str2bool,
1818
)
1919

chia/cmds/sim_funcs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
from chia.cmds.start_funcs import async_start
1717
from chia.consensus.coinbase import create_puzzlehash_for_pk
1818
from chia.server.outbound_message import NodeType
19+
from chia.server.resolve_peer_info import set_peer_info
1920
from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
2021
from chia.types.coin_record import CoinRecord
2122
from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
22-
from chia.util.config import load_config, save_config, set_peer_info
23+
from chia.util.config import load_config, save_config
2324
from chia.util.errors import KeychainFingerprintExists
2425
from chia.util.keychain import Keychain, bytes_to_mnemonic
2526
from chia.wallet.derive_keys import (

chia/server/resolve_peer_info.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from __future__ import annotations
2+
3+
import logging
4+
from typing import Any, Optional
5+
6+
from chia.server.outbound_message import NodeType
7+
from chia.types.peer_info import UnresolvedPeerInfo
8+
9+
log = logging.getLogger(__name__)
10+
11+
PEER_INFO_MAPPING: dict[NodeType, str] = {
12+
NodeType.FULL_NODE: "full_node_peer",
13+
NodeType.FARMER: "farmer_peer",
14+
}
15+
16+
17+
def get_unresolved_peer_infos(service_config: dict[str, Any], peer_type: NodeType) -> set[UnresolvedPeerInfo]:
18+
peer_info_key = PEER_INFO_MAPPING[peer_type]
19+
peer_infos: list[dict[str, Any]] = service_config.get(f"{peer_info_key}s", [])
20+
peer_info: Optional[dict[str, Any]] = service_config.get(peer_info_key)
21+
if peer_info is not None:
22+
peer_infos.append(peer_info)
23+
24+
return {UnresolvedPeerInfo(host=peer["host"], port=peer["port"]) for peer in peer_infos}
25+
26+
27+
def set_peer_info(
28+
service_config: dict[str, Any],
29+
peer_type: NodeType,
30+
peer_host: Optional[str] = None,
31+
peer_port: Optional[int] = None,
32+
) -> None:
33+
peer_info_key = PEER_INFO_MAPPING[peer_type]
34+
if peer_info_key in service_config:
35+
if peer_host is not None:
36+
service_config[peer_info_key]["host"] = peer_host
37+
if peer_port is not None:
38+
service_config[peer_info_key]["port"] = peer_port
39+
elif f"{peer_info_key}s" in service_config and len(service_config[f"{peer_info_key}s"]) > 0:
40+
if peer_host is not None:
41+
service_config[f"{peer_info_key}s"][0]["host"] = peer_host
42+
if peer_port is not None:
43+
service_config[f"{peer_info_key}s"][0]["port"] = peer_port

chia/server/start_farmer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515
from chia.rpc.farmer_rpc_api import FarmerRpcApi
1616
from chia.server.aliases import FarmerService
1717
from chia.server.outbound_message import NodeType
18+
from chia.server.resolve_peer_info import get_unresolved_peer_infos
1819
from chia.server.signal_handlers import SignalHandlers
1920
from chia.server.start_service import RpcInfo, Service, async_run
2021
from chia.util.chia_logging import initialize_service_logging
21-
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
22+
from chia.util.config import load_config, load_config_cli
2223
from chia.util.default_root import resolve_root_path
2324
from chia.util.keychain import Keychain
2425
from chia.util.task_timing import maybe_manage_task_instrumentation

chia/server/start_full_node.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
from chia.rpc.full_node_rpc_api import FullNodeRpcApi
1818
from chia.server.aliases import FullNodeService
1919
from chia.server.outbound_message import NodeType
20+
from chia.server.resolve_peer_info import get_unresolved_peer_infos
2021
from chia.server.signal_handlers import SignalHandlers
2122
from chia.server.start_service import RpcInfo, Service, async_run
2223
from chia.util.chia_logging import initialize_service_logging
23-
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
24+
from chia.util.config import load_config, load_config_cli
2425
from chia.util.default_root import resolve_root_path
2526
from chia.util.task_timing import maybe_manage_task_instrumentation
2627

chia/server/start_harvester.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@
1515
from chia.rpc.harvester_rpc_api import HarvesterRpcApi
1616
from chia.server.aliases import HarvesterService
1717
from chia.server.outbound_message import NodeType
18+
from chia.server.resolve_peer_info import get_unresolved_peer_infos
1819
from chia.server.signal_handlers import SignalHandlers
1920
from chia.server.start_service import RpcInfo, Service, async_run
2021
from chia.types.peer_info import UnresolvedPeerInfo
2122
from chia.util.chia_logging import initialize_service_logging
22-
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
23+
from chia.util.config import load_config, load_config_cli
2324
from chia.util.default_root import resolve_root_path
2425
from chia.util.task_timing import maybe_manage_task_instrumentation
2526

chia/server/start_timelord.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
from chia.rpc.timelord_rpc_api import TimelordRpcApi
1414
from chia.server.aliases import TimelordService
1515
from chia.server.outbound_message import NodeType
16+
from chia.server.resolve_peer_info import get_unresolved_peer_infos
1617
from chia.server.signal_handlers import SignalHandlers
1718
from chia.server.start_service import RpcInfo, Service, async_run
1819
from chia.timelord.timelord import Timelord
1920
from chia.timelord.timelord_api import TimelordAPI
2021
from chia.util.chia_logging import initialize_service_logging
21-
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
22+
from chia.util.config import load_config, load_config_cli
2223
from chia.util.default_root import resolve_root_path
2324
from chia.util.task_timing import maybe_manage_task_instrumentation
2425

chia/server/start_wallet.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414
from chia.rpc.wallet_rpc_api import WalletRpcApi
1515
from chia.server.aliases import WalletService
1616
from chia.server.outbound_message import NodeType
17+
from chia.server.resolve_peer_info import get_unresolved_peer_infos
1718
from chia.server.signal_handlers import SignalHandlers
1819
from chia.server.start_service import RpcInfo, Service, async_run
1920
from chia.util.chia_logging import initialize_service_logging
20-
from chia.util.config import get_unresolved_peer_infos, load_config, load_config_cli
21+
from chia.util.config import load_config, load_config_cli
2122
from chia.util.default_root import resolve_root_path
2223
from chia.util.keychain import Keychain
2324
from chia.util.task_timing import maybe_manage_task_instrumentation

chia/simulator/setup_services.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
WalletService,
3232
)
3333
from chia.server.outbound_message import NodeType
34+
from chia.server.resolve_peer_info import set_peer_info
3435
from chia.server.signal_handlers import SignalHandlers
3536
from chia.server.start_farmer import create_farmer_service
3637
from chia.server.start_full_node import create_full_node_service
@@ -46,7 +47,7 @@
4647
from chia.timelord.timelord_launcher import VDFClientProcessMgr, find_vdf_client, spawn_process
4748
from chia.types.peer_info import UnresolvedPeerInfo
4849
from chia.util.bech32m import encode_puzzle_hash
49-
from chia.util.config import config_path_for_filename, load_config, lock_and_load_config, save_config, set_peer_info
50+
from chia.util.config import config_path_for_filename, load_config, lock_and_load_config, save_config
5051
from chia.util.db_wrapper import generate_in_memory_db_uri
5152
from chia.util.keychain import bytes_to_mnemonic
5253
from chia.util.lock import Lockfile

chia/util/config.py

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import yaml
1919
from typing_extensions import Literal
2020

21-
from chia.server.outbound_message import NodeType
22-
from chia.types.peer_info import UnresolvedPeerInfo
2321
from chia.util.lock import Lockfile
2422

2523
log = logging.getLogger(__name__)
@@ -330,38 +328,3 @@ def load_defaults_for_missing_services(config: dict[str, Any], config_name: str)
330328
defaulted[service]["selected_network"] = "".join(to_be_referenced)
331329

332330
return defaulted
333-
334-
335-
PEER_INFO_MAPPING: dict[NodeType, str] = {
336-
NodeType.FULL_NODE: "full_node_peer",
337-
NodeType.FARMER: "farmer_peer",
338-
}
339-
340-
341-
def get_unresolved_peer_infos(service_config: dict[str, Any], peer_type: NodeType) -> set[UnresolvedPeerInfo]:
342-
peer_info_key = PEER_INFO_MAPPING[peer_type]
343-
peer_infos: list[dict[str, Any]] = service_config.get(f"{peer_info_key}s", [])
344-
peer_info: Optional[dict[str, Any]] = service_config.get(peer_info_key)
345-
if peer_info is not None:
346-
peer_infos.append(peer_info)
347-
348-
return {UnresolvedPeerInfo(host=peer["host"], port=peer["port"]) for peer in peer_infos}
349-
350-
351-
def set_peer_info(
352-
service_config: dict[str, Any],
353-
peer_type: NodeType,
354-
peer_host: Optional[str] = None,
355-
peer_port: Optional[int] = None,
356-
) -> None:
357-
peer_info_key = PEER_INFO_MAPPING[peer_type]
358-
if peer_info_key in service_config:
359-
if peer_host is not None:
360-
service_config[peer_info_key]["host"] = peer_host
361-
if peer_port is not None:
362-
service_config[peer_info_key]["port"] = peer_port
363-
elif f"{peer_info_key}s" in service_config and len(service_config[f"{peer_info_key}s"]) > 0:
364-
if peer_host is not None:
365-
service_config[f"{peer_info_key}s"][0]["host"] = peer_host
366-
if peer_port is not None:
367-
service_config[f"{peer_info_key}s"][0]["port"] = peer_port

0 commit comments

Comments
 (0)