libcloud.dns.drivers package¶
Submodules¶
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: 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: 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: 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: 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: 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: 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'¶
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'¶
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
- 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
- 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
- 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
- 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 = 'http://www.vr.org/'¶
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/'¶
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 of libcloud.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/'¶
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 used Return 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/'¶