Use `tractor.Address` for endpoint resolution
Replace manual `layers['ipv4']['addr']` / `layers['tcp']['port']` tuple extraction with direct `tractor.Address` objects returned from `load_trans_eps()`. In `open_pikerd()` call `addr.unwrap()` for the raw-tuple comparison against `root_actor.accept_addrs`. Deats, - `conf.toml`: update maddr prefix `/ipv4/` -> `/ipv/`, add commented UDS socket path example. - `cli/__init__.py`: wrap endpoint loading in `maybe_open_crash_handler`, append `addr` objects directly to `regaddrs`. - `ui/cli.py`: restructure `chart()` body into `maybe_open_crash_handler` scope, switch to `registry_addrs` from config, comment out the `network`-based `load_trans_eps` path (WIP `multiaddr` transition). - `_actor_runtime.py`: use `addr.unwrap()` for accept-addr membership check. - `uv.lock`: add `multiaddr >= 0.2.0` and its transitive deps. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-codewkt/land_flake_update
parent
c347ab08ea
commit
1fde12d3fd
|
|
@ -1,7 +1,8 @@
|
||||||
[network]
|
[network]
|
||||||
pikerd = [
|
pikerd = [
|
||||||
'/ipv4/127.0.0.1/tcp/6116', # std localhost daemon-actor tree
|
'/ipv/127.0.0.1/tcp/6116', # TCP localhost loopback
|
||||||
# '/uds/6116', # TODO std uds socket file
|
|
||||||
|
# '/uds/run/user/1000/piker/pikerd@6116.sock', # UDS socket path using `multiaddr` lib!
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -161,15 +161,15 @@ def pikerd(
|
||||||
)]
|
)]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
eps: dict = load_trans_eps(
|
from tractor.devx import maybe_open_crash_handler
|
||||||
|
with maybe_open_crash_handler(pdb=pdb):
|
||||||
|
eps: dict[str, list] = load_trans_eps(
|
||||||
network,
|
network,
|
||||||
maddr,
|
maddr,
|
||||||
)
|
)
|
||||||
for layers in eps['pikerd']:
|
addrs: list[tractor.Address] = eps['pikerd']
|
||||||
regaddrs.append((
|
for addr in addrs:
|
||||||
layers['ipv4']['addr'],
|
regaddrs.append(addr)
|
||||||
layers['tcp']['port'],
|
|
||||||
))
|
|
||||||
|
|
||||||
from .. import service
|
from .. import service
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -210,7 +210,10 @@ async def open_pikerd(
|
||||||
trio.open_nursery() as service_tn,
|
trio.open_nursery() as service_tn,
|
||||||
):
|
):
|
||||||
for addr in reg_addrs:
|
for addr in reg_addrs:
|
||||||
if addr not in root_actor.accept_addrs:
|
uaddr: tuple = addr.unwrap()
|
||||||
|
if (
|
||||||
|
uaddr not in root_actor.accept_addrs
|
||||||
|
):
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
f'`pikerd` failed to bind on {addr}!\n'
|
f'`pikerd` failed to bind on {addr}!\n'
|
||||||
'Maybe you have another daemon already running?'
|
'Maybe you have another daemon already running?'
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,10 @@ import os
|
||||||
import click
|
import click
|
||||||
import tractor
|
import tractor
|
||||||
|
|
||||||
from ..cli import cli
|
from ..cli import (
|
||||||
|
cli,
|
||||||
|
load_trans_eps,
|
||||||
|
)
|
||||||
from .. import watchlists as wl
|
from .. import watchlists as wl
|
||||||
from ..service import maybe_spawn_brokerd
|
from ..service import maybe_spawn_brokerd
|
||||||
|
|
||||||
|
|
@ -159,6 +162,9 @@ def chart(
|
||||||
needed if not discovered via [network] config.
|
needed if not discovered via [network] config.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
from tractor.devx import maybe_open_crash_handler
|
||||||
|
pdb: bool = config['pdb']
|
||||||
|
with maybe_open_crash_handler(pdb=pdb):
|
||||||
# eg. ``--profile 3`` reports profiling for anything slower then 3 ms.
|
# eg. ``--profile 3`` reports profiling for anything slower then 3 ms.
|
||||||
if profile is not None:
|
if profile is not None:
|
||||||
from .. import _profile
|
from .. import _profile
|
||||||
|
|
@ -183,43 +189,37 @@ def chart(
|
||||||
tractorloglevel = config['tractorloglevel']
|
tractorloglevel = config['tractorloglevel']
|
||||||
pikerloglevel = config['loglevel']
|
pikerloglevel = config['loglevel']
|
||||||
|
|
||||||
maddrs: list[tuple[str, int]] = config.get(
|
# !TODO, allow declaring bind addr via maddr!
|
||||||
'maddrs',
|
from ..config import load
|
||||||
[],
|
conf, _ = load(
|
||||||
|
conf_name='conf',
|
||||||
)
|
)
|
||||||
|
|
||||||
# if maddrs:
|
|
||||||
# from tractor._multiaddr import parse_maddr
|
|
||||||
# for addr in maddrs:
|
|
||||||
# breakpoint()
|
|
||||||
# layers: dict = parse_maddr(addr)
|
|
||||||
|
|
||||||
regaddrs: list[tuple[str, int]] = config.get(
|
regaddrs: list[tuple[str, int]] = config.get(
|
||||||
'registry_addrs',
|
'registry_addrs',
|
||||||
[],
|
[],
|
||||||
)
|
)
|
||||||
|
# network: dict = conf.get('network')
|
||||||
|
# if network:
|
||||||
|
# eps: dict = load_trans_eps(
|
||||||
|
# network,
|
||||||
|
# maddrs=None,
|
||||||
|
# )
|
||||||
|
# addr: tractor.Address
|
||||||
|
# for addr in eps['pikerd']:
|
||||||
|
# regaddrs.append(addr)
|
||||||
|
|
||||||
from ..config import load
|
# # !TODO, expose this from open_root_actor()!
|
||||||
conf, _ = load(
|
# tpt_bind_addrs: list[
|
||||||
conf_name='conf',
|
# tractor.Address # `Address.get_random()` case
|
||||||
)
|
# |tractor.UnwrappedAddress # registrar case `= uw_reg_addrs`
|
||||||
network: dict = conf.get('network')
|
# ] = []
|
||||||
if network:
|
# chart_maddrs: list[str] = eps.get('chart')
|
||||||
from ..cli import load_trans_eps
|
# if chart_maddrs:
|
||||||
eps: dict = load_trans_eps(
|
# addr: tractor.Address
|
||||||
network,
|
# for addr in load_trans_eps(chart_maddrs):
|
||||||
maddrs,
|
# tpt_bind_addrs.append(addr)
|
||||||
)
|
|
||||||
for layers in eps['pikerd']:
|
|
||||||
regaddrs.append((
|
|
||||||
layers['ipv4']['addr'],
|
|
||||||
layers['tcp']['port'],
|
|
||||||
))
|
|
||||||
|
|
||||||
# breakpoint()
|
|
||||||
from tractor.devx import maybe_open_crash_handler
|
|
||||||
pdb: bool = config['pdb']
|
|
||||||
with maybe_open_crash_handler(pdb=pdb):
|
|
||||||
_main(
|
_main(
|
||||||
syms=symbols,
|
syms=symbols,
|
||||||
brokermods=brokermods,
|
brokermods=brokermods,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue