Parameters
This module defines the Param class, it’s type specific derivatives (IntParam, StrParam) and the Parameters class which serves as a container for Param instances. This can be used by a BaseRecipe class to specify optional/mandatory parameters for the entire test, or by HostReq and DeviceReq classes to define specific parameters needed for the matching algorithm.
- class lnst.Common.Parameters.Param(mandatory=False, **kwargs)
Base Parameter class
Can beused to define your own specific parameter type. Param derived classes serve as type checkers to enable earlier failure of the recipe.
- Parameters:
mandatory (bool) – if True, marks the parameter as mandatory
default – the default value for the parameter, is also type-checked, immediately at Param object creation
- type_check(value)
The type check method
Implementation depends on the specific Param derived class.
- Returns:
the type checked or converted value
- Raises:
ParamError
if the type check or conversion is invalid
- class lnst.Common.Parameters.ChoiceParam(type=None, choices={}, **kwargs)
Choice Param This parameter is used for sitiuation where a param can have one of a specified set of valid values. For example:
>>> flow_type = ChoiceParam(type=StrParam, choices=set('tcp_rr', 'udp_rr', 'tcp_crr'))
The type check will fail if the specified value does not pass both the specified subtype type_check or is not one of the specified choices.
- class lnst.Common.Parameters.NetworkParam(type: IPv4Network | IPv6Network, **kwargs)
Network Param
Parameters of this type are used to specify a IPv4 or IPv6 networks. (network address + prefix length).
- For example::
vlan0_ipv4 = IPv4NetworkParam(default=”192.168.10.0/24”) vlan0_ipv6 = IPv6NetworkParam(default=”fc00:0:0:1::/64”)