Update affected DNS drivers to pass "ttl" attribute to the Record class
constructor where available an applicable.

Note: For backward compatibility reasons, "ttl" is still available in
record.extra.


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

Branch: refs/heads/trunk
Commit: 1c4e89112bca03137e737948998993fa4350c120
Parents: 59049a6
Author: Tomaz Muraus <[email protected]>
Authored: Sun Nov 22 23:21:35 2015 +0100
Committer: Tomaz Muraus <[email protected]>
Committed: Sun Nov 22 23:26:13 2015 +0100

----------------------------------------------------------------------
 libcloud/dns/drivers/auroradns.py    | 2 +-
 libcloud/dns/drivers/dnsimple.py     | 3 ++-
 libcloud/dns/drivers/durabledns.py   | 2 +-
 libcloud/dns/drivers/gandi.py        | 1 +
 libcloud/dns/drivers/google.py       | 3 ++-
 libcloud/dns/drivers/hostvirtual.py  | 7 +++++--
 libcloud/dns/drivers/linode.py       | 5 +++--
 libcloud/dns/drivers/pointdns.py     | 3 ++-
 libcloud/dns/drivers/rackspace.py    | 3 ++-
 libcloud/dns/drivers/route53.py      | 9 +++++----
 libcloud/dns/drivers/softlayer.py    | 1 +
 libcloud/dns/drivers/vultr.py        | 1 -
 libcloud/dns/drivers/worldwidedns.py | 3 ++-
 libcloud/dns/drivers/zerigo.py       | 2 +-
 libcloud/dns/drivers/zonomi.py       | 4 +++-
 15 files changed, 31 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/auroradns.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/auroradns.py 
b/libcloud/dns/drivers/auroradns.py
index 614de15..e5412e0 100644
--- a/libcloud/dns/drivers/auroradns.py
+++ b/libcloud/dns/drivers/auroradns.py
@@ -237,7 +237,7 @@ class AuroraDNSDriver(DNSDriver):
 
         return Record(id=record['id'], name=name, type=record['type'],
                       data=record['content'], zone=zone, driver=self,
-                      extra=extra)
+                      ttl=record['ttl'], extra=extra)
 
     def __res_to_zone(self, zone):
         return Zone(id=zone['id'], domain=zone['name'], type=DEFAULT_ZONE_TYPE,

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/dnsimple.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/dnsimple.py b/libcloud/dns/drivers/dnsimple.py
index 3b8fdd7..7edbdfe 100644
--- a/libcloud/dns/drivers/dnsimple.py
+++ b/libcloud/dns/drivers/dnsimple.py
@@ -290,4 +290,5 @@ class DNSimpleDNSDriver(DNSDriver):
                  'updated_at': record.get('updated_at'),
                  'domain_id': record.get('domain_id'),
                  'priority': record.get('prio')}
-        return Record(id, name, type, data, zone, self, extra=extra)
+        return Record(id=id, name=name, type=type, data=data, zone=zone,
+                      driver=self, ttl=record.get('ttl', None), extra=extra)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/durabledns.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/durabledns.py 
b/libcloud/dns/drivers/durabledns.py
index 63364d7..5d2fbe8 100644
--- a/libcloud/dns/drivers/durabledns.py
+++ b/libcloud/dns/drivers/durabledns.py
@@ -648,7 +648,7 @@ class DurableDNSDriver(DNSDriver):
         extra = {'aux': int(item.get('aux')), 'ttl': int(item.get('ttl'))}
         record = Record(id=item.get('id'), type=item.get('type'), zone=zone,
                         name=item.get('name'), data=item.get('data'),
-                        driver=self, extra=extra)
+                        driver=self, ttl=item.get('ttl', None), extra=extra)
 
         return record
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/gandi.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/gandi.py b/libcloud/dns/drivers/gandi.py
index 792110d..0e46d38 100644
--- a/libcloud/dns/drivers/gandi.py
+++ b/libcloud/dns/drivers/gandi.py
@@ -154,6 +154,7 @@ class GandiDNSDriver(BaseGandiDriver, DNSDriver):
             data=record['value'],
             zone=zone,
             driver=self,
