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) – 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
- 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
- update_record(record, name, type, data, extra)[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, 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.
- extra (dict) – (optional) Extra attributes (driver specific).