ironic.common.trait_based_networking.base module¶
- class ironic.common.trait_based_networking.base.Actions(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
EnumRepresents actions recognized by Trait Based Networking
- ATTACH_PORT = 'attach_port'¶
- ATTACH_PORTGROUP = 'attach_portgroup'¶
- BOND_PORTS = 'bond_ports'¶
- GROUP_AND_ATTACH_PORTS = 'group_and_attach_ports'¶
- class ironic.common.trait_based_networking.base.AttachAction(trait_action, node_uuid)[source]¶
Bases:
RenderedActionBase class for actions which will attach objects to networks
- class ironic.common.trait_based_networking.base.AttachPort(trait_action, node_uuid, port_uuid, network_id)[source]¶
Bases:
AttachActionAttach a port to a network
Contains all the necessary information to attach a port to a network (vif)
- class ironic.common.trait_based_networking.base.AttachPortgroup(trait_action, node_uuid, portgroup_uuid, network_id)[source]¶
Bases:
AttachActionAttach a portgroup to a network
Contains all the necessary information to attach a portgroup to a network (vif)
- class ironic.common.trait_based_networking.base.Comparator(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
EnumA FilterExpression Comparator
Comparators test mathematical-esque relations between a variable and a string.
- EQUALITY = '=='¶
- GT = '>'¶
- GT_OR_EQ = '>='¶
- INEQUALITY = '!='¶
- LT = '<'¶
- LT_OR_EQ = '<='¶
- PREFIX_MATCH = '=~'¶
- class ironic.common.trait_based_networking.base.CompoundExpression(left_expression, operator, right_expression)[source]¶
Bases:
objectA compound expression found within a FilterExpression
A compound expression consists of a left-hand expression and a right-hand expression joined by a boolean operator.
- class ironic.common.trait_based_networking.base.FilterExpression(expression)[source]¶
Bases:
objectEncompasses filters found in TraitActions
Used to filter (port, network) pairs to apply actions which pass the filter.
Use FilterExpression.parse to transform a string containing a grammatically correct expression into a fully parsed FilterExpression object.
See FILTER_EXPRESSION_GRAMMAR in ironic.common.trait_based_networking.grammar.parser for full understanding of how these expressions are parsed.
- class ironic.common.trait_based_networking.base.FunctionExpression(variable)[source]¶
Bases:
objectA callable function from within a FilterExpression
Used to query objects to determine if they pass a FilterExpression or not.
- class ironic.common.trait_based_networking.base.Network(network_id, name, tags)[source]¶
Bases:
objectA Network (aka vif)
Used to match against TraitAction FilterExpressions
- class ironic.common.trait_based_networking.base.NetworkTrait(name, actions, order=1)[source]¶
Bases:
objectRepresents an entire Trait for Trait Based Networking
Each trait can have many actions. Traits can be ordered explicitly if so desired.
- class ironic.common.trait_based_networking.base.NoMatch(trait_action, node_uuid, reason)[source]¶
Bases:
RenderedActionReturned by network planning when a trait action finds no matches
- class ironic.common.trait_based_networking.base.NotImplementedAction(action)[source]¶
Bases:
RenderedActionReturned by network planning if an action has not been implemented
- class ironic.common.trait_based_networking.base.Operator(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
EnumA FilterExpression Operator
Represents a boolean operator (AND, OR) between two expressions in a filter expression.
- AND = '&&'¶
- OR = '||'¶
- class ironic.common.trait_based_networking.base.ParenExpression(expression)[source]¶
Bases:
objectRepresents an parentheses expression found in a FilterExpression
Aids in logically grouping and evaluating expressions before others.
- class ironic.common.trait_based_networking.base.Port(ironic_port_like_obj)[source]¶
Bases:
PrimordialPortA Port used internally to query and match to TraitActions
- class ironic.common.trait_based_networking.base.Portgroup(ironic_port_like_obj)[source]¶
Bases:
PrimordialPortA Portgroup used internally to query and match to TraitActions
- class ironic.common.trait_based_networking.base.PrimordialPort(ironic_port_like_obj)[source]¶
Bases:
objectA set of common attributes belonging to both Ports and Portgroups
- class ironic.common.trait_based_networking.base.RenderedAction(trait_action, node_uuid)[source]¶
Bases:
objectA base class for Actions which are ready to apply
- class ironic.common.trait_based_networking.base.SingleExpression(variable, comparator, literal)[source]¶
Bases:
objectA single expression from within a FilterExpression
A single expression consists of a variable name, a comparator, and a string literal. For example:
port.vendor == “purple”
In this example, When eval()ed against a port whose vendor is “purple” this expression will return True. Otherwise the expression will return False.
- class ironic.common.trait_based_networking.base.TraitAction(trait_name, action, filter_expression, min_count=None, max_count=None)[source]¶
Bases:
objectAn action defined by a NetworkTrait
Each action contains a filter (FilterExpression) that determines which (port, network) pairs the action can apply to.
- ALL_KEYS = ['max_count', 'min_count', 'action', 'filter']¶
- NECESSARY_KEYS = ['action', 'filter']¶
- OPTIONAL_KEYS = ['max_count', 'min_count']¶
- class ironic.common.trait_based_networking.base.Variables(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
EnumRepresents a variable (or function) used by FilterExpressions
Values of variables are drawn from network-related objects like ports, portgroups, or networks (aka vifs).
- NETWORK_NAME = 'network.name'¶
- NETWORK_TAGS = 'network.tags'¶
- PORT_ADDRESS = 'port.address'¶
- PORT_CATEGORY = 'port.category'¶
- PORT_IS_PORT = 'port.is_port'¶
- PORT_IS_PORTGROUP = 'port.is_portgroup'¶
- PORT_PHYSICAL_NETWORK = 'port.physical_network'¶
- PORT_VENDOR = 'port.vendor'¶