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 2014/02/05 20:44:59 UTC
[3/9] git commit: LIBCLOUD-504: Added support for records with
multiple values such as MX/NS records as well an additional fixture and test.
LIBCLOUD-504: Added support for records with multiple values such as MX/NS records as well an additional fixture and test.
Signed-off-by: Tomaz Muraus <to...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/8fb0473a
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/8fb0473a
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/8fb0473a
Branch: refs/heads/trunk
Commit: 8fb0473ab9cb59f90c56b0a16960014b658f72bf
Parents: 5e9601f
Author: Chris DeRamus <ch...@divvycloud.com>
Authored: Sun Feb 2 08:04:44 2014 -0500
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 14:33:12 2014 +0100
----------------------------------------------------------------------
libcloud/dns/drivers/route53.py | 17 ++++++++++-----
.../test/dns/fixtures/route53/list_records.xml | 23 ++++++++++++++++++++
libcloud/test/dns/test_route53.py | 10 ++++++++-
3 files changed, 43 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/8fb0473a/libcloud/dns/drivers/route53.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py
index ae128e4..8046bbb 100644
--- a/libcloud/dns/drivers/route53.py
+++ b/libcloud/dns/drivers/route53.py
@@ -289,12 +289,17 @@ class Route53DNSDriver(DNSDriver):
namespace=NAMESPACE))
ttl = findtext(element=elem, xpath='TTL', namespace=NAMESPACE)
- # TODO: Support records with multiple values
- value_elem = elem.findall(
- fixxpath(xpath='ResourceRecords/ResourceRecord',
- namespace=NAMESPACE))[0]
- data = findtext(element=(value_elem), xpath='Value',
- namespace=NAMESPACE)
+ data = ''
+ for record_elem in elem.findall(fixxpath(
+ xpath='ResourceRecords/ResourceRecord',
+ namespace=NAMESPACE)):
+
+ data += findtext(element=(record_elem),
+ xpath='Value',
+ namespace=NAMESPACE) + ' '
+
+ # Strip off the trailing space
+ data = data.rstrip(' ')
extra = {'ttl': ttl}
http://git-wip-us.apache.org/repos/asf/libcloud/blob/8fb0473a/libcloud/test/dns/fixtures/route53/list_records.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/fixtures/route53/list_records.xml b/libcloud/test/dns/fixtures/route53/list_records.xml
index 039272a..ff6a395 100644
--- a/libcloud/test/dns/fixtures/route53/list_records.xml
+++ b/libcloud/test/dns/fixtures/route53/list_records.xml
@@ -35,6 +35,29 @@
</ResourceRecords>
</ResourceRecordSet>
+ <ResourceRecordSet>
+ <Name>testdomain.com</Name>
+ <Type>MX</Type>
+ <TTL>3600</TTL>
+ <ResourceRecords>
+ <ResourceRecord>
+ <Value>1 ASPMX.L.GOOGLE.COM.</Value>
+ </ResourceRecord>
+ <ResourceRecord>
+ <Value>5 ALT1.ASPMX.L.GOOGLE.COM.</Value>
+ </ResourceRecord>
+ <ResourceRecord>
+ <Value>5 ALT2.ASPMX.L.GOOGLE.COM.</Value>
+ </ResourceRecord>
+ <ResourceRecord>
+ <Value>10 ASPMX2.GOOGLEMAIL.COM.</Value>
+ </ResourceRecord>
+ <ResourceRecord>
+ <Value>10 ASPMX3.GOOGLEMAIL.COM.</Value>
+ </ResourceRecord>
+ </ResourceRecords>
+ </ResourceRecordSet>
+
</ResourceRecordSets>
</ListResourceRecordSetsResponse>
http://git-wip-us.apache.org/repos/asf/libcloud/blob/8fb0473a/libcloud/test/dns/test_route53.py
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/test_route53.py b/libcloud/test/dns/test_route53.py
index 220166e..b5c1cdf 100644
--- a/libcloud/test/dns/test_route53.py
+++ b/libcloud/test/dns/test_route53.py
@@ -50,7 +50,7 @@ class Route53Tests(unittest.TestCase):
def test_list_records(self):
zone = self.driver.list_zones()[0]
records = self.driver.list_records(zone=zone)
- self.assertEqual(len(records), 3)
+ self.assertEqual(len(records), 4)
record = records[1]
self.assertEqual(record.name, 'www')
@@ -58,6 +58,14 @@ class Route53Tests(unittest.TestCase):
self.assertEqual(record.type, RecordType.A)
self.assertEqual(record.data, '208.111.35.173')
+ mx_record = records[3]
+ self.assertEqual(mx_record.type, RecordType.MX)
+ self.assertEqual(mx_record.data, '1 ASPMX.L.GOOGLE.COM. '
+ '5 ALT1.ASPMX.L.GOOGLE.COM. '
+ '5 ALT2.ASPMX.L.GOOGLE.COM. '
+ '10 ASPMX2.GOOGLEMAIL.COM. '
+ '10 ASPMX3.GOOGLEMAIL.COM.')
+
def test_get_zone(self):
zone = self.driver.get_zone(zone_id='47234')
self.assertEqual(zone.id, '47234')