Luadns DNS Driver Documentation
I was a happy user of a free DNS hosting service for many years, when this service was acquired by a competitor in august 2011, I was forced to move somewhere else.
While migrating my zone files I realized that I don’t like Bind syntax files neither administering tens of domains through a web interface. I’ve started to experiment on how it should look a perfect DNS service for me. I’ve realized that I would love to store my configuration files in a Git repository and I would need some configuration language for templating (Lua).
This is how LuaDNS was born on October, 2011.
Read more at: http://luadns.com/
Instantiating the driver
from libcloud.dns.types import Provider
from libcloud.dns.providers import get_driver
cls = get_driver(Provider.LUADNS)
driver = cls(user="user", key="api_key")
API Docs
- class libcloud.dns.drivers.luadns.LuadnsDNSDriver(key: str, secret: str | None = None, secure: bool = True, host: str | None = None, port: int | None = None, **kwargs: Any | None)[source]
- 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
LuadnsDNSConnection
- create_record(name, zone, type, data, extra=None)[source]
Create a 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 which the records will be created for.type (
RecordType
) – DNS record type ( ‘A’, ‘AAAA’, ‘CNAME’, ‘MX’, ‘NS’, ‘PTR’, ‘SOA’, ‘SRV’, ‘TXT’).data (
str
) – Data for the record (depends on the record type).extra (
dict
) – (optional) Extra attributes (‘prio’, ‘ttl’).
- 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 (This is not really used. See API docs for extra parameters).ttl (
int
) – TTL for new records. (This is not really used)extra (
dict
) – Extra attributes (driver specific). (‘region_support’, ‘zone_data’)
- 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: Zone) str
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: Zone, file_path: str) None
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:
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: Zone) Iterator[Record]
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() Iterator[Zone]
Return a generator to iterate over available zones.
- Return type:
generator
ofZone
- list_record_types() List[RecordType]
Return a list of RecordType objects supported by the provider.
- Returns:
list
ofRecordType
- list_records(zone)[source]
Return a list of records for the provided zone.
- Parameters:
zone (
Zone
) – Zone to list records for.- Returns:
list
ofRecord
- update_record(record, name, type, data, extra=None)
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: Zone, domain: str | None, type: str | None = 'master', ttl: int | None = None, extra: dict | None = None) Zone
Update an 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