pkgs/cli: Validate flake for network subcommands
When running for example `clan networks list` we now get a reasonable
error message, instead of:
```
Traceback (most recent call last):
File "/nix/store/8ygq8bfxqydk2917mmg32wy9wb0qzzzd-clan-cli/bin/.clan-wrapped", line 9, in <module>
sys.exit(main())
~~~~^^
File "/nix/store/8ygq8bfxqydk2917mmg32wy9wb0qzzzd-clan-cli/lib/python3.13/site-packages/clan_cli/cli.py", line 516, in main
args.func(args)
~~~~~~~~~^^^^^^
File "/nix/store/8ygq8bfxqydk2917mmg32wy9wb0qzzzd-clan-cli/lib/python3.13/site-packages/clan_cli/network/list.py", line 12, in list_command
networks = networks_from_flake(flake)
File "/nix/store/8ygq8bfxqydk2917mmg32wy9wb0qzzzd-clan-cli/lib/python3.13/site-packages/clan_lib/network/network.py", line 106, in networks_from_flake
networks_ = flake.select("clan.exports.instances.*.networking")
^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'select'
```
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
from clan_lib.flake import Flake
|
||||
from clan_lib.flake import require_flake
|
||||
from clan_lib.network.network import networks_from_flake
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def list_command(args: argparse.Namespace) -> None:
|
||||
flake: Flake = args.flake
|
||||
flake = require_flake(args.flake)
|
||||
networks = networks_from_flake(flake)
|
||||
|
||||
if not networks:
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
from clan_lib.flake import Flake
|
||||
from clan_lib.flake import require_flake
|
||||
from clan_lib.network.network import get_network_overview, networks_from_flake
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def overview_command(args: argparse.Namespace) -> None:
|
||||
flake: Flake = args.flake
|
||||
flake = require_flake(args.flake)
|
||||
networks = networks_from_flake(flake)
|
||||
overview = get_network_overview(networks)
|
||||
for network_name, network in overview.items():
|
||||
|
||||
@@ -2,14 +2,14 @@ import argparse
|
||||
import logging
|
||||
|
||||
from clan_lib.errors import ClanError
|
||||
from clan_lib.flake import Flake
|
||||
from clan_lib.flake import require_flake
|
||||
from clan_lib.network.network import networks_from_flake
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def ping_command(args: argparse.Namespace) -> None:
|
||||
flake: Flake = args.flake
|
||||
flake = require_flake(args.flake)
|
||||
machine = args.machine
|
||||
network_name = args.network
|
||||
|
||||
|
||||
Reference in New Issue
Block a user