Skip to content

Commit

Permalink
Update docstrings in the DNS drivers. Contributed by Ilgiz Islamgulov…
Browse files Browse the repository at this point in the history
…, part of

LIBCLOUD-237.


git-svn-id: https://svn.apache.org/repos/asf/libcloud/trunk@1370970 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
Kami committed Aug 8, 2012
1 parent ea146ac commit 990b198
Show file tree
Hide file tree
Showing 6 changed files with 132 additions and 73 deletions.
93 changes: 57 additions & 36 deletions libcloud/dns/base.py
Expand Up @@ -19,7 +19,6 @@
'DNSDriver'
]


from libcloud.common.base import ConnectionUserAndKey, BaseDriver
from libcloud.dns.types import RecordType

Expand Down Expand Up @@ -133,10 +132,11 @@ class DNSDriver(BaseDriver):
name = None
website = None

def __init__(self, key, secret=None, secure=True, host=None, port=None, **kwargs):
def __init__(self, key, secret=None, secure=True, host=None, port=None,
**kwargs):
"""
@param key: API key or username to used (required)
@type key: C{str}
@param key: API key or username to used (required)
@type key: C{str}
@param secret: Secret password to be used (required)
@type secret: C{str}
Expand All @@ -160,15 +160,15 @@ def list_record_types(self):
"""
Return a list of RecordType objects supported by the provider.
@return: A list of C{RecordType} instances.
@rtype: C{list} of L{RecordType}
"""
return list(self.RECORD_TYPE_MAP.keys())

def list_zones(self):
"""
Return a list of zones.
@return: A list of C{Zone} instances.
@rtype: C{list} of L{Zone}
"""
raise NotImplementedError(
'list_zones not implemented for this driver')
Expand All @@ -177,10 +177,10 @@ def list_records(self, zone):
"""
Return a list of records for the provided zone.
@type zone: C{Zone}
@param zone: Zone to list records for.
@type zone: L{Zone}
@return: A list of C{Record} instances.
@rtype: C{list} of L{Record}
"""
raise NotImplementedError(
'list_records not implemented for this driver')
Expand All @@ -189,7 +189,10 @@ def get_zone(self, zone_id):
"""
Return a Zone instance.
@return: C{Zone} instance.
@param zone_id: ID of the required zone
@type zone_id: C{str}
@rtype: L{Zone}
"""
raise NotImplementedError(
'get_zone not implemented for this driver')
Expand All @@ -198,7 +201,13 @@ def get_record(self, zone_id, record_id):
"""
Return a Record instance.
@return: C{Record} instance.
@param zone_id: ID of the required zone
@type zone_id: C{str}
@param record_id: ID of the required record
@type record_id: C{str}
@rtype: L{Record}
"""
raise NotImplementedError(
'get_record not implemented for this driver')
Expand All @@ -207,17 +216,19 @@ def create_zone(self, domain, type='master', ttl=None, extra=None):
"""
Create a new zone.
@type domain: C{string}
@param domain: Zone domain name.
@type domain: C{str}
@type type: C{string}
@param type: Zone type (master / slave).
@type type: C{str}
@param ttl: C{int}
@param ttl: (optional) TTL for new records.
@type ttl: C{int}
@type extra: C{dict}
@param extra: (optional) Extra attributes (driver specific).
@type extra: C{dict}
@rtype: L{Zone}
"""
raise NotImplementedError(
'create_zone not implemented for this driver')
Expand All @@ -226,20 +237,22 @@ def update_zone(self, zone, domain, type='master', ttl=None, extra=None):
"""
Update en existing zone.
@type zone: C{Zone}
@param zone: Zone to update.
@type zone: L{Zone}
@type domain: C{string}
@param domain: Zone domain name.
@type domain: C{str}
@type type: C{string}
@param type: Zone type (master / slave).
@type type: C{str}
@param ttl: C{int}
@param ttl: (optional) TTL for new records.
@type ttl: C{int}
@type extra: C{dict}
@param extra: (optional) Extra attributes (driver specific).
@type extra: C{dict}
@rtype: L{Zone}
"""
raise NotImplementedError(
'update_zone not implemented for this driver')
Expand All @@ -248,20 +261,22 @@ def create_record(self, name, zone, type, data, extra=None):
"""
Create a new record.
@param name: C{string}
@type name: Hostname or FQDN.
@param name: Hostname or FQDN.
@type name: C{str}
@type zone: C{Zone}
@param zone: Zone where the requested record is created.
@type zone: L{Zone}
@type type: C{RecordType}
@param type: DNS record type (A, AAAA, ...).
@type type: L{RecordType}
@type data: C{str}
@param data: Data for the record (depends on the record type).
@type data: C{str}
@type extra: C{dict}
@param extra: (optional) Extra attributes (driver specific).
@type extra: C{dict}
@rtype: L{Record}
"""
raise NotImplementedError(
'create_record not implemented for this driver')
Expand All @@ -270,20 +285,22 @@ def update_record(self, record, name, type, data, extra):
"""
Update an existing record.
@param record: C{Record}
@type record: Record to update.
@param record: Record to update.
@type record: L{Record}
@param name: C{string}
@type name: Hostname or FQDN.
@param name: Hostname or FQDN.
@type name: C{str}
@type type: C{RecordType}
@param type: DNS record type (A, AAAA, ...).
@type type: L{RecordType}
@type data: C{str}
@param data: Data for the record (depends on the record type).
@type data: C{str}
@type extra: C{dict}
@param extra: (optional) Extra attributes (driver specific).
@type extra: C{dict}
@rtype: L{Record}
"""
raise NotImplementedError(
'update_record not implemented for this driver')
Expand All @@ -294,8 +311,10 @@ def delete_zone(self, zone):
Note: This will delete all the records belonging to this zone.
@param zone: C{Zone}
@type zone: Zone to delete.
@param zone: Zone to delete.
@type zone: L{Zone}
@rtype: C{bool}
"""
raise NotImplementedError(
'delete_zone not implemented for this driver')
Expand All @@ -304,8 +323,10 @@ def delete_record(self, record):
"""
Delete a record.
@param record: C{Record}
@type record: Record to delete.
@param record: Record to delete.
@type record: L{Record}
@rtype: C{bool}
"""
raise NotImplementedError(
'delete_record not implemented for this driver')
Expand Down
18 changes: 17 additions & 1 deletion libcloud/dns/drivers/dummy.py
Expand Up @@ -50,6 +50,8 @@ def list_record_types(self):
>>> driver = DummyDNSDriver('key', 'secret')
>>> driver.list_record_types()
[0]
@inherits: L{DNSDriver.list_record_types}
"""
return [RecordType.A]

Expand All @@ -58,6 +60,8 @@ def list_zones(self):
>>> driver = DummyDNSDriver('key', 'secret')
>>> driver.list_zones()
[]
@inherits: L{DNSDriver.list_zones}
"""

