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 argparse
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from clan_lib.flake import Flake
|
from clan_lib.flake import require_flake
|
||||||
from clan_lib.network.network import networks_from_flake
|
from clan_lib.network.network import networks_from_flake
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def list_command(args: argparse.Namespace) -> None:
|
def list_command(args: argparse.Namespace) -> None:
|
||||||
flake: Flake = args.flake
|
flake = require_flake(args.flake)
|
||||||
networks = networks_from_flake(flake)
|
networks = networks_from_flake(flake)
|
||||||
|
|
||||||
if not networks:
|
if not networks:
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import argparse
|
import argparse
|
||||||
import logging
|
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
|
from clan_lib.network.network import get_network_overview, networks_from_flake
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def overview_command(args: argparse.Namespace) -> None:
|
def overview_command(args: argparse.Namespace) -> None:
|
||||||
flake: Flake = args.flake
|
flake = require_flake(args.flake)
|
||||||
networks = networks_from_flake(flake)
|
networks = networks_from_flake(flake)
|
||||||
overview = get_network_overview(networks)
|
overview = get_network_overview(networks)
|
||||||
for network_name, network in overview.items():
|
for network_name, network in overview.items():
|
||||||
|
|||||||
@@ -2,14 +2,14 @@ import argparse
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from clan_lib.errors import ClanError
|
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
|
from clan_lib.network.network import networks_from_flake
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def ping_command(args: argparse.Namespace) -> None:
|
def ping_command(args: argparse.Namespace) -> None:
|
||||||
flake: Flake = args.flake
|
flake = require_flake(args.flake)
|
||||||
machine = args.machine
|
machine = args.machine
|
||||||
network_name = args.network
|
network_name = args.network
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user