+            ttl=record['ttl'],
             extra={'ttl': record['ttl']}
         )
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/google.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/google.py b/libcloud/dns/drivers/google.py
index 6c79b04..d0aebcb 100644
--- a/libcloud/dns/drivers/google.py
+++ b/libcloud/dns/drivers/google.py
@@ -372,7 +372,8 @@ class GoogleDNSDriver(DNSDriver):
         record_id = '%s:%s' % (r['type'], r['name'])
         return Record(id=record_id, name=r['name'],
                       type=r['type'], data=r, zone=zone,
-                      driver=self, extra={})
+                      driver=self, ttl=r.get('ttl', None),
+                      extra={})
 
     def _cleanup_domain(self, domain):
         # name can only contain lower case alphanumeric characters and hyphens

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/hostvirtual.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/hostvirtual.py 
b/libcloud/dns/drivers/hostvirtual.py
index 4d98df5..75a3ec1 100644
--- a/libcloud/dns/drivers/hostvirtual.py
+++ b/libcloud/dns/drivers/hostvirtual.py
@@ -108,7 +108,8 @@ class HostVirtualDNSDriver(DNSDriver):
         name = item['name'][:-len(zone.domain) - 1]
         record = Record(id=item['id'], name=name,
                         type=type, data=item['content'],
-                        zone=zone, driver=self, extra=extra)
+                        zone=zone, driver=self, ttl=item['ttl'],
+                        extra=extra)
         return record
 
     def list_zones(self):
@@ -222,7 +223,9 @@ class HostVirtualDNSDriver(DNSDriver):
             data=json.dumps(params), method='POST').object
         record = Record(id=result['id'], name=name,
                         type=type, data=data,
-                        extra=merged, zone=zone, driver=self)
+                        extra=merged, zone=zone,
+                        ttl=merged.get('ttl', None),
+                        driver=self)
         return record
 
     def update_record(self, record, name=None, type=None,

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/linode.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/linode.py b/libcloud/dns/drivers/linode.py
index f0fdbdc..5d497ed 100644
--- a/libcloud/dns/drivers/linode.py
+++ b/libcloud/dns/drivers/linode.py
@@ -174,7 +174,8 @@ class LinodeDNSDriver(DNSDriver):
 
         result = self.connection.request(API_ROOT, params=params).objects[0]
         record = Record(id=result['ResourceID'], name=name, type=type,
-                        data=data, extra=merged, zone=zone, driver=self)
+                        data=data, extra=merged, zone=zone, driver=self,
+                        ttl=merged.get('TTL_sec', None))
         return record
 
     def update_record(self, record, name=None, type=None, data=None,
@@ -268,5 +269,5 @@ class LinodeDNSDriver(DNSDriver):
         type = self._string_to_record_type(item['TYPE'])
         record = Record(id=item['RESOURCEID'], name=item['NAME'], type=type,
                         data=item['TARGET'], zone=zone, driver=self,
-                        extra=extra)
+                        ttl=item['TTL_SEC'], extra=extra)
         return record

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/pointdns.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/pointdns.py b/libcloud/dns/drivers/pointdns.py
index a639bdb..fcf5be6 100644
--- a/libcloud/dns/drivers/pointdns.py
+++ b/libcloud/dns/drivers/pointdns.py
@@ -751,7 +751,8 @@ class PointDNSDriver(DNSDriver):
         extra = {'ttl': record.get('ttl'),
                  'zone_id': record.get('zone_id'),
                  'aux': record.get('aux')}
-        return Record(id, name, type, data, zone, self, extra=extra)
+        return Record(id=id, name=name, type=type, data=data, zone=zone,
+                      driver=self, ttl=record.get('ttl', None), extra=extra)
 
     def _to_redirects(self, data, zone):
         redirects = []

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/rackspace.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/rackspace.py 
b/libcloud/dns/drivers/rackspace.py
index abdb273..a5393f4 100644
--- a/libcloud/dns/drivers/rackspace.py
+++ b/libcloud/dns/drivers/rackspace.py
@@ -373,7 +373,8 @@ class RackspaceDNSDriver(DNSDriver, OpenStackDriverMixin):
                 extra[key] = data[key]
 
         record = Record(id=str(id), name=name, type=type, data=record_data,
-                        zone=zone, driver=self, extra=extra)
+                        zone=zone, driver=self, ttl=extra.get('ttl', None),
+                        extra=extra)
         return record
 
     def _to_full_record_name(self, domain, name):

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/route53.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py
index db3514b..040cdbc 100644
--- a/libcloud/dns/drivers/route53.py
+++ b/libcloud/dns/drivers/route53.py
@@ -189,7 +189,7 @@ class Route53DNSDriver(DNSDriver):
         self._post_changeset(zone, batch)
         id = ':'.join((self.RECORD_TYPE_MAP[type], name))
         return Record(id=id, name=name, type=type, data=data, zone=zone,
-                      driver=self, extra=extra)
+                      driver=self, ttl=extra.get('ttl', None), extra=extra)
 
     def update_record(self, record, name=None, type=None, data=None,
                       extra=None):
