diff --git a/config/conf.toml b/config/conf.toml index 1f2a64bc..77bab1a4 100644 --- a/config/conf.toml +++ b/config/conf.toml @@ -1,7 +1,8 @@ [network] pikerd = [ - '/ipv4/127.0.0.1/tcp/6116', # std localhost daemon-actor tree - # '/uds/6116', # TODO std uds socket file + '/ipv/127.0.0.1/tcp/6116', # TCP localhost loopback + + # '/uds/run/user/1000/piker/pikerd@6116.sock', # UDS socket path using `multiaddr` lib! ] diff --git a/piker/cli/__init__.py b/piker/cli/__init__.py index 1d3bad25..a8c0c0e7 100644 --- a/piker/cli/__init__.py +++ b/piker/cli/__init__.py @@ -161,15 +161,15 @@ def pikerd( )] else: - eps: dict = load_trans_eps( - network, - maddr, - ) - for layers in eps['pikerd']: - regaddrs.append(( - layers['ipv4']['addr'], - layers['tcp']['port'], - )) + from tractor.devx import maybe_open_crash_handler + with maybe_open_crash_handler(pdb=pdb): + eps: dict[str, list] = load_trans_eps( + network, + maddr, + ) + addrs: list[tractor.Address] = eps['pikerd'] + for addr in addrs: + regaddrs.append(addr) from .. import service diff --git a/piker/service/_actor_runtime.py b/piker/service/_actor_runtime.py index b80cd072..a5325e78 100644 --- a/piker/service/_actor_runtime.py +++ b/piker/service/_actor_runtime.py @@ -210,7 +210,10 @@ async def open_pikerd( trio.open_nursery() as service_tn, ): 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( f'`pikerd` failed to bind on {addr}!\n' 'Maybe you have another daemon already running?' diff --git a/piker/ui/cli.py b/piker/ui/cli.py index d2072900..c4b37290 100644 --- a/piker/ui/cli.py +++ b/piker/ui/cli.py @@ -22,7 +22,10 @@ import os import click import tractor -from ..cli import cli +from ..cli import ( + cli, + load_trans_eps, +) from .. import watchlists as wl from ..service import maybe_spawn_brokerd @@ -159,67 +162,64 @@ def chart( needed if not discovered via [network] config. ''' - # eg. ``--profile 3`` reports profiling for anything slower then 3 ms. - if profile is not None: - from .. import _profile - _profile._pg_profile = True - _profile.ms_slower_then = float(profile) - - # Qt UI entrypoint - from ._app import _main - - for symbol in symbols: - if '.' not in symbol: - click.echo(click.style( - f'symbol: {symbol} must have a {symbol}. suffix', - fg='red', - )) - return - - # global opts - # brokernames: list[str] = config['brokers'] - brokermods = config['brokermods'] - assert brokermods - tractorloglevel = config['tractorloglevel'] - pikerloglevel = config['loglevel'] - - maddrs: list[tuple[str, int]] = config.get( - 'maddrs', - [], - ) - - # 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( - 'registry_addrs', - [], - ) - - from ..config import load - conf, _ = load( - conf_name='conf', - ) - network: dict = conf.get('network') - if network: - from ..cli import load_trans_eps - eps: dict = load_trans_eps( - network, - maddrs, - ) - 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): + # eg. ``--profile 3`` reports profiling for anything slower then 3 ms. + if profile is not None: + from .. import _profile + _profile._pg_profile = True + _profile.ms_slower_then = float(profile) + + # Qt UI entrypoint + from ._app import _main + + for symbol in symbols: + if '.' not in symbol: + click.echo(click.style( + f'symbol: {symbol} must have a {symbol}. suffix', + fg='red', + )) + return + + # global opts + # brokernames: list[str] = config['brokers'] + brokermods = config['brokermods'] + assert brokermods + tractorloglevel = config['tractorloglevel'] + pikerloglevel = config['loglevel'] + + # !TODO, allow declaring bind addr via maddr! + from ..config import load + conf, _ = load( + conf_name='conf', + ) + + regaddrs: list[tuple[str, int]] = config.get( + '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) + + # # !TODO, expose this from open_root_actor()! + # tpt_bind_addrs: list[ + # tractor.Address # `Address.get_random()` case + # |tractor.UnwrappedAddress # registrar case `= uw_reg_addrs` + # ] = [] + # chart_maddrs: list[str] = eps.get('chart') + # if chart_maddrs: + # addr: tractor.Address + # for addr in load_trans_eps(chart_maddrs): + # tpt_bind_addrs.append(addr) + _main( syms=symbols, brokermods=brokermods,