Created by
Jesse Almanrode
last modified
| import click
from hostlist import expand_hostlist # pip install python-hostlist
def validate_hostlist_expr(ctx, param, value):
""" Click callback for validating hostlist expressions
:param ctx: Click context
:param param: Click parameter
:param value: Hostlist expression
:return: List of hosts
:raises: click.UsageError
"""
if value is None:
return value
try:
value = expand_hostlist(value)
except Exception as err:
raise click.UsageError(err)
return value
|
| import click
from IPy import IP
def validate_ipv4(ctx, param, value):
""" Click callback for validating IPv4 addresses
:param ctx: Click context
:param param: Click parameter
:param value: IPv4 Address to validate as a IPv4 address
:return: IPv4 Address
:raises: click.UsageError
"""
if value is None:
return value
try:
IP(value, ipversion=4)
except ValueError:
raise click.UsageError('Invalid IPv4 Address')
|
| import click
from IPy import IP
def validate_ipv6(ctx, param, value):
""" Click callback for validating IPv6 addresses
:param ctx: Click context
:param param: Click parameter
:param value: IPv4 Address to validate as a IPv6 address
:return: IPv6 Address
:raises: click.UsageError
"""
if value is None:
return value
try:
IP(value, ipversion=6)
except ValueError:
raise click.UsageError('Invalid IPv6 Address')
|
| import click
from IPy import IP
def validate_multicast_ip(ctx, param, value):
""" Click callback for validating multicast IPs
:param ctx: Click context
:param param: Click parameter
:param value: IPv4 Address to validate as a multicast address
:return: IPv4 Multicast Address
:raises: click.UsageError
"""
if value is None:
return value
try:
IP(value, ipversion=4)
except ValueError:
raise click.UsageError('Invalid multicast IP')
if value in IP('224.0.0.0/4'):
return value
else:
raise click.UsageError('Invalid multicast IP')
|