@@ -216,7 +216,7 @@ class Route53DNSDriver(DNSDriver):
 
         id = ':'.join((self.RECORD_TYPE_MAP[type], name))
         return Record(id=id, name=name, type=type, data=data, zone=record.zone,
-                      driver=self, extra=extra)
+                      driver=self, ttl=extra.get('ttl', None), extra=extra)
 
     def delete_record(self, record):
         try:
@@ -270,7 +270,8 @@ class Route53DNSDriver(DNSDriver):
         records = []
         for value in values:
             record = Record(id=id, name=name, type=type, data=value, zone=zone,
-                            driver=self, extra=extra)
+                            driver=self, ttl=extra.get('ttl', None),
+                            extra=extra)
             records.append(record)
 
         return records
@@ -505,7 +506,7 @@ class Route53DNSDriver(DNSDriver):
 
         id = ':'.join((self.RECORD_TYPE_MAP[type], name))
         record = Record(id=id, name=name, type=type, data=data, zone=zone,
-                        driver=self, extra=extra)
+                        driver=self, ttl=extra.get('ttl', None), extra=extra)
         return record
 
     def _get_more(self, rtype, **kwargs):

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/softlayer.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/softlayer.py 
b/libcloud/dns/drivers/softlayer.py
index 04b4a8c..8a3cf4c 100644
--- a/libcloud/dns/drivers/softlayer.py
+++ b/libcloud/dns/drivers/softlayer.py
@@ -208,6 +208,7 @@ class SoftLayerDNSDriver(DNSDriver):
             data=item['data'],
             zone=zone,
             driver=self,
+            ttl=item['ttl'],
             extra=extra
         )
         return record

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/vultr.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/vultr.py b/libcloud/dns/drivers/vultr.py
index 41db457..f04407f 100644
--- a/libcloud/dns/drivers/vultr.py
+++ b/libcloud/dns/drivers/vultr.py
@@ -369,7 +369,6 @@ class VultrDNSDriver(DNSDriver):
         return zones
 
     def _to_record(self, item, zone):
-
         extra = {}
 
         if item.get('priority'):

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/worldwidedns.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/worldwidedns.py 
b/libcloud/dns/drivers/worldwidedns.py
index 432c528..8b0f90c 100644
--- a/libcloud/dns/drivers/worldwidedns.py
+++ b/libcloud/dns/drivers/worldwidedns.py
@@ -532,4 +532,5 @@ class WorldWideDNSDriver(DNSDriver):
         return records
 
     def _to_record(self, _id, subdomain, type, data, zone):
-        return Record(_id, subdomain, type, data, zone, zone.driver)
+        return Record(id=_id, name=subdomain, type=type, data=data, zone=zone,
+                      driver=zone.driver)

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/zerigo.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/zerigo.py b/libcloud/dns/drivers/zerigo.py
index 0af7a9f..dacdd75 100644
--- a/libcloud/dns/drivers/zerigo.py
+++ b/libcloud/dns/drivers/zerigo.py
@@ -438,7 +438,7 @@ class ZerigoDNSDriver(DNSDriver):
                  'priority': priority, 'ttl': ttl}
 
         record = Record(id=id, name=name, type=type, data=data,
-                        zone=zone, driver=self, extra=extra)
+                        zone=zone, driver=self, ttl=ttl, extra=extra)
         return record
 
     def _get_more(self, rtype, **kwargs):

http://git-wip-us.apache.org/repos/asf/libcloud/blob/1c4e8911/libcloud/dns/drivers/zonomi.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/zonomi.py b/libcloud/dns/drivers/zonomi.py
index 8fdf87b..003de6d 100644
--- a/libcloud/dns/drivers/zonomi.py
+++ b/libcloud/dns/drivers/zonomi.py
@@ -327,6 +327,8 @@ class ZonomiDNSDriver(DNSDriver):
     def _to_record(self, item, zone):
         if len(item.get('ttl')) > 0:
             ttl = item.get('ttl').split(' ')[0]
+        else:
+            ttl = None
         extra = {'ttl': ttl,
                  'prio': item.get('prio')}
         if len(item['name']) > len(zone.domain):
@@ -337,7 +339,7 @@ class ZonomiDNSDriver(DNSDriver):
             record_name = zone.domain
         record = Record(id=record_name, name=record_name,
                         data=item['content'], type=item['type'], zone=zone,
-                        driver=self, extra=extra)
+                        driver=self, ttl=ttl, extra=extra)
 
         return record
 

Reply via email to