Use click nargs for dns servers

This commit is contained in:
up-n-atom
2023-09-15 01:56:48 -04:00
committed by GitHub
parent b91c6e2f8f
commit ae890cb914
+1 -15
View File
@@ -90,22 +90,8 @@ async def get_dns(ctx: click.Context) -> None:
await ctx.invoke(get_value, path='Device/DNS')
def validate_dns_servers(ctx: click.Context, param: str, value: Any) -> tuple[IPv4Address]:
if isinstance(value, tuple):
return value
elif isinstance(value, list):
value = " ".join(value)
dns_servers = set()
for dns_server in value.split(' ', maxsplit=1):
try:
dns_servers.add(IPv4Address(dns_server))
except:
raise click.BadParameter(f"Invalid IPv4 address: {dns_server}")
return tuple(dns_servers)
@cli.command()
@click.option('--dns-servers', type=click.UNPROCESSED, callback=validate_dns_servers, prompt='DNS servers seperated by a space')
@click.option('-s', '--dns-servers', required=True, nargs=2, type=IPv4Address)
@click.pass_obj
async def set_dns_servers(client: SagemcomClient, dns_servers: tuple[IPv4Address]) -> None:
try: