ironic.drivers.modules.network.common.
NeutronVIFPortIDMixin
[source]¶Bases: ironic.drivers.modules.network.common.VIFPortIDMixin
VIF port ID mixin class for neutron network interfaces.
Mixin class that provides VIF-related network interface methods for neutron network interfaces. On VIF attach/detach, the associated neutron port will be updated.
get_node_network_data
(task)[source]¶Get network configuration data for node ports.
Pull network data from ironic node object if present, otherwise collect it for Neutron VIFs.
Parameters: | task – A TaskManager instance. |
---|---|
Raises: | InvalidParameterValue, if the network interface configuration is invalid. |
Raises: | MissingParameterValue, if some parameters are missing. |
Returns: | a dict holding network configuration information adhearing Nova network metadata layout (network_data.json). |
port_changed
(task, port_obj)[source]¶Handle any actions required when a port changes
Parameters: |
|
---|---|
Raises: | FailedToUpdateDHCPOptOnPort, Conflict |
portgroup_changed
(task, portgroup_obj)[source]¶Handle any actions required when a portgroup changes
Parameters: |
|
---|---|
Raises: | FailedToUpdateDHCPOptOnPort, Conflict |
vif_attach
(task, vif_info)[source]¶Attach a virtual network interface to a node
Attach a virtual interface to a node. When selecting a port or portgroup to attach the virtual interface to, the following ordered criteria are applied:
Parameters: |
|
---|---|
Raises: | NetworkError, VifAlreadyAttached, NoFreePhysicalPorts |
Raises: | PortgroupPhysnetInconsistent if one of the node’s portgroups has ports which are not all assigned the same physical network. |
ironic.drivers.modules.network.common.
VIFPortIDMixin
[source]¶Bases: object
VIF port ID mixin class for non-neutron network interfaces.
Mixin class that provides VIF-related network interface methods for non-neutron network interfaces. There are no effects due to VIF attach/detach that are external to ironic.
NOTE: This does not yet support the full set of VIF methods, as it does not provide vif_attach, vif_detach, port_changed, or portgroup_changed.
get_current_vif
(task, p_obj)[source]¶Returns the currently used VIF associated with port or portgroup
We are booting the node only in one network at a time, and presence of cleaning_vif_port_id means we’re doing cleaning, of provisioning_vif_port_id - provisioning, of rescuing_vif_port_id - rescuing. Otherwise it’s a tenant network
Parameters: |
|
---|---|
Returns: | VIF ID associated with p_obj or None. |
get_node_network_data
(task)[source]¶Get network configuration data for node’s ports/portgroups.
Gather L2 and L3 network settings from ironic node network_data field. Ironic would eventually pass network configuration to the node being managed out-of-band.
Parameters: | task – A TaskManager instance. |
---|---|
Raises: | InvalidParameterValue, if the network interface configuration is invalid. |
Raises: | MissingParameterValue, if some parameters are missing. |
Returns: | a dict holding network configuration information adhearing Nova network metadata layout (network_data.json). |
ironic.drivers.modules.network.common.
get_free_port_like_object
(task, vif_id, physnets, vif_info={})[source]¶Find free port-like object (portgroup or port) VIF will be attached to.
Ensures that the VIF is not already attached to this node. When selecting a port or portgroup to attach the virtual interface to, the following ordered criteria are applied:
Parameters: |
|
---|---|
Raises: | VifAlreadyAttached, if VIF is already attached to the node. |
Raises: | NoFreePhysicalPorts, if there is no port-like object VIF can be attached to. |
Raises: | PortgroupPhysnetInconsistent if one of the node’s portgroups has ports which are not all assigned the same physical network. |
Returns: | port-like object VIF will be attached to. |
ironic.drivers.modules.network.common.
plug_port_to_tenant_network
(task, port_like_obj, client=None)[source]¶Plug port like object to tenant network.
Parameters: |
|
---|---|
Raises: | NetworkError if failed to update Neutron port. |
Raises: | VifNotAttached if tenant VIF is not associated with port_like_obj. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.