ironic.dhcp.dnsmasq module

class ironic.dhcp.dnsmasq.DnsmasqDHCPApi[source]

Bases: BaseDHCP

API for managing host specific Dnsmasq configuration.

clean_dhcp_opts(task)[source]

Clean up the DHCP BOOT options for the host in task.

Parameters:

task – A TaskManager instance.

Raises:

FailedToCleanDHCPOpts

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.

The dnsmasq provider sets this to True on the assumption that the following is included in the dnsmasq.conf:

dhcp-match=set:ipxe,175

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 – Ignored argument

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

Update one or more DHCP options on the specified 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 – An optional authentication token. Deprecated, use context

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

Raises:

FailedToUpdateDHCPOptOnPort