libcloud.dns.drivers package¶
Submodules¶
libcloud.dns.drivers.digitalocean module¶
Digital Ocean DNS Driver
-
class
libcloud.dns.drivers.digitalocean.
DigitalOceanDNSDriver
(key, secret=None, secure=True, host=None, port=None, api_version=None, region=None, ex_per_page=200, **kwargs)[source]¶ Bases:
libcloud.common.digitalocean.DigitalOcean_v2_BaseDriver
,libcloud.dns.base.DNSDriver
-
RECORD_TYPE_MAP
= {'A': 'A', 'TXT': 'TXT', 'AAAA': 'AAAA', 'CNAME': 'CNAME', 'SRV': 'SRV', 'NS': 'NS', 'MX': 'MX'}¶
-
connectionCls
¶ alias of
DigitalOcean_v2_Connection
-
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 for MX and SRV. (Depends on record) {“priority” : 0, “port” : 443, “weight” : 100}
Return type: Record
- name (
-
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) (does nothing). - ttl (
int
) – TTL for new records. (does nothing) - extra (
dict
) – Extra attributes (to set ip). (optional) Note: This can be used to set the default A record with {“ip” : “IP.AD.DR.ESS”} otherwise 127.0.0.1 is used
Return type: Zone
- domain (
-
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
-
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
- zone_id (
-
get_zone
(zone_id)[source]¶ Return a Zone instance.
Parameters: zone_id ( str
) – ID of the required zoneReturn type: Zone
-
list_records
(zone)[source]¶ Return a list of records for the provided zone.
Parameters: zone ( Zone
) – Zone to list records for.Returns: list
ofRecord
-
name
= 'DigitalOcean'¶
-
type
= 'digitalocean'¶
-
update_record
(record, name=None, type=None, data=None, extra=None)[source]¶ Update an existing record.
Parameters: - record (
Record
) – Record to update. - name (
str
) – Record name without the domain name (e.g. www). (Ignored) Note: The value is pulled from the record being updated - type (
RecordType
) – DNS record type (A, AAAA, ...). (Ignored) Note: Updating records does not support changing type so this value is ignored - data (
str
) – Data for the record (depends on the record type). - extra (
dict
) – (optional) Extra attributes (driver specific).
Return type: Record
- record (
-
website
= 'https://www.digitalocean.com'¶
-
libcloud.dns.drivers.dummy module¶
-
class
libcloud.dns.drivers.dummy.
DummyDNSDriver
(api_key, api_secret)[source]¶ Bases:
libcloud.dns.base.DNSDriver
Dummy DNS driver.
>>> from libcloud.dns.drivers.dummy import DummyDNSDriver >>> driver = DummyDNSDriver('key', 'secret') >>> driver.name 'Dummy DNS Provider'
Parameters: - api_key (
str
) – API key or username to used (required) - api_secret (
str
) – Secret password to be used (required)
Return type: None
-
create_record
(name, zone, type, data, extra=None)[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> zone = driver.create_zone(domain='apache.org', type='master', ... ttl=100) >>> record = driver.create_record(name='libcloud', zone=zone, ... type=RecordType.A, data='127.0.0.1') >>> record <Record: zone=id-apache.org, name=libcloud, type=A, data=127.0.0.1...> >>> record = driver.create_record(name='libcloud', zone=zone, ... type=RecordType.A, data='127.0.0.1') ... Traceback (most recent call last): RecordAlreadyExistsError:
@inherits:
DNSDriver.create_record
-
create_zone
(domain, type='master', ttl=None, extra=None)[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> zone = driver.create_zone(domain='apache.org', type='master', ... ttl=100) >>> zone <Zone: domain=apache.org, ttl=100, provider=Dummy DNS Provider ...> >>> zone = driver.create_zone(domain='apache.org', type='master', ... ttl=100) ... Traceback (most recent call last): ZoneAlreadyExistsError:
@inherits:
DNSDriver.create_zone
-
delete_record
(record)[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> zone = driver.create_zone(domain='apache.org', type='master', ... ttl=100) >>> record = driver.create_record(name='libcloud', zone=zone, ... type=RecordType.A, data='127.0.0.1') >>> driver.delete_record(record) True >>> driver.delete_record(record) Traceback (most recent call last): RecordDoesNotExistError:
@inherits:
DNSDriver.delete_record
-
delete_zone
(zone)[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> zone = driver.create_zone(domain='apache.org', type='master', ... ttl=100) >>> driver.delete_zone(zone) True >>> driver.delete_zone(zone) Traceback (most recent call last): ZoneDoesNotExistError:
@inherits:
DNSDriver.delete_zone
-
get_record
(zone_id, record_id)[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> driver.get_record(zone_id='doesnotexist', record_id='exists') ... Traceback (most recent call last): ZoneDoesNotExistError:
@inherits:
DNSDriver.get_record
-
get_zone
(zone_id)[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> driver.get_zone(zone_id='foobar') ... Traceback (most recent call last): ZoneDoesNotExistError:
@inherits:
DNSDriver.get_zone
-
list_record_types
()[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> driver.list_record_types() ['A']
@inherits:
DNSDriver.list_record_types
-
list_records
(zone)[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> zone = driver.create_zone(domain='apache.org', type='master', ... ttl=100) >>> list(zone.list_records()) [] >>> record = driver.create_record(name='libcloud', zone=zone, ... type=RecordType.A, data='127.0.0.1') >>> list(zone.list_records()) [<Record: zone=id-apache.org, name=libcloud, type=A...>]
-
list_zones
()[source]¶ >>> driver = DummyDNSDriver('key', 'secret') >>> driver.list_zones() []
@inherits:
DNSDriver.list_zones
-
name
= 'Dummy DNS Provider'¶
-
website
= 'http://example.com'¶
- api_key (
libcloud.dns.drivers.gandi module¶
-
class
libcloud.dns.drivers.gandi.
GandiDNSDriver
(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]¶ Bases:
libcloud.common.gandi.BaseGandiDriver
,libcloud.dns.base.DNSDriver
API reference can be found at:
http://doc.rpc.gandi.net/domain/reference.html
Parameters: - key (
str
) – API key or username to used (required) - secret (
str
) – Secret password to be used (required) - secure (
bool
) – Weither 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
= {'A': 'A', 'AAAA': 'AAAA', 'CNAME': 'CNAME', 'SRV': 'SRV', 'TXT': 'TXT', 'LOC': 'LOC', 'WKS': 'WKS', 'NS': 'NS', 'MX': 'MX', 'SPF': 'SPF'}¶
-
connectionCls
¶ alias of
GandiDNSConnection
-
name
= 'Gandi DNS'¶
-
type
= 'gandi'¶
-
website
= 'http://www.gandi.net/domain'¶
- key (
libcloud.dns.drivers.google module¶
-
class
libcloud.dns.drivers.google.
GoogleDNSDriver
(user_id, key, project=None, auth_type=None, scopes=None, **kwargs)[source]¶ Bases:
libcloud.dns.base.DNSDriver
-
RECORD_TYPE_MAP
= {'A': 'A', 'AAAA': 'AAAA', 'CNAME': 'CNAME', 'SRV': 'SRV', 'TXT': 'TXT', 'SOA': 'SOA', 'NS': 'NS', 'MX': 'MX', 'SPF': 'SPF', 'PTR': 'PTR'}¶
-
connectionCls
¶ alias of
GoogleDNSConnection
-
create_record
(name, zone, type, data, extra=None)[source]¶ Create a new record.
Parameters: - name (
str
) – Record name fully qualified, with a ‘.’ at the end. - 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. (optional)
Return type: Record
- name (
-
create_zone
(domain, type='master', ttl=None, extra=None)[source]¶ Create a new zone.
Parameters: - domain (
str
) – Zone domain name (e.g. example.com.) with a ‘.’ at the end. - type (
str
) – Zone type (master is the only one supported). - ttl (
int
) – TTL for new records. (unused) - extra (
dict
) – Extra attributes (driver specific). (optional)
Return type: Zone
- domain (
-
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
-
ex_bulk_record_changes
(zone, records)[source]¶ Bulk add and delete records.
Parameters: - zone (
Zone
) – Zone where the requested record changes are done. - records – Dictionary of additions list or deletions list, or both
- of resourceRecordSets. For example:
- {‘additions’: [{‘rrdatas’: [‘127.0.0.1’],
- ‘kind’: ‘dns#resourceRecordSet’, ‘type’: ‘A’, ‘name’: ‘www.example.com.’, ‘ttl’: ‘300’}],
- ‘deletions’: [{‘rrdatas’: [‘127.0.0.1’],
- ‘kind’: ‘dns#resourceRecordSet’, ‘type’: ‘A’, ‘name’: ‘www2.example.com.’, ‘ttl’: ‘300’}]}
Returns: A dictionary of Record additions and deletions. Return type: dict
of additions and deletions ofRecord
- zone (
-
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
- zone_id (
-
get_zone
(zone_id)[source]¶ Return a Zone instance.
Parameters: zone_id ( str
) – ID of the required zoneReturn 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
ofRecord
-
iterate_zones
()[source]¶ Return a generator to iterate over available zones.
Return type: generator
ofZone
-
name
= 'Google DNS'¶
-
type
= 'google'¶
-
website
= 'https://cloud.google.com/'¶
-
libcloud.dns.drivers.hostvirtual module¶
-
class
libcloud.dns.drivers.hostvirtual.
HostVirtualDNSDriver
(key, secure=True, host=None, port=None)[source]¶ Bases:
libcloud.dns.base.DNSDriver
-
RECORD_TYPE_MAP
= {'A': 'A', 'TXT': 'TXT', 'AAAA': 'AAAA', 'CNAME': 'CNAME', 'SRV': 'SRV', 'NS': 'SPF', 'MX': 'MX'}¶
-
connectionCls
¶ alias of
HostVirtualDNSConnection
-
name
= 'Host Virtual DNS'¶
-
type
= 'hostvirtual'¶
-
website
= 'https://www.hostvirtual.com/'¶
-
libcloud.dns.drivers.linode module¶
-
class
libcloud.dns.drivers.linode.
LinodeDNSDriver
(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]¶ Bases:
libcloud.dns.base.DNSDriver
Parameters: - key (
str
) – API key or username to used (required) - secret (
str
) – Secret password to be used (required) - secure (
bool
) – Weither 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
= {'A': 'A', 'TXT': 'TXT', 'AAAA': 'AAAA', 'CNAME': 'CNAME', 'SRV': 'SRV', 'NS': 'NS', 'MX': 'MX'}¶
-
connectionCls
¶ alias of
LinodeDNSConnection
-
create_record
(name, zone, type, data, extra=None)[source]¶ Create a new record.
API docs: http://www.linode.com/api/dns/domain.resource.create
-
name
= 'Linode DNS'¶
-
type
= 'linode'¶
-
update_record
(record, name=None, type=None, data=None, extra=None)[source]¶ Update an existing record.
API docs: http://www.linode.com/api/dns/domain.resource.update
-
website
= 'http://www.linode.com/'¶
- key (
libcloud.dns.drivers.rackspace module¶
libcloud.dns.drivers.route53 module¶
-
class
libcloud.dns.drivers.route53.
Route53DNSDriver
(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]¶ Bases:
libcloud.dns.base.DNSDriver
Parameters: - key (
str
) – API key or username to used (required) - secret (
str
) – Secret password to be used (required) - secure (
bool
) – Weither 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
= {'A': 'A', 'AAAA': 'AAAA', 'CNAME': 'CNAME', 'SRV': 'SRV', 'TXT': 'TXT', 'SOA': 'SOA', 'NS': 'NS', 'MX': 'MX', 'SPF': 'SPF', 'PTR': 'PTR'}¶
-
connectionCls
¶ alias of
Route53Connection
-
ex_create_multi_value_record
(name, zone, type, data, extra=None)[source]¶ Create a record with multiple values with a single call.
Returns: A list of created records. Return type: list
oflibcloud.dns.base.Record
-
ex_delete_all_records
(zone)[source]¶ Remove all the records for the provided zone.
Parameters: zone ( Zone
) – Zone to delete records for.
-
name
= 'Route53 DNS'¶
-
type
= 'route53'¶
-
website
= 'http://aws.amazon.com/route53/'¶
- key (
libcloud.dns.drivers.softlayer module¶
-
class
libcloud.dns.drivers.softlayer.
SoftLayerDNSDriver
(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]¶ Bases:
libcloud.dns.base.DNSDriver
Parameters: - key (
str
) – API key or username to used (required) - secret (
str
) – Secret password to be used (required) - secure (
bool
) – Weither 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
= {'A': 'a', 'AAAA': 'aaaa', 'CNAME': 'cname', 'SRV': 'srv', 'TXT': 'txt', 'SOA': 'soa', 'NS': 'ns', 'MX': 'mx', 'SPF': 'spf', 'PTR': 'ptr'}¶
-
connectionCls
¶ alias of
SoftLayerConnection
-
name
= 'Softlayer DNS'¶
-
type
= 'softlayer'¶
-
website
= 'https://www.softlayer.com'¶
- key (
libcloud.dns.drivers.zerigo module¶
-
class
libcloud.dns.drivers.zerigo.
ZerigoDNSDriver
(key, secret=None, secure=True, host=None, port=None, **kwargs)[source]¶ Bases:
libcloud.dns.base.DNSDriver
Parameters: - key (
str
) – API key or username to used (required) - secret (
str
) – Secret password to be used (required) - secure (
bool
) – Weither 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
= {'A': 'A', 'URL': 'URL', 'AAAA': 'AAAA', 'CNAME': 'CNAME', 'SRV': 'SRV', 'REDIRECT': 'REDIRECT', 'NAPTR': 'NAPTR', 'TXT': 'TXT', 'PTR': 'PTR', 'NS': 'NS', 'GEO': 'GEO', 'MX': 'MX', 'SPF': 'SPF'}¶
-
connectionCls
¶ alias of
ZerigoDNSConnection
-
create_record
(name, zone, type, data, extra=None)[source]¶ Create a new record.
Provider API docs: https://www.zerigo.com/docs/apis/dns/1.1/hosts/create
@inherits:
DNSDriver.create_record
-
create_zone
(domain, type='master', ttl=None, extra=None)[source]¶ Create a new zone.
Provider API docs: https://www.zerigo.com/docs/apis/dns/1.1/zones/create
@inherits:
DNSDriver.create_zone
-
ex_force_slave_axfr
(zone)[source]¶ Force a zone transfer.
Parameters: zone ( Zone
) – Zone which should be used.Return type: Zone
-
ex_get_zone_by_domain
(domain)[source]¶ Retrieve a zone object by the domain name.
Parameters: domain ( str
) – The domain which should be usedReturn type: Zone
-
name
= 'Zerigo DNS'¶
-
type
= 'zerigo'¶
-
update_zone
(zone, domain=None, type=None, ttl=None, extra=None)[source]¶ Update an existing zone.
Provider API docs: https://www.zerigo.com/docs/apis/dns/1.1/zones/update
@inherits:
DNSDriver.update_zone
-
website
= 'http://www.zerigo.com/'¶
- key (