# octavia.network.drivers.neutron package

## Submodules

## octavia.network.drivers.neutron.allowed_address_pairs module

class `AllowedAddressPairsDriver`

  Bases: `octavia.network.drivers.neutron.base.BaseNeutronDriver`

  `allocate_vip`(load_balancer)

    Allocates a virtual ip.

    Reserves it for later use as the frontend connection of a load balancer.

    Parameters: | load_balancer – octavia.common.data_models.LoadBalancer instance
    Returns: | octavia.common.data_models.VIP
    Raises: | AllocateVIPException, PortNotFound, SubnetNotFound

  `create_port`(network_id, name=None, fixed_ips=(), secondary_ips=(), security_group_ids=(), admin_state_up=True, qos_policy_id=None)

    Creates a network port.

    fixed_ips = [{‘subnet_id’: <id>, (‘ip_addrss’: <IP>’)},] ip_address is optional in the fixed_ips dictionary.

    Parameters:

    - network_id – The network the port should be created on.
    - name – The name to apply to the port.
    - fixed_ips – A list of fixed IP dicts.
    - secondary_ips – A list of secondary IPs to add to the port.
    - security_group_ids – A list of security group IDs for the port.
    - qos_policy_id – The QoS policy ID to apply to the port.

    Returns port: | A port data model object.

  `deallocate_vip`(vip)

    Delete the vrrp_port (instance port) in case nova didn’t

    This can happen if a failover has occurred.

  `delete_port`(port_id)

    delete a neutron port.

    Parameters: | port_id – The port ID to delete.
    Returns: | None

  `failover_preparation`(amphora)

    Prepare an amphora for failover.

    Parameters: | amphora – amphora object to failover
    Returns: | None
    Raises: | PortNotFound

  `get_network_configs`(loadbalancer, amphora=None)

    Retrieve network configurations

    This method assumes that a dictionary of AmphoraNetworkConfigs keyed off of the related amphora id are returned. The configs contain data pertaining to each amphora that is later used for finalization of the entire load balancer configuration. The data provided to these configs is left up to the driver, this means the driver is responsible for providing data that is appropriate for the amphora network configurations.

    Example return: {<amphora.id>: <AmphoraNetworkConfig>}

    Parameters:

    - load_balancer – The load_balancer configuration
    - amphora – Optional amphora to only query.

    Returns: | dict of octavia.network.data_models.AmphoraNetworkConfig keyed off of the amphora id the config is associated with.
    Raises: | NotFound, NetworkNotFound, SubnetNotFound, PortNotFound

  `get_security_group`(sg_name)

    Retrieves the security group by it’s name.

    Parameters: | sg_name – The security group name.
    Returns: | octavia.network.data_models.SecurityGroup, None if not enabled
    Raises: | NetworkException, SecurityGroupNotFound

  `plug_aap_port`(load_balancer, vip, amphora, subnet)

    Plugs the AAP port to the amp

    Parameters:

    - load_balancer – Load Balancer to prepare the VIP for
    - vip – The VIP to plug
    - amphora – The amphora to plug the VIP into
    - subnet – The subnet to plug the aap into

  `plug_network`(compute_id, network_id, ip_address=None)

    Connects an existing amphora to an existing network.

    Parameters:

    - compute_id – id of an amphora in the compute service
    - network_id – id of a network
    - ip_address – ip address to attempt to be assigned to interface

    Returns: | octavia.network.data_models.Interface instance
    Raises: | PlugNetworkException, AmphoraNotFound, NetworkNotFound

  `plug_port`(amphora, port)

    Plug a neutron port in to a compute instance

    Parameters:

    - amphora – amphora object to plug the port into
    - port – port to plug into the compute instance

    Returns: | None
    Raises: | PlugNetworkException, AmphoraNotFound, NetworkNotFound

  `plug_vip`(load_balancer, vip)

    Plugs a virtual ip as the frontend connection of a load balancer.

    Sets up the routing of traffic from the vip to the load balancer and its amphorae.

    Parameters:

    - load_balancer – octavia.common.data_models.LoadBalancer instance
    - vip – octavia.common.data_models.VIP instance

    Returns: | dict consisting of amphora_id as key and bind_ip as value. bind_ip is the ip that the amphora should listen on to receive traffic to load balance.
    Raises: | PlugVIPException, PortNotFound

  `set_port_admin_state_up`(port_id, state)

    Set the admin state of a port. True is up, False is down.

    Parameters:

    - port_id – The port ID to update.
    - state – True for up, False for down.

    Returns: | None

  `unplug_aap_port`(vip, amphora, subnet)

    Unplugs the AAP port to the amp

    Parameters:

    - vip – The VIP to plug
    - amphora – The amphora to plug the VIP into
    - subnet – The subnet to plug the aap into

  `unplug_network`(compute_id, network_id, ip_address=None)

    Disconnects an existing amphora from an existing network.

    If ip_address is not specificed, all the interfaces plugged on network_id should be unplugged.

    Parameters:

    - compute_id – id of an amphora in the compute service
    - network_id – id of a network
    - ip_address – specific ip_address to unplug

    Returns: | None
    Raises: | UnplugNetworkException, AmphoraNotFound, NetworkNotFound, NetworkException

  `unplug_vip`(load_balancer, vip)

    Unplugs a virtual ip as the frontend connection of a load balancer.

    Removes the routing of traffic from the vip to the load balancer and its amphorae.

    Parameters:

    - load_balancer – octavia.common.data_models.LoadBalancer instance
    - vip – octavia.common.data_models.VIP instance

    Returns: | octavia.common.data_models.VIP instance
    Raises: | UnplugVIPException, PluggedVIPNotFound

  `update_vip`(load_balancer, for_delete=False)

    Hook for the driver to update the VIP information.

    This method will be called upon the change of a load_balancer configuration. It is an optional method to be implemented by drivers. It allows the driver to update any VIP information based on the state of the passed in load_balancer.

    Parameters:

    - load_balancer – octavia.common.data_models.LoadBalancer instance
    - for_delete – Boolean indicating if this update is for a delete

    Raises: | MissingVIPSecurityGroup
    Returns: | None

  `update_vip_sg`(load_balancer, vip)

    Updates the security group for a VIP

    Parameters:

    - load_balancer – Load Balancer to rpepare the VIP for
    - vip – The VIP to plug

  `wait_for_port_detach`(amphora)

    Waits for the amphora ports device_id to be unset.

    This method waits for the ports on an amphora device_id parameter to be ‘’ or None which signifies that nova has finished detaching the port from the instance.

    Parameters: | amphora – Amphora to wait for ports to detach.
    Returns: | None

    Raises:

    - TimeoutException – Port did not detach in interval.
    - PortNotFound – Port was not found by neutron.

