* added parenthesis to % formats * added method for _format_record to avoid DRY 
in create and update record * raise record does not exist error

Signed-off-by: Anthony Shaw <anthony.p.s...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/6d1804ed
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/6d1804ed
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/6d1804ed

Branch: refs/heads/trunk
Commit: 6d1804ed829be3214fe4a549ea90a7b78abf1052
Parents: 7de5bc4
Author: Anthony Shaw <anthony.p.s...@gmail.com>
Authored: Fri Nov 27 15:27:46 2015 +1100
Committer: Anthony Shaw <anthony.p.s...@gmail.com>
Committed: Fri Nov 27 17:30:15 2015 +1100

----------------------------------------------------------------------
 libcloud/dns/drivers/godaddy.py | 94 +++++++++++++-----------------------
 1 file changed, 34 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/6d1804ed/libcloud/dns/drivers/godaddy.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/godaddy.py b/libcloud/dns/drivers/godaddy.py
index 0e4337c..64dbd65 100644
--- a/libcloud/dns/drivers/godaddy.py
+++ b/libcloud/dns/drivers/godaddy.py
@@ -24,7 +24,7 @@ except:
 from libcloud.common.base import ConnectionKey, JsonResponse
 from libcloud.common.types import LibcloudError
 from libcloud.utils.py3 import httplib
-from libcloud.dns.types import Provider, RecordType
+from libcloud.dns.types import Provider, RecordType, RecordDoesNotExistError
 from libcloud.dns.base import DNSDriver, Zone, Record
 
 API_ROOT = 'https://api.godaddy.com/'
@@ -157,7 +157,7 @@ class GoDaddyDNSDriver(DNSDriver):
         :return: ``list`` of :class:`Record`
         """
         result = self.connection.request(
-            '/v1/domains/%s/records' % zone.domain).object
+            '/v1/domains/%s/records' % (zone.domain)).object
         records = self._to_records(items=result, zone=zone)
         return records
 
@@ -185,35 +185,9 @@ class GoDaddyDNSDriver(DNSDriver):
 
         :rtype: :class:`Record`
         """
-        if extra is None:
-            extra = {}
-        new_record = {}
-        if type is RecordType.SRV:
-            new_record = {
-                'type': type,
-                'name': name,
-                'data': data,
-                'priority': 1,
-                'ttl': extra['ttl'] if hasattr(extra, 'ttl') else 5,
-                'service': extra['service']
-                if hasattr(extra, 'service') else '',
-                'protocol': extra['protocol']
-                if hasattr(extra, 'protocol') else '',
-                'port': extra['port']
-                if hasattr(extra, 'port') else '',
-                'weight': extra['weight']
-                if hasattr(extra, 'weight') else ''
-            }
-        else:
-            new_record = {
-                'type': type,
-                'name': name,
-                'data': data,
-                'priority': 1,
-                'ttl': extra['ttl'] if hasattr(extra, 'ttl') else 5
-            }
+        new_record = self._format_record(name, type, data, extra)
         self.connection.request(
-            '/v1/domains/%s/records' % zone.domain, method='PATCH',
+            '/v1/domains/%s/records' % (zone.domain), method='PATCH',
             data=[new_record])
         id = '%s:%s' % (name, type)
         return Record(
@@ -246,35 +220,9 @@ class GoDaddyDNSDriver(DNSDriver):
 
         :rtype: :class:`Record`
         """
-        if extra is None:
-            extra = {}
-        new_record = {}
-        if type is RecordType.SRV:
-            new_record = {
-                'type': type,
-                'name': name,
-                'data': data,
-                'priority': 1,
-                'ttl': extra['ttl'] if hasattr(extra, 'ttl') else 5,
-                'service': extra['service']
-                if hasattr(extra, 'service') else '',
-                'protocol': extra['protocol']
-                if hasattr(extra, 'protocol') else '',
-                'port': extra['port']
-                if hasattr(extra, 'port') else '',
-                'weight': extra['weight']
-                if hasattr(extra, 'weight') else ''
-            }
-        else:
-            new_record = {
-                'type': type,
-                'name': name,
-                'data': data,
-                'priority': 1,
-                'ttl': extra['ttl'] if hasattr(extra, 'ttl') else 5
-            }
+        new_record = self._format_record(name, type, data, extra)
         self.connection.request(
-            '/v1/domains/{0}/records' % record.zone.domain, method='PUT',
+            '/v1/domains/{0}/records' % (record.zone.domain), method='PUT',
             data=[new_record])
         id = '%s:%s' % (name, type)
         return Record(
@@ -302,7 +250,7 @@ class GoDaddyDNSDriver(DNSDriver):
                 parts[1],
                 parts[0])).object
         if len(result) is 0:
-            raise GoDaddyDNSException("Could not locate record")
+            raise RecordDoesNotExistError()
         return self._to_record(result[0],
                                self.get_zone(zone_id))
 
@@ -332,7 +280,7 @@ class GoDaddyDNSDriver(DNSDriver):
         :rtype: ``bool``
         """
         self.connection.request(
-            '/v1/domains/%s' % zone.domain,
+            '/v1/domains/%s' % (zone.domain),
             method='DELETE')
         # no error means ok
         return True
@@ -443,6 +391,32 @@ class GoDaddyDNSDriver(DNSDriver):
             currency=result['currency']
         )
 
+    def _format_record(self, name, type, data, extra):
+        if extra is None:
+            extra = {}
+        new_record = {}
+        if type is RecordType.SRV:
+            new_record = {
+                'type': type,
+                'name': name,
+                'data': data,
+                'priority': 1,
+                'ttl': extra.get('ttl', 5),
+                'service': extra.get('service', ''),
+                'protocol': extra.get('protocol', ''),
+                'port': extra.get('port', ''),
+                'weight': extra.get('weight', '1')
+            }
+        else:
+            new_record = {
+                'type': type,
+                'name': name,
+                'data': data,
+                'priority': 1,
+                'ttl': extra.get('ttl', 5)
+            }
+        return new_record
+
     def _to_zones(self, items):
         zones = []
         for item in items:

Reply via email to