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)