## octavia.network.drivers.neutron.base module

class `BaseNeutronDriver`

  Bases: `octavia.network.base.AbstractNetworkDriver`

  `apply_qos_on_port`(qos_id, port_id)
  `get_network`(network_id, context=None)

    Retrieves network from network id.

    Parameters:

    - network_id – id of an network to retrieve
    - context – A request context

    Returns: | octavia.network.data_models.Network
    Raises: | NetworkException, NetworkNotFound

  `get_network_by_name`(network_name)

    Retrieves network from network name.

    Parameters: | network_name – name of a network to retrieve
    Returns: | octavia.network.data_models.Network
    Raises: | NetworkException, NetworkNotFound

  `get_network_ip_availability`(network)

    Retrieves network IP availability.

    Parameters: | network – octavia.network.data_models.Network
    Returns: | octavia.network.data_models.Network_IP_Availability
    Raises: | NetworkException, NetworkNotFound

  `get_plugged_networks`(compute_id)

    Retrieves the current plugged networking configuration.

    Parameters: | compute_id – id of an amphora in the compute service
    Returns: | [octavia.network.data_models.Instance]

  `get_port`(port_id, context=None)

    Retrieves port from port id.

    Parameters:

    - port_id – id of a port to retrieve
    - context – A request context

    Returns: | octavia.network.data_models.Port
    Raises: | NetworkException, PortNotFound

  `get_port_by_name`(port_name)

    Retrieves port from port name.

    Parameters: | port_name – name of a port to retrieve
    Returns: | octavia.network.data_models.Port
    Raises: | NetworkException, PortNotFound

  `get_port_by_net_id_device_id`(network_id, device_id)

    Retrieves port from network id and device id.

    Parameters:

    - network_id – id of a network to filter by
    - device_id – id of a network device to filter by

    Returns: | octavia.network.data_models.Port
    Raises: | NetworkException, PortNotFound

  `get_qos_policy`(qos_policy_id)
  `get_subnet`(subnet_id, context=None)

    Retrieves subnet from subnet id.

    Parameters:

    - subnet_id – id of a subnet to retrieve
    - context – A request context

    Returns: | octavia.network.data_models.Subnet
    Raises: | NetworkException, SubnetNotFound

  `get_subnet_by_name`(subnet_name)

    Retrieves subnet from subnet name.

    Parameters: | subnet_name – name of a subnet to retrieve
    Returns: | octavia.network.data_models.Subnet
    Raises: | NetworkException, SubnetNotFound

  `qos_enabled`()

    Whether QoS is enabled

    Returns: | Boolean

## octavia.network.drivers.neutron.utils module

`convert_fixed_ip_dict_to_model`(fixed_ip_dict)

`convert_floatingip_dict_to_model`(floating_ip_dict)

`convert_network_dict_to_model`(network_dict)

`convert_network_ip_availability_dict_to_model`(network_ip_availability_dict)

`convert_port_dict_to_model`(port_dict)

`convert_qos_policy_dict_to_model`(qos_policy_dict)

`convert_security_group_dict_to_model`(security_group_dict)

`convert_subnet_dict_to_model`(subnet_dict)

## Module contents

this page last updated: 2023-10-24 12:56:13

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

found an error? report a bug questions?