DNS Base API

class libcloud.dns.base.DNSDriver(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]

A base DNSDriver class to derive from

This class is always subclassed by a specific driver.

Parameters:
  • key (str) – API key or username to used (required)
  • secret (str) – Secret password to be used (required)
  • secure (bool) – Whether to use HTTPS or HTTP. Note: Some providers only support HTTPS, and it is on by default.
  • host (str) – Override hostname used for connections.
  • port (int) – Override port used for connections.
Returns:

None

connectionCls

alias of ConnectionUserAndKey

create_record(name, zone, type, data, extra=None)[source]

Create a new record.

Parameters:
  • name (str) – Record name without the domain name (e.g. www). Note: If you want to create a record for a base domain name, you should specify empty string (‘’) for this argument.
  • zone (Zone) – Zone where the requested record is created.
  • type (RecordType) – DNS record type (A, AAAA, ...).
  • data (str) – Data for the record (depends on the record type).
  • extra (dict) – Extra attributes (driver specific). (optional)
Return type:

Record

create_zone(domain, type='master', ttl=None, extra=None)[source]

Create a new zone.

Parameters:
  • domain (str) – Zone domain name (e.g. example.com)
  • type (str) – Zone type (master / slave).
  • ttl (int) – TTL for new records. (optional)
  • extra (dict) – Extra attributes (driver specific). (optional)
Return type:

Zone

delete_record(record)[source]

Delete a record.

Parameters:record (Record) – Record to delete.
Return type:bool
delete_zone(zone)[source]

Delete a zone.

Note: This will delete all the records belonging to this zone.

Parameters:zone (Zone) – Zone to delete.
Return type:bool
export_zone_to_bind_format(zone)[source]

Export Zone object to the BIND compatible format.

Parameters:zone (Zone) – Zone to export.
Returns:Zone data in BIND compatible format.
Return type:str
export_zone_to_bind_zone_file(zone, file_path)[source]

Export Zone object to the BIND compatible format and write result to a file.

Parameters:
  • zone (Zone) – Zone to export.
  • file_path (str) – File path where the output will be saved.
get_record(zone_id, record_id)[source]

Return a Record instance.

Parameters:
  • zone_id (str) – ID of the required zone
  • record_id (str) – ID of the required record
Return type:

Record

get_zone(zone_id)[source]

Return a Zone instance.

Parameters:zone_id (str) – ID of the required zone
Return type:Zone
iterate_records(zone)[source]

Return a generator to iterate over records for the provided zone.

Parameters:zone (Zone) – Zone to list records for.
Return type:generator of Record
iterate_zones()[source]

Return a generator to iterate over available zones.

Return type:generator of Zone
list_record_types()[source]

Return a list of RecordType objects supported by the provider.

Returns:list of RecordType
list_records(zone)[source]

Return a list of records for the provided zone.

Parameters:zone (Zone) – Zone to list records for.
Returns:list of Record
list_zones()[source]

Return a list of zones.

Returns:list of Zone
update_record(record, name, type, data, extra=None)[source]

Update an existing record.

Parameters:
  • record (Record) – Record to update.
  • name (str) – Record name without the domain name (e.g. www). Note: If you want to create a record for a base domain name, you should specify empty string (‘’) for this argument.
  • type (RecordType) – DNS record type (A, AAAA, ...).
  • data (str) – Data for the record (depends on the record type).
  • extra (dict) – (optional) Extra attributes (driver specific).
Return type:

Record

update_zone(zone, domain, type='master', ttl=None, extra=None)[source]

Update en existing zone.

Parameters:
  • zone (Zone) – Zone to update.
  • domain (str) – Zone domain name (e.g. example.com)
  • type (str) – Zone type (master / slave).
  • ttl (int) – TTL for new records. (optional)
  • extra (dict) – Extra attributes (driver specific). (optional)
Return type:

Zone

class libcloud.dns.base.Zone(id, domain, type, ttl, driver, extra=None)[source]

DNS zone.

Parameters:
  • id (str) – Zone id.
  • domain (str) – The name of the domain.
  • type (str) – Zone type (master, slave).
  • ttl (int) – Default TTL for records in this zone (in seconds).
  • driver (DNSDriver) – DNSDriver instance.
  • extra (dict) – (optional) Extra attributes (driver specific).
class libcloud.dns.base.Record(id, name, type, data, zone, driver, ttl=None, extra=None)[source]

Zone record / resource.

Parameters:
  • id (str) – Record id
  • name (str) – Hostname or FQDN.
  • type (RecordType) – DNS record type (A, AAAA, ...).
  • data (str) – Data for the record (depends on the record type).
  • zone (Zone) – Zone instance.
  • driver (DNSDriver) – DNSDriver instance.
  • ttl (int) – Record TTL.
  • extra (dict) – (optional) Extra attributes (driver specific).
class libcloud.dns.types.RecordType[source]

DNS record type.

Error Classes

class libcloud.dns.types.ZoneError(value, driver, zone_id)[source]
class libcloud.dns.types.ZoneDoesNotExistError(value, driver, zone_id)[source]
class libcloud.dns.types.ZoneAlreadyExistsError(value, driver, zone_id)[source]
class libcloud.dns.types.RecordError(value, driver, record_id)[source]
class libcloud.dns.types.RecordDoesNotExistError(value, driver, record_id)[source]
class libcloud.dns.types.RecordAlreadyExistsError(value, driver, record_id)[source]