The ironic.drivers.modules.network.common Module

The ironic.drivers.modules.network.common Module

class 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.

port_changed(task, port_obj)[source]

Handle any actions required when a port changes

Parameters:
  • task – a TaskManager instance.
  • port_obj – a changed Port object from the API before it is saved to database.
Raises:

FailedToUpdateDHCPOptOnPort, Conflict

portgroup_changed(task, portgroup_obj)[source]

Handle any actions required when a portgroup changes

Parameters:
  • task – a TaskManager instance.
  • portgroup_obj – a changed Portgroup object from the API before it is saved to database.
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:

  • Require ports or portgroups to have a physical network that is either None or one of the VIF’s allowed physical networks.
  • Prefer ports or portgroups with a physical network field which is not None.
  • Prefer portgroups to ports.
  • Prefer ports with PXE enabled.
Parameters:
  • task – A TaskManager instance.
  • vif_info – a dictionary of information about a VIF. It must have an ‘id’ key, whose value is a unique identifier for that VIF.
Raises:

NetworkError, VifAlreadyAttached, NoFreePhysicalPorts

Raises:

PortgroupPhysnetInconsistent if one of the node’s portgroups has ports which are not all assigned the same physical network.

vif_detach(task, vif_id)[source]

Detach a virtual network interface from a node

Parameters:
  • task – A TaskManager instance.
  • vif_id – A VIF ID to detach
Raises:

VifNotAttached if VIF not attached.

Raises:

NetworkError: if unbind Neutron port failed.

class 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:
  • task – A TaskManager instance.
  • p_obj – Ironic port or portgroup object.
Returns:

VIF ID associated with p_obj or None.

vif_list(task)[source]

List attached VIF IDs for a node

Parameters:task – A TaskManager instance.
Returns:List of VIF dictionaries, each dictionary will have an ‘id’ entry with the ID of the VIF.
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.