You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2011/11/05 22:44:20 UTC
svn commit: r1198083 - in /libcloud/trunk: ./ libcloud/dns/
libcloud/dns/drivers/ test/dns/
Author: tomaz
Date: Sat Nov 5 21:44:20 2011
New Revision: 1198083
URL: http://svn.apache.org/viewvc?rev=1198083&view=rev
Log:
Add list_record_types() method to the base DNS API and drivers. Update tests and CHANGES.
Modified:
libcloud/trunk/CHANGES
libcloud/trunk/libcloud/dns/base.py
libcloud/trunk/libcloud/dns/drivers/dummy.py
libcloud/trunk/libcloud/dns/drivers/linode.py
libcloud/trunk/libcloud/dns/drivers/rackspace.py
libcloud/trunk/libcloud/dns/drivers/zerigo.py
libcloud/trunk/test/dns/test_linode.py
libcloud/trunk/test/dns/test_rackspace.py
libcloud/trunk/test/dns/test_zerigo.py
Modified: libcloud/trunk/CHANGES
URL: http://svn.apache.org/viewvc/libcloud/trunk/CHANGES?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/CHANGES (original)
+++ libcloud/trunk/CHANGES Sat Nov 5 21:44:20 2011
@@ -1,6 +1,6 @@
-*- coding: utf-8 -*-
-Changes with Apache Libcloud in development:
+Changes with Apache Libcloud 0.6.0:
*) General:
@@ -79,6 +79,10 @@ Changes with Apache Libcloud in developm
- New drivers for Rackspace Cloud DNS (US and UK region)
[Tomaz Muraus]
+ - Add list_record_types() method. This method returns a list of record
+ types supported by the provider.
+ [Tomaz Muraus]
+
Changes with Apache Libcloud 0.6.0-beta1
*) General:
Modified: libcloud/trunk/libcloud/dns/base.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/base.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/libcloud/dns/base.py (original)
+++ libcloud/trunk/libcloud/dns/base.py Sat Nov 5 21:44:20 2011
@@ -136,6 +136,15 @@ class DNSDriver(BaseDriver):
super(DNSDriver, self).__init__(key=key, secret=secret, secure=secure,
host=host, port=port)
+ def list_record_types(self):
+ """
+ Return a list of RecordType objects supported by the provider.
+
+ @return: A list of C{RecordType} instances.
+ """
+ raise NotImplementedError(
+ 'list_record_types not implemented for this driver')
+
def list_zones(self):
"""
Return a list of zones.
Modified: libcloud/trunk/libcloud/dns/drivers/dummy.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/drivers/dummy.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/libcloud/dns/drivers/dummy.py (original)
+++ libcloud/trunk/libcloud/dns/drivers/dummy.py Sat Nov 5 21:44:20 2011
@@ -35,6 +35,14 @@ class DummyDNSDriver(DNSDriver):
def __init__(self, api_key, api_secret):
self._zones = {}
+ def list_record_types(self):
+ """
+ >>> driver = DummyDNSDriver('key', 'secret')
+ >>> driver.list_record_types()
+ [0]
+ """
+ return [RecordType.A]
+
def list_zones(self):
"""
>>> driver = DummyDNSDriver('key', 'secret')
Modified: libcloud/trunk/libcloud/dns/drivers/linode.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/drivers/linode.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/libcloud/dns/drivers/linode.py (original)
+++ libcloud/trunk/libcloud/dns/drivers/linode.py Sat Nov 5 21:44:20 2011
@@ -70,6 +70,9 @@ class LinodeDNSDriver(DNSDriver):
name = 'Linode DNS'
connectionCls = LinodeDNSConnection
+ def list_record_types(self):
+ return RECORD_TYPE_MAP.keys()
+
def list_zones(self):
params = {'api_action': 'domain.list'}
data = self.connection.request(API_ROOT, params=params).objects[0]
Modified: libcloud/trunk/libcloud/dns/drivers/rackspace.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/drivers/rackspace.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/libcloud/dns/drivers/rackspace.py (original)
+++ libcloud/trunk/libcloud/dns/drivers/rackspace.py Sat Nov 5 21:44:20 2011
@@ -107,6 +107,9 @@ class RackspaceUKDNSConnection(Rackspace
class RackspaceDNSDriver(DNSDriver):
+ def list_record_types(self):
+ return RECORD_TYPE_MAP.keys()
+
def list_zones(self):
response = self.connection.request(action='/domains')
zones = self._to_zones(data=response.object['domains'])
Modified: libcloud/trunk/libcloud/dns/drivers/zerigo.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/drivers/zerigo.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/libcloud/dns/drivers/zerigo.py (original)
+++ libcloud/trunk/libcloud/dns/drivers/zerigo.py Sat Nov 5 21:44:20 2011
@@ -139,6 +139,9 @@ class ZerigoDNSDriver(DNSDriver):
name = 'Zerigo DNS'
connectionCls = ZerigoDNSConnection
+ def list_record_types(self):
+ return RECORD_TYPE_MAP.keys()
+
def list_zones(self):
value_dict = {'type': 'zones'}
return LazyList(get_more=self._get_more, value_dict=value_dict)
Modified: libcloud/trunk/test/dns/test_linode.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/test_linode.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/test/dns/test_linode.py (original)
+++ libcloud/trunk/test/dns/test_linode.py Sat Nov 5 21:44:20 2011
@@ -39,6 +39,11 @@ class LinodeTests(unittest.TestCase):
self.assertTrue(key in dictionary, 'key "%s" not in dictionary' %
(key))
+ def test_list_record_types(self):
+ record_types = self.driver.list_record_types()
+ self.assertEqual(len(record_types), 5)
+ self.assertTrue(RecordType.A in record_types)
+
def test_list_zones_success(self):
zones = self.driver.list_zones()
self.assertEqual(len(zones), 2)
Modified: libcloud/trunk/test/dns/test_rackspace.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/test_rackspace.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/test/dns/test_rackspace.py (original)
+++ libcloud/trunk/test/dns/test_rackspace.py Sat Nov 5 21:44:20 2011
@@ -36,6 +36,11 @@ class RackspaceUSTests(unittest.TestCase
RackspaceMockHttp.type = None
self.driver = self.klass(*DNS_PARAMS_RACKSPACE)
+ def test_list_record_types(self):
+ record_types = self.driver.list_record_types()
+ self.assertEqual(len(record_types), 7)
+ self.assertTrue(RecordType.A in record_types)
+
def test_list_zones_success(self):
zones = self.driver.list_zones()
Modified: libcloud/trunk/test/dns/test_zerigo.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/test/dns/test_zerigo.py?rev=1198083&r1=1198082&r2=1198083&view=diff
==============================================================================
--- libcloud/trunk/test/dns/test_zerigo.py (original)
+++ libcloud/trunk/test/dns/test_zerigo.py Sat Nov 5 21:44:20 2011
@@ -43,6 +43,11 @@ class ZerigoTests(unittest.TestCase):
else:
self.fail('Exception was not thrown')
+ def test_list_record_types(self):
+ record_types = self.driver.list_record_types()
+ self.assertEqual(len(record_types), 11)
+ self.assertTrue(RecordType.A in record_types)
+
def test_list_zones_success(self):
zones = self.driver.list_zones()
self.assertEqual(len(zones), 1)