libcloud.dns package¶
Subpackages¶
- libcloud.dns.drivers package
- Submodules
- libcloud.dns.drivers.auroradns module
- libcloud.dns.drivers.buddyns module
- libcloud.dns.drivers.cloudflare module
- libcloud.dns.drivers.digitalocean module
- libcloud.dns.drivers.dnsimple module
- libcloud.dns.drivers.dnspod module
- libcloud.dns.drivers.dummy module
- libcloud.dns.drivers.durabledns module
- libcloud.dns.drivers.gandi module
- libcloud.dns.drivers.gandi_live module
- libcloud.dns.drivers.godaddy module
- libcloud.dns.drivers.google module
- libcloud.dns.drivers.hostvirtual module
- libcloud.dns.drivers.linode module
- libcloud.dns.drivers.liquidweb module
- libcloud.dns.drivers.luadns module
- libcloud.dns.drivers.nfsn module
- libcloud.dns.drivers.nsone module
- libcloud.dns.drivers.onapp module
- libcloud.dns.drivers.pointdns module
- libcloud.dns.drivers.powerdns module
- libcloud.dns.drivers.rackspace module
- libcloud.dns.drivers.rcodezero module
- libcloud.dns.drivers.route53 module
- libcloud.dns.drivers.softlayer module
- libcloud.dns.drivers.vultr module
- libcloud.dns.drivers.worldwidedns module
- libcloud.dns.drivers.zerigo module
- libcloud.dns.drivers.zonomi module
- Module contents
Submodules¶
libcloud.dns.base module¶
- class libcloud.dns.base.DNSDriver(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]¶
Bases:
libcloud.common.base.BaseDriver
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
- RECORD_TYPE_MAP = {}¶
- connectionCls¶
- 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
- 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
- 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 zonerecord_id (
str
) – ID of the required record
- Return type
- get_zone(zone_id)[source]¶
Return a Zone instance.
- Parameters
zone_id (
str
) – ID of the required zone- Return type
- iterate_zones()[source]¶
Return a generator to iterate over available zones.
- Return type
generator
ofZone
- list_record_types()[source]¶
Return a list of RecordType objects supported by the provider.
- Returns
list
ofRecordType
- name = None¶
- 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
- website = None¶
- class libcloud.dns.base.Record(id, name, type, data, zone, driver, ttl=None, extra=None)[source]¶
Bases:
object
Zone record / resource.
- Parameters
id (
str
) – Record idname (
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.base.Zone(id, domain, type, ttl, driver, extra=None)[source]¶
Bases:
object
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).
libcloud.dns.providers module¶
libcloud.dns.types module¶
- class libcloud.dns.types.Provider[source]¶
Bases:
object
Defines for each of the supported providers
Non-Dummy drivers are sorted in alphabetical order. Please preserve this ordering when adding new drivers.
- AURORADNS = 'auroradns'¶
- BUDDYNS = 'buddyns'¶
- CLOUDFLARE = 'cloudflare'¶
- DIGITAL_OCEAN = 'digitalocean'¶
- DNSIMPLE = 'dnsimple'¶
- DNSPOD = 'dnspod'¶
- DUMMY = 'dummy'¶
- DURABLEDNS = 'durabledns'¶
- GANDI = 'gandi'¶
- GANDI_LIVE = 'gandi_live'¶
- GODADDY = 'godaddy'¶
- GOOGLE = 'google'¶
- HOSTVIRTUAL = 'hostvirtual'¶
- LINODE = 'linode'¶
- LIQUIDWEB = 'liquidweb'¶
- LUADNS = 'luadns'¶
- NFSN = 'nfsn'¶
- NSONE = 'nsone'¶
- ONAPP = 'onapp'¶
- POINTDNS = 'pointdns'¶
- POWERDNS = 'powerdns'¶
- RACKSPACE = 'rackspace'¶
- RACKSPACE_UK = 'rackspace_uk'¶
- RACKSPACE_US = 'rackspace_us'¶
- RCODEZERO = 'rcodezero'¶
- ROUTE53 = 'route53'¶
- SOFTLAYER = 'softlayer'¶
- VULTR = 'vultr'¶
- WORLDWIDEDNS = 'worldwidedns'¶
- ZERIGO = 'zerigo'¶
- ZONOMI = 'zonomi'¶
- exception libcloud.dns.types.RecordAlreadyExistsError(value, driver, record_id)[source]¶
Bases:
libcloud.dns.types.RecordError
- error_type = 'RecordAlreadyExistsError'¶
- exception libcloud.dns.types.RecordDoesNotExistError(value, driver, record_id)[source]¶
Bases:
libcloud.dns.types.RecordError
- error_type = 'RecordDoesNotExistError'¶
- exception libcloud.dns.types.RecordError(value, driver, record_id)[source]¶
Bases:
libcloud.common.types.LibcloudError
- error_type = 'RecordError'¶
- class libcloud.dns.types.RecordType[source]¶
Bases:
object
DNS record type.
- A = 'A'¶
- AAAA = 'AAAA'¶
- AFSDB = 'A'¶
- ALIAS = 'ALIAS'¶
- CAA = 'CAA'¶
- CERT = 'CERT'¶
- CNAME = 'CNAME'¶
- DNAME = 'DNAME'¶
- DNSKEY = 'DNSKEY'¶
- DS = 'DS'¶
- GEO = 'GEO'¶
- HINFO = 'HINFO'¶
- KEY = 'KEY'¶
- LOC = 'LOC'¶
- MX = 'MX'¶
- NAPTR = 'NAPTR'¶
- NS = 'NS'¶
- NSEC = 'NSEC'¶
- OPENPGPKEY = 'OPENPGPKEY'¶
- PTR = 'PTR'¶
- REDIRECT = 'REDIRECT'¶
- RP = 'RP'¶
- RRSIG = 'RRSIG'¶
- SOA = 'SOA'¶
- SPF = 'SPF'¶
- SRV = 'SRV'¶
- SSHFP = 'SSHFP'¶
- TLSA = 'TLSA'¶
- TXT = 'TXT'¶
- URL = 'URL'¶
- WKS = 'WKS'¶
- exception libcloud.dns.types.ZoneAlreadyExistsError(value, driver, zone_id)[source]¶
Bases:
libcloud.dns.types.ZoneError
- error_type = 'ZoneAlreadyExistsError'¶
- exception libcloud.dns.types.ZoneDoesNotExistError(value, driver, zone_id)[source]¶
Bases:
libcloud.dns.types.ZoneError
- error_type = 'ZoneDoesNotExistError'¶
- exception libcloud.dns.types.ZoneError(value, driver, zone_id)[source]¶
Bases:
libcloud.common.types.LibcloudError
- error_type = 'ZoneError'¶
- kwargs = ('zone_id',)¶