ironic.dhcp.neutron module

class ironic.dhcp.neutron.NeutronDHCPApi[source]

Bases: ironic.dhcp.base.BaseDHCP

API for communicating to neutron 2.x API.

get_ip_addresses(task)[source]

Get IP addresses for all ports/portgroups in task.

Parameters

task – a TaskManager instance.

Returns

List of IP addresses associated with task’s ports/portgroups.

supports_ipxe_tag()[source]

Whether the provider will correctly apply the ‘ipxe’ tag.

When iPXE makes a DHCP request, does this provider support adding the tag ipxe or ipxe6 (for IPv6). When the provider returns True, options can be added which filter on these tags.

Returns

True

update_dhcp_opts(task, options, vifs=None)[source]

Send or update the DHCP BOOT options for this node.

Parameters
  • task – A TaskManager instance.

  • options

    this will be a list of dicts, e.g.

    [{'opt_name': '67',
      'opt_value': 'pxelinux.0',
      'ip_version': 4},
     {'opt_name': '66',
      'opt_value': '123.123.123.456',
      'ip_version': 4}]
    

  • vifs

    a dict of Neutron port/portgroup dicts to update DHCP options on. The port/portgroup dict key should be Ironic port UUIDs, and the values should be Neutron port UUIDs, e.g.

    {'ports': {'port.uuid': vif.id},
     'portgroups': {'portgroup.uuid': vif.id}}
    If the value is None, will get the list of
    ports/portgroups from the Ironic port/portgroup
    objects.
    

update_port_dhcp_opts(port_id, dhcp_options, token=None, context=None)[source]

Update a port’s attributes.

Update one or more DHCP options on the specified port. For the relevant API spec, see https://docs.openstack.org/api-ref/network/v2/index.html#update-port

Parameters
  • port_id – designate which port these attributes will be applied to.

  • dhcp_options

    this will be a list of dicts, e.g.

    [{'opt_name': '67',
      'opt_value': 'pxelinux.0',
      'ip_version': 4},
     {'opt_name': '66',
      'opt_value': '123.123.123.456'},
      'ip_version': 4}]
    

  • token – optional auth token. Deprecated, use context.

  • context (ironic.common.context.RequestContext) – request context

Raises

FailedToUpdateDHCPOptOnPort