Backend

Backend Base

class designate.backend.base.Backend(central_service)[source]

Bases: designate.plugin.DriverPlugin

Base class for backend implementations

create_domain(context, domain)[source]

Create a DNS domain

create_record(context, domain, recordset, record)[source]

Create a DNS record

create_recordset(context, domain, recordset)[source]

Create a DNS recordset

create_tsigkey(context, tsigkey)[source]

Create a TSIG Key

delete_domain(context, domain)[source]

Delete a DNS domain

delete_record(context, domain, recordset, record)[source]

Delete a DNS record

delete_recordset(context, domain, recordset)[source]

Delete a DNS recordset

delete_tsigkey(context, tsigkey)[source]

Delete a TSIG Key

ping(context)[source]

Ping the Backend service

start()[source]
stop()[source]
sync_domain(context, domain, rdata)[source]

Re-Sync a DNS domain

This is the default, naive, domain synchronization implementation.

sync_record(context, domain, recordset, record)[source]

Re-Sync a DNS record.

This is the default, naive, record synchronization implementation.

update_domain(context, domain)[source]

Update a DNS domain

update_record(context, domain, recordset, record)[source]

Update a DNS record

update_recordset(context, domain, recordset)[source]

Update a DNS recordset

update_tsigkey(context, tsigkey)[source]

Update a TSIG Key

class designate.backend.base.PoolBackend(backend_options)[source]

Bases: designate.backend.base.Backend

create_domain(context, domain)[source]

Create a DNS domain.

Parameters:
  • context – Security context information.
  • domain – the DNS domain.
create_record(context, domain, recordset, record)[source]
create_recordset(context, domain, recordset)[source]
create_tsigkey(context, tsigkey)[source]
delete_domain(context, domain)[source]

Delete a DNS domain.

Parameters:
  • context – Security context information.
  • domain – the DNS domain.
delete_record(context, domain, recordset, record)[source]
delete_recordset(context, domain, recordset)[source]
delete_tsigkey(context, tsigkey)[source]
get_backend_option(key)[source]

Get the backend option value using the backend option key.

classmethod get_cfg_opts()[source]
classmethod get_extra_cfg_opts()[source]
classmethod get_server_object(backend, server_id)[source]

Get the server object from the backend driver for the server_id.

ping(context)[source]
sync_domain(context, domain, records)[source]
sync_record(context, domain, record)[source]
update_domain(context, domain)[source]
update_record(context, domain, recordset, record)[source]
update_recordset(context, domain, recordset)[source]
update_tsigkey(context, tsigkey)[source]

Backend Dynect

class designate.backend.impl_dynect.DynClient(customer_name, user_name, password, endpoint='https://api.dynect.net:443', api_version='3.5.6', headers=None, verify=True, retries=1, timeout=10, timings=False, pool_maxsize=10, pool_connections=10)[source]

Bases: object

DynECT service client.

https://help.dynect.net/rest/

delete(*args, **kwargs)[source]
get(*args, **kwargs)[source]
get_timings()[source]
login()[source]
logout()[source]
patch(*args, **kwargs)[source]
poll_response(response)[source]

The API might return a job nr in the response in case of a async response: https://github.com/fog/fog/issues/575

post(*args, **kwargs)[source]
put(*args, **kwargs)[source]
request(method, url, retries=2, **kwargs)[source]
reset_timings()[source]
exception designate.backend.impl_dynect.DynClientAuthError(data=None, job_id=None, msgs=None, http_status=None, url=None, method=None, details=None)[source]

Bases: designate.backend.impl_dynect.DynClientError

exception designate.backend.impl_dynect.DynClientError(data=None, job_id=None, msgs=None, http_status=None, url=None, method=None, details=None)[source]

Bases: designate.exceptions.Backend

The base exception class for all HTTP exceptions.

static from_response(response, details=None)[source]
exception designate.backend.impl_dynect.DynClientOperationBlocked(*args, **kwargs)[source]

Bases: designate.exceptions.BadRequest, designate.backend.impl_dynect.DynClientError

error_type = 'operation_blocked'
class designate.backend.impl_dynect.DynECTBackend(central_service)[source]

Bases: designate.backend.base.Backend

Support for DynECT as a secondary DNS.

create_domain(context, domain)[source]
create_record(context, domain, recordset, record)[source]
create_recordset(context, domain, recordset)[source]
delete_domain(context, domain)[source]
delete_record(context, domain, recordset, record)[source]
delete_recordset(context, domain, recordset)[source]
classmethod get_cfg_opts()[source]
get_client()[source]
update_domain(context, domain)[source]
update_record(context, domain, recordset, record)[source]
update_recordset(context, domain, recordset)[source]
exception designate.backend.impl_dynect.DynTimeoutError[source]

Bases: designate.exceptions.Backend

A job timedout.

error_code = 408
error_type = 'dyn_timeout'

Backend Multi

class designate.backend.impl_multi.MultiBackend(central_service)[source]

Bases: designate.backend.base.Backend

Multi-backend backend

This backend dispatches calls to a master backend and a slave backend. It enforces master/slave ordering semantics as follows:

Creates for tsigkeys, servers and domains are done on the master first, then on the slave.

Updates for tsigkeys, servers and domains and all operations on records are done on the master only. It’s assumed masters and slaves use an external mechanism to sync existing domains, most likely XFR.

Deletes are done on the slave first, then on the master.

If the create on the slave fails, the domain/tsigkey/server is deleted from the master. If delete on the master fails, the domain/tdigkey/server is recreated on the slave.

create_domain(context, domain)[source]
create_record(context, domain, recordset, record)[source]
create_recordset(context, domain, recordset)[source]
create_tsigkey(context, tsigkey)[source]
delete_domain(context, domain)[source]
delete_record(context, domain, recordset, record)[source]
delete_recordset(context, domain, recordset)[source]
delete_tsigkey(context, tsigkey)[source]
classmethod get_cfg_opts()[source]
ping(context)[source]
start()[source]
stop()[source]
update_domain(context, domain)[source]
update_record(context, domain, recordset, record)[source]
update_recordset(context, domain, recordset)[source]
update_tsigkey(context, tsigkey)[source]

Backend Fake

class designate.backend.impl_fake.FakeBackend(backend_options)[source]

Bases: designate.backend.base.PoolBackend

create_domain(context, domain)[source]
delete_domain(context, domain)[source]

Incubated Project

Table Of Contents

Previous topic

API

Next topic

Central

This Page