Repository: libcloud
Updated Branches:
  refs/heads/trunk 52d96c7f5 -> b5902a106


Fix Route53 DNS driver to support domain zone as name

Closes #469

Signed-off-by: Tomaz Muraus <[email protected]>


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

Branch: refs/heads/trunk
Commit: 22df98878716434eb08edd08a007f843fe5cd23b
Parents: 52d96c7
Author: Vanč Levstik <[email protected]>
Authored: Mon Feb 23 14:13:32 2015 +0100
Committer: Tomaz Muraus <[email protected]>
Committed: Sat Feb 28 22:32:08 2015 +0100

----------------------------------------------------------------------
 libcloud/dns/drivers/route53.py   |  8 +++++---
 libcloud/test/dns/test_route53.py | 14 ++++++++++++++
 2 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/22df9887/libcloud/dns/drivers/route53.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py
index 5fce731..36e06f7 100644
--- a/libcloud/dns/drivers/route53.py
+++ b/libcloud/dns/drivers/route53.py
@@ -315,7 +315,7 @@ class Route53DNSDriver(DNSDriver):
 
         rrs = ET.SubElement(change, 'ResourceRecordSet')
         ET.SubElement(rrs, 'Name').text = record.name + '.' + \
-            record.zone.domain
+            record.zone.domain if record.name else record.zone.domain
         ET.SubElement(rrs, 'Type').text = self.RECORD_TYPE_MAP[record.type]
         ET.SubElement(rrs, 'TTL').text = str(record.extra.get('ttl', '0'))
 
@@ -334,7 +334,8 @@ class Route53DNSDriver(DNSDriver):
         ET.SubElement(change, 'Action').text = 'CREATE'
 
         rrs = ET.SubElement(change, 'ResourceRecordSet')
-        ET.SubElement(rrs, 'Name').text = name + '.' + record.zone.domain
+        ET.SubElement(rrs, 'Name').text = name + '.' + \
+            record.zone.domain if name else record.zone.domain
         ET.SubElement(rrs, 'Type').text = self.RECORD_TYPE_MAP[type]
         ET.SubElement(rrs, 'TTL').text = str(extra.get('ttl', '0'))
 
@@ -364,7 +365,8 @@ class Route53DNSDriver(DNSDriver):
             ET.SubElement(change, 'Action').text = action
 
             rrs = ET.SubElement(change, 'ResourceRecordSet')
-            ET.SubElement(rrs, 'Name').text = name + '.' + zone.domain
+            ET.SubElement(rrs, 'Name').text = name + '.' + \
+                zone.domain if name else zone.domain
             ET.SubElement(rrs, 'Type').text = self.RECORD_TYPE_MAP[type_]
             ET.SubElement(rrs, 'TTL').text = str(extra.get('ttl', '0'))
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/22df9887/libcloud/test/dns/test_route53.py
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/test_route53.py 
b/libcloud/test/dns/test_route53.py
index e9a4026..157d469 100644
--- a/libcloud/test/dns/test_route53.py
+++ b/libcloud/test/dns/test_route53.py
@@ -155,6 +155,20 @@ class Route53Tests(unittest.TestCase):
         self.assertEqual(record.type, RecordType.A)
         self.assertEqual(record.data, '127.0.0.1')
 
+    def test_create_record_zone_name(self):
+        zone = self.driver.list_zones()[0]
+        record = self.driver.create_record(
+            name='', zone=zone,
+            type=RecordType.A, data='127.0.0.1',
+            extra={'ttl': 0}
+        )
+
+        self.assertEqual(record.id, 'A:')
+        self.assertEqual(record.name, '')
+        self.assertEqual(record.zone, zone)
+        self.assertEqual(record.type, RecordType.A)
+        self.assertEqual(record.data, '127.0.0.1')
+
     def test_create_multi_value_record(self):
         zone = self.driver.list_zones()[0]
         records = self.driver.ex_create_multi_value_record(

Reply via email to