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:57 UTC
[1/9] git commit: LIBCLOUD-511: Added support for obtaining console
output for OpenStack nodes. New tests are also included.
Updated Branches:
refs/heads/trunk 71aff983c -> 8e36cb5ec
LIBCLOUD-511: Added support for obtaining console output for OpenStack nodes. New tests are also included.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/5e9601f5
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/5e9601f5
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/5e9601f5
Branch: refs/heads/trunk
Commit: 5e9601f55ffecaad6969372bb04569642ad9863f
Parents: 71aff98
Author: Chris DeRamus <ch...@divvycloud.com>
Authored: Tue Feb 4 08:20:46 2014 -0500
Committer: Tomaz Muraus <to...@apache.org>
Committed: Tue Feb 4 15:16:45 2014 +0100
----------------------------------------------------------------------
libcloud/compute/drivers/openstack.py | 25 ++++++++++++++++++++
.../_servers_12086_console_output.json | 3 +++
libcloud/test/compute/test_openstack.py | 16 +++++++++++++
3 files changed, 44 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/5e9601f5/libcloud/compute/drivers/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/openstack.py b/libcloud/compute/drivers/openstack.py
index 137dc30..db5c7f1 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -1572,6 +1572,31 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
method='DELETE')
return resp.status == httplib.ACCEPTED
+ def ex_get_console_output(self, node, length=None):
+ """
+ Get console output
+
+ :param node: node
+ :type node: :class:`Node`
+
+ :param length: Optional number of lines to fetch from the
+ console log
+ :type length: ``int``
+
+ :return: Dictionary with the output
+ :rtype: ``dict``
+ """
+
+ data = {
+ "os-getConsoleOutput": {
+ "length": length
+ }
+ }
+
+ resp = self.connection.request('/servers/%s/action' % node.id,
+ method='POST', data=data).object
+ return resp
+
def _to_security_group_rules(self, obj):
return [self._to_security_group_rule(security_group_rule) for
security_group_rule in obj]
http://git-wip-us.apache.org/repos/asf/libcloud/blob/5e9601f5/libcloud/test/compute/fixtures/openstack_v1.1/_servers_12086_console_output.json
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/openstack_v1.1/_servers_12086_console_output.json b/libcloud/test/compute/fixtures/openstack_v1.1/_servers_12086_console_output.json
new file mode 100644
index 0000000..27ffe7d
--- /dev/null
+++ b/libcloud/test/compute/fixtures/openstack_v1.1/_servers_12086_console_output.json
@@ -0,0 +1,3 @@
+{
+ "output": "FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE"
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/libcloud/blob/5e9601f5/libcloud/test/compute/test_openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_openstack.py b/libcloud/test/compute/test_openstack.py
index 0df6dd3..a249dfc 100644
--- a/libcloud/test/compute/test_openstack.py
+++ b/libcloud/test/compute/test_openstack.py
@@ -1524,6 +1524,15 @@ class OpenStack_1_1_Tests(unittest.TestCase, TestCaseMixin):
ret = self.driver.ex_resume_node(node)
self.assertTrue(ret is True)
+ def test_ex_get_console_output(self):
+ node = Node(
+ id='12086', name=None, state=None,
+ public_ips=None, private_ips=None, driver=self.driver,
+ )
+ resp = self.driver.ex_get_console_output(node)
+ expected_output = 'FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE'
+ self.assertEqual(resp['output'], expected_output)
+
class OpenStack_1_1_FactoryMethodTests(OpenStack_1_1_Tests):
should_list_locations = False
@@ -1862,6 +1871,13 @@ class OpenStack_1_1_MockHttp(MockHttpTestCase):
return (httplib.OK, body, self.json_content_headers, httplib.responses[httplib.OK])
+ def _v1_1_slug_servers_12086_action(self, method, url, body, headers):
+ if method == "POST":
+ body = self.fixtures.load('_servers_12086_console_output.json')
+ return (httplib.ACCEPTED, body, self.json_content_headers, httplib.responses[httplib.OK])
+ else:
+ raise NotImplementedError()
+
# This exists because the nova compute url in devstack has v2 in there but the v1.1 fixtures
# work fine.
[6/9] git commit: Avoid double split call.
Posted by to...@apache.org.
Avoid double split call.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/8f2e5514
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/8f2e5514
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/8f2e5514
Branch: refs/heads/trunk
Commit: 8f2e551437cc2ab7e8a447fd159e03c1e56171e5
Parents: e010a34
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed Feb 5 14:38:12 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 14:38:12 2014 +0100
----------------------------------------------------------------------
libcloud/dns/drivers/route53.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/8f2e5514/libcloud/dns/drivers/route53.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py
index 1df6643..811b7a2 100644
--- a/libcloud/dns/drivers/route53.py
+++ b/libcloud/dns/drivers/route53.py
@@ -301,8 +301,8 @@ class Route53DNSDriver(DNSDriver):
extra = {'ttl': ttl}
if type == 'MX':
- priority = int(data.split()[0])
- data = data.split()[1]
+ split = data.split()
+ priority, data = int(split[0]), split[1]
extra['priority'] = priority
id = ':'.join((self.RECORD_TYPE_MAP[type], name))
[4/9] git commit: Add additional assert.
Posted by to...@apache.org.
Add additional assert.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f93432e6
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f93432e6
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f93432e6
Branch: refs/heads/trunk
Commit: f93432e6e227f721d07f5ec5343a5e5915d7bce3
Parents: c1cab59
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed Feb 5 14:35:25 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 14:35:25 2014 +0100
----------------------------------------------------------------------
libcloud/test/dns/test_route53.py | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f93432e6/libcloud/test/dns/test_route53.py
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/test_route53.py b/libcloud/test/dns/test_route53.py
index 5e41dd7..93355ab 100644
--- a/libcloud/test/dns/test_route53.py
+++ b/libcloud/test/dns/test_route53.py
@@ -58,10 +58,15 @@ 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, 'ASPMX.L.GOOGLE.COM.')
- self.assertEqual(mx_record.extra['priority'], 1)
+ record = records[3]
+ self.assertEqual(record.type, RecordType.MX)
+ self.assertEqual(record.data, 'ASPMX.L.GOOGLE.COM.')
+ self.assertEqual(record.extra['priority'], 1)
+
+ record = records[4]
+ self.assertEqual(record.type, RecordType.MX)
+ self.assertEqual(record.data, 'ALT1.ASPMX.L.GOOGLE.COM.')
+ self.assertEqual(record.extra['priority'], 5)
def test_get_zone(self):
zone = self.driver.get_zone(zone_id='47234')
[7/9] git commit: Update Route53 driver so it also handles SRV
records better.
Posted by to...@apache.org.
Update Route53 driver so it also handles SRV records better.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/204d5693
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/204d5693
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/204d5693
Branch: refs/heads/trunk
Commit: 204d56935ceac76c7507f011b548597f696e9a0c
Parents: 8f2e551
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed Feb 5 20:33:37 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 20:36:57 2014 +0100
----------------------------------------------------------------------
libcloud/dns/drivers/route53.py | 10 ++++++++--
libcloud/test/dns/fixtures/route53/list_records.xml | 16 +++++++++++++++-
libcloud/test/dns/test_route53.py | 9 ++++++++-
3 files changed, 31 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/204d5693/libcloud/dns/drivers/route53.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py
index 811b7a2..944449b 100644
--- a/libcloud/dns/drivers/route53.py
+++ b/libcloud/dns/drivers/route53.py
@@ -302,8 +302,14 @@ class Route53DNSDriver(DNSDriver):
if type == 'MX':
split = data.split()
- priority, data = int(split[0]), split[1]
- extra['priority'] = priority
+ priority, data = split
+ extra['priority'] = int(priority)
+ elif type == 'SRV':
+ split = data.split()
+ priority, weight, port, data = split
+ extra['priority'] = int(priority)
+ extra['weight'] = int(weight)
+ extra['port'] = int(port)
id = ':'.join((self.RECORD_TYPE_MAP[type], name))
record = Record(id=id, name=name, type=type, data=data, zone=zone,
http://git-wip-us.apache.org/repos/asf/libcloud/blob/204d5693/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 ff6a395..b9638fa 100644
--- a/libcloud/test/dns/fixtures/route53/list_records.xml
+++ b/libcloud/test/dns/fixtures/route53/list_records.xml
@@ -56,7 +56,21 @@
<Value>10 ASPMX3.GOOGLEMAIL.COM.</Value>
</ResourceRecord>
</ResourceRecords>
- </ResourceRecordSet>
+ </ResourceRecordSet>
+
+ <ResourceRecordSet>
+ <Name>foo.test.com.</Name>
+ <Type>SRV</Type>
+ <TTL>300</TTL>
+ <ResourceRecords>
+ <ResourceRecord>
+ <Value>1 10 5269 xmpp-server.example.com.</Value>
+ </ResourceRecord>
+ <ResourceRecord>
+ <Value>2 12 5060 sip-server.example.com.</Value>
+ </ResourceRecord>
+ </ResourceRecords>
+ </ResourceRecordSet>
</ResourceRecordSets>
</ListResourceRecordSetsResponse>
http://git-wip-us.apache.org/repos/asf/libcloud/blob/204d5693/libcloud/test/dns/test_route53.py
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/test_route53.py b/libcloud/test/dns/test_route53.py
index 93355ab..c512a8b 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), 8)
+ self.assertEqual(len(records), 10)
record = records[1]
self.assertEqual(record.name, 'www')
@@ -68,6 +68,13 @@ class Route53Tests(unittest.TestCase):
self.assertEqual(record.data, 'ALT1.ASPMX.L.GOOGLE.COM.')
self.assertEqual(record.extra['priority'], 5)
+ record = records[8]
+ self.assertEqual(record.type, RecordType.SRV)
+ self.assertEqual(record.data, 'xmpp-server.example.com.')
+ self.assertEqual(record.extra['priority'], 1)
+ self.assertEqual(record.extra['weight'], 10)
+ self.assertEqual(record.extra['port'], 5269)
+
def test_get_zone(self):
zone = self.driver.get_zone(zone_id='47234')
self.assertEqual(zone.id, '47234')
[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.
Posted by to...@apache.org.
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')
[5/9] git commit: Update CHANGES.
Posted by to...@apache.org.
Update CHANGES.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/e010a347
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/e010a347
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/e010a347
Branch: refs/heads/trunk
Commit: e010a347020fe101b24ff4a64b84af6b2af38bf8
Parents: f93432e
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed Feb 5 14:37:07 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 14:37:07 2014 +0100
----------------------------------------------------------------------
CHANGES.rst | 5 +++++
1 file changed, 5 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/e010a347/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index ba21984..09ce2cd 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -70,6 +70,11 @@ DNS
(GITHUB-230)
[Roy Wellington]
+- Update Route53 driver so it supports handling records with multiple values
+ (e.g. MX).
+ (LIBCLOUD-504, GITHUB-237)
+ [Chris DeRamus]
+
Changes with Apache Libcloud 0.14.0
-----------------------------------
[9/9] git commit: Update CHANGES.
Posted by to...@apache.org.
Update CHANGES.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/8e36cb5e
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/8e36cb5e
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/8e36cb5e
Branch: refs/heads/trunk
Commit: 8e36cb5ecdf4188d4dabaf2270755748293b7c57
Parents: 5af004c
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed Feb 5 20:39:57 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 20:39:57 2014 +0100
----------------------------------------------------------------------
CHANGES.rst | 7 +++++++
1 file changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/8e36cb5e/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index 09ce2cd..f952d6d 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -75,6 +75,13 @@ DNS
(LIBCLOUD-504, GITHUB-237)
[Chris DeRamus]
+- Update Route53 driver to better handle SRV records.
+ [Tomaz Muraus]
+
+- Update Route53 driver, make sure "ttl" attribute in the Record extra
+ dictionary is always an int.
+ [Tomaz Muraus]
+
Changes with Apache Libcloud 0.14.0
-----------------------------------
[8/9] git commit: Make sure TTL is an int.
Posted by to...@apache.org.
Make sure TTL is an int.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/5af004cc
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/5af004cc
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/5af004cc
Branch: refs/heads/trunk
Commit: 5af004cc54a5ab45326f4bc2468c978c94dd30cb
Parents: 204d569
Author: Tomaz Muraus <to...@apache.org>
Authored: Wed Feb 5 20:39:01 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 20:39:01 2014 +0100
----------------------------------------------------------------------
libcloud/dns/drivers/route53.py | 2 +-
libcloud/test/dns/test_route53.py | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/5af004cc/libcloud/dns/drivers/route53.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py
index 944449b..64f34c0 100644
--- a/libcloud/dns/drivers/route53.py
+++ b/libcloud/dns/drivers/route53.py
@@ -290,7 +290,7 @@ class Route53DNSDriver(DNSDriver):
type = self._string_to_record_type(findtext(element=elem, xpath='Type',
namespace=NAMESPACE))
- ttl = findtext(element=elem, xpath='TTL', namespace=NAMESPACE)
+ ttl = int(findtext(element=elem, xpath='TTL', namespace=NAMESPACE))
value_elem = elem.findall(
fixxpath(xpath='ResourceRecords/ResourceRecord',
http://git-wip-us.apache.org/repos/asf/libcloud/blob/5af004cc/libcloud/test/dns/test_route53.py
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/test_route53.py b/libcloud/test/dns/test_route53.py
index c512a8b..bc11125 100644
--- a/libcloud/test/dns/test_route53.py
+++ b/libcloud/test/dns/test_route53.py
@@ -57,6 +57,7 @@ class Route53Tests(unittest.TestCase):
self.assertEqual(record.id, 'A:www')
self.assertEqual(record.type, RecordType.A)
self.assertEqual(record.data, '208.111.35.173')
+ self.assertEqual(record.extra['ttl'], 86400)
record = records[3]
self.assertEqual(record.type, RecordType.MX)
[2/9] git commit: Changing the flow for processing records with
multiple values such as MX records to be broken out into separate Record
objects.
Posted by to...@apache.org.
Changing the flow for processing records with multiple values such as MX records to be broken out into separate Record objects.
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/c1cab594
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/c1cab594
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/c1cab594
Branch: refs/heads/trunk
Commit: c1cab59487b7def9ac15e1a856da19e94a6b6f9e
Parents: 8fb0473
Author: Chris DeRamus <ch...@divvycloud.com>
Authored: Sun Feb 2 13:22:30 2014 -0500
Committer: Tomaz Muraus <to...@apache.org>
Committed: Wed Feb 5 14:33:12 2014 +0100
----------------------------------------------------------------------
libcloud/dns/drivers/route53.py | 30 ++++++++++++++++--------------
libcloud/test/dns/test_route53.py | 9 +++------
2 files changed, 19 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/c1cab594/libcloud/dns/drivers/route53.py
----------------------------------------------------------------------
diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py
index 8046bbb..1df6643 100644
--- a/libcloud/dns/drivers/route53.py
+++ b/libcloud/dns/drivers/route53.py
@@ -276,11 +276,14 @@ class Route53DNSDriver(DNSDriver):
fixxpath(xpath='ResourceRecordSets/ResourceRecordSet',
namespace=NAMESPACE))
for elem in elems:
- records.append(self._to_record(elem, zone))
-
+ record_set = elem.findall(fixxpath(
+ xpath='ResourceRecords/ResourceRecord',
+ namespace=NAMESPACE))
+ for index, record in enumerate(record_set):
+ records.append(self._to_record(elem, zone, index))
return records
- def _to_record(self, elem, zone):
+ def _to_record(self, elem, zone, index=0):
name = findtext(element=elem, xpath='Name',
namespace=NAMESPACE)
name = name[:-len(zone.domain) - 1]
@@ -289,20 +292,19 @@ class Route53DNSDriver(DNSDriver):
namespace=NAMESPACE))
ttl = findtext(element=elem, xpath='TTL', 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(' ')
+ value_elem = elem.findall(
+ fixxpath(xpath='ResourceRecords/ResourceRecord',
+ namespace=NAMESPACE))[index]
+ data = findtext(element=(value_elem), xpath='Value',
+ namespace=NAMESPACE)
extra = {'ttl': ttl}
+ if type == 'MX':
+ priority = int(data.split()[0])
+ data = data.split()[1]
+ extra['priority'] = priority
+
id = ':'.join((self.RECORD_TYPE_MAP[type], name))
record = Record(id=id, name=name, type=type, data=data, zone=zone,
driver=self, extra=extra)
http://git-wip-us.apache.org/repos/asf/libcloud/blob/c1cab594/libcloud/test/dns/test_route53.py
----------------------------------------------------------------------
diff --git a/libcloud/test/dns/test_route53.py b/libcloud/test/dns/test_route53.py
index b5c1cdf..5e41dd7 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), 4)
+ self.assertEqual(len(records), 8)
record = records[1]
self.assertEqual(record.name, 'www')
@@ -60,11 +60,8 @@ class Route53Tests(unittest.TestCase):
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.')
+ self.assertEqual(mx_record.data, 'ASPMX.L.GOOGLE.COM.')
+ self.assertEqual(mx_record.extra['priority'], 1)
def test_get_zone(self):
zone = self.driver.get_zone(zone_id='47234')