return [zone['zone'] for zone in list(self._zones.values())]
Expand All @@ -72,6 +76,8 @@ def get_zone(self, zone_id):
... #doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
ZoneDoesNotExistError:
@inherits: L{DNSDriver.get_zone}
"""

if zone_id not in self._zones:
Expand All @@ -87,6 +93,8 @@ def get_record(self, zone_id, record_id):
... #doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
ZoneDoesNotExistError:
@inherits: L{DNSDriver.get_record}
"""

self.get_zone(zone_id=zone_id)
Expand All @@ -110,6 +118,8 @@ def create_zone(self, domain, type='master', ttl=None, extra=None):
... #doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
ZoneAlreadyExistsError:
@inherits: L{DNSDriver.create_zone}
"""

id = 'id-%s' % (domain)
Expand All @@ -120,7 +130,7 @@ def create_zone(self, domain, type='master', ttl=None, extra=None):
zone = Zone(id=id, domain=domain, type=type, ttl=ttl, extra={},
driver=self)
self._zones[id] = {'zone': zone,
'records': {}}
'records': {}}
return zone

def create_record(self, name, zone, type, data, extra=None):
Expand All @@ -137,6 +147,8 @@ def create_record(self, name, zone, type, data, extra=None):
... #doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
RecordAlreadyExistsError:
@inherits: L{DNSDriver.create_record}
"""
id = 'id-%s' % (name)

Expand All @@ -161,6 +173,8 @@ def delete_zone(self, zone):
>>> driver.delete_zone(zone) #doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
ZoneDoesNotExistError:
@inherits: L{DNSDriver.delete_zone}
"""
self.get_zone(zone_id=zone.id)

Expand All @@ -179,6 +193,8 @@ def delete_record(self, record):
>>> driver.delete_record(record) #doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
RecordDoesNotExistError:
@inherits: L{DNSDriver.delete_record}
"""
self.get_record(zone_id=record.zone.id, record_id=record.id)

Expand Down

0 comments on commit 990b198

Please sign in to comment.