Input Types
anta.custom_types ¶
Module that provides predefined types for AntaTest.Input instances.
Afi
module-attribute
¶
Afi = Literal['ipv4', 'ipv6', 'vpn-ipv4', 'vpn-ipv6', 'evpn', 'rt-membership', 'path-selection', 'link-state']
ErrDisableReasons
module-attribute
¶
ErrDisableReasons = Literal['acl', 'arp-inspection', 'bpduguard', 'dot1x-session-replace', 'hitless-reload-down', 'lacp-rate-limit', 'link-flap', 'no-internal-vlan', 'portchannelguard', 'portsec', 'tapagg', 'uplink-failure-detection']
EthernetInterface
module-attribute
¶
EthernetInterface = Annotated[str, Field(pattern='^Ethernet[0-9]+(\\/[0-9]+)*$'), BeforeValidator(interface_autocomplete), BeforeValidator(interface_case_sensitivity)]
Interface
module-attribute
¶
Interface = Annotated[str, Field(pattern=REGEXP_TYPE_EOS_INTERFACE), BeforeValidator(interface_autocomplete), BeforeValidator(interface_case_sensitivity)]
MultiProtocolCaps
module-attribute
¶
MultiProtocolCaps = Annotated[str, BeforeValidator(bgp_multiprotocol_capabilities_abbreviations)]
REGEXP_BGP_IPV4_MPLS_LABELS
module-attribute
¶
REGEXP_BGP_IPV4_MPLS_LABELS = '\\b(ipv4[\\s\\-]?mpls[\\s\\-]?label(s)?)\\b'
Match IPv4 MPLS Labels.
REGEXP_BGP_L2VPN_AFI
module-attribute
¶
REGEXP_BGP_L2VPN_AFI = '\\b(l2[\\s\\-]?vpn[\\s\\-]?evpn)\\b'
Match L2VPN EVPN AFI.
REGEXP_EOS_BLACKLIST_CMDS
module-attribute
¶
REGEXP_EOS_BLACKLIST_CMDS = ['^reload.*', '^conf\\w*\\s*(terminal|session)*', '^wr\\w*\\s*\\w+']
List of regular expressions to blacklist from eos commands.
REGEXP_INTERFACE_ID
module-attribute
¶
REGEXP_INTERFACE_ID = '\\d+(\\/\\d+)*(\\.\\d+)?'
Match Interface ID lilke 1/1.1.
REGEXP_PATH_MARKERS
module-attribute
¶
REGEXP_PATH_MARKERS = '[\\\\\\/\\s]'
Match directory path from string.
REGEXP_TYPE_EOS_INTERFACE
module-attribute
¶
REGEXP_TYPE_EOS_INTERFACE = '^(Dps|Ethernet|Fabric|Loopback|Management|Port-Channel|Tunnel|Vlan|Vxlan)[0-9]+(\\/[0-9]+)*(\\.[0-9]+)?$'
Match EOS interface types like Ethernet1/1, Vlan1, Loopback1, etc.
REGEXP_TYPE_HOSTNAME
module-attribute
¶
REGEXP_TYPE_HOSTNAME = '^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$'
Match hostname like my-hostname
, my-hostname-1
, my-hostname-1-2
.
REGEXP_TYPE_VXLAN_SRC_INTERFACE
module-attribute
¶
REGEXP_TYPE_VXLAN_SRC_INTERFACE = '^(Loopback)([0-9]|[1-9][0-9]{1,2}|[1-7][0-9]{3}|8[01][0-9]{2}|819[01])$'
Match Vxlan source interface like Loopback10.
REGEX_BGP_IPV4_MPLS_VPN
module-attribute
¶
REGEX_BGP_IPV4_MPLS_VPN = '\\b(ipv4[\\s\\-]?mpls[\\s\\-]?vpn)\\b'
Match IPv4 MPLS VPN.
REGEX_BGP_IPV4_UNICAST
module-attribute
¶
REGEX_BGP_IPV4_UNICAST = '\\b(ipv4[\\s\\-]?uni[\\s\\-]?cast)\\b'
Match IPv4 Unicast.
TestStatus
module-attribute
¶
TestStatus = Literal['unset', 'success', 'failure', 'error', 'skipped']
VxlanSrcIntf
module-attribute
¶
VxlanSrcIntf = Annotated[str, Field(pattern=REGEXP_TYPE_VXLAN_SRC_INTERFACE), BeforeValidator(interface_autocomplete), BeforeValidator(interface_case_sensitivity)]
aaa_group_prefix ¶
aaa_group_prefix(v: str) -> str
Prefix the AAA method with ‘group’ if it is known.
Source code in anta/custom_types.py
38 39 40 41 |
|
bgp_multiprotocol_capabilities_abbreviations ¶
bgp_multiprotocol_capabilities_abbreviations(value: str) -> str
Abbreviations for different BGP multiprotocol capabilities.
Examples
- IPv4 Unicast
- L2vpnEVPN
- ipv4 MPLS Labels
- ipv4Mplsvpn
Source code in anta/custom_types.py
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
|
interface_autocomplete ¶
interface_autocomplete(v: str) -> str
Allow the user to only provide the beginning of an interface name.
Supported alias:
- et
, eth
will be changed to Ethernet
- po
will be changed to Port-Channel
- lo
will be changed to Loopback
Source code in anta/custom_types.py
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
|
interface_case_sensitivity ¶
interface_case_sensitivity(v: str) -> str
Reformat interface name to match expected case sensitivity.
Examples
- ethernet -> Ethernet
- vlan -> Vlan
- loopback -> Loopback
Source code in anta/custom_types.py
64 65 66 67 68 69 70 71 72 73 74 75 76 |
|
validate_regex ¶
validate_regex(value: str) -> str
Validate that the input value is a valid regex format.
Source code in anta/custom_types.py
105 106 107 108 109 110 111 112 |
|