Abstract base class for dhcp providers.
ironic.dhcp.base.
BaseDHCP
[source]¶Bases: object
Base class for DHCP provider APIs.
clean_dhcp_opts
(task)[source]¶Clean up the DHCP BOOT options for all ports in task.
task – A TaskManager instance.
FailedToCleanDHCPOpts
get_ip_addresses
(task)[source]¶Get IP addresses for all ports/portgroups in task.
task – A TaskManager instance.
List of IP addresses associated with task’s ports and 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.
True when the driver supports tagging iPXE DHCP requests
update_dhcp_opts
(task, options, vifs=None)[source]¶Send or update the DHCP BOOT options for this node.
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 with keys ‘ports’ and ‘portgroups’ and dicts as values. Each dict has key/value pairs of the form <ironic UUID>:<neutron port UUID>. 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.
FailedToUpdateDHCPOptOnPort
update_port_dhcp_opts
(port_id, dhcp_options, token=None, context=None)[source]¶Update one or more DHCP options on the specified port.
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 – An optional authentication token. Deprecated, use context
context (ironic.common.context.RequestContext) – request context
FailedToUpdateDHCPOptOnPort
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.