Merge pull request 'allow ipv6 addresses in deployment addresses' (#569) from Mic92-cli into main
All checks were successful
assets1 / test (push) Successful in 30s
checks-impure / test (push) Successful in 1m13s
checks / test (push) Successful in 2m14s

This commit is contained in:
clan-bot 2023-11-28 09:08:31 +00:00
commit 0ae454c8a9
2 changed files with 13 additions and 6 deletions

View File

@ -9,6 +9,7 @@ import shlex
import subprocess
import sys
import time
import urllib.parse
from contextlib import ExitStack, contextmanager
from enum import Enum
from pathlib import Path
@ -775,11 +776,11 @@ def parse_deployment_address(
for option in maybe_options[1].split("&"):
k, v = option.split("=")
options[k] = v
maybe_port = hostname.split(":")
port = None
if len(maybe_port) > 1:
hostname = maybe_port[0]
port = int(maybe_port[1])
result = urllib.parse.urlsplit("//" + hostname)
if not result.hostname:
raise Exception(f"Invalid hostname: {hostname}")
hostname = result.hostname
port = result.port
meta = meta.copy()
meta["flake_attr"] = machine_name
return Host(

View File

@ -1,6 +1,12 @@
import subprocess
from clan_cli.ssh import Host, HostGroup
from clan_cli.ssh import Host, HostGroup, parse_deployment_address
def test_parse_ipv6() -> None:
host = parse_deployment_address("foo", "[fe80::1%eth0]:2222")
assert host.host == "fe80::1%eth0"
assert host.port == 2222
def test_run(host_group: HostGroup) -> None: