Index: boto/route53/connection.py |
diff --git a/boto/route53/connection.py b/boto/route53/connection.py |
index bbd218ca935a4181963cd28de23979d7dd58ad52..7c3f1b88c336961bf4c2dcc80ae0e008c72873b0 100644 |
--- a/boto/route53/connection.py |
+++ b/boto/route53/connection.py |
@@ -45,10 +45,14 @@ HZXML = """<?xml version="1.0" encoding="UTF-8"?> |
#boto.set_stream_logger('dns') |
class Route53Connection(AWSAuthConnection): |
- |
DefaultHost = 'route53.amazonaws.com' |
- Version = '2010-10-01' |
- XMLNameSpace = 'https://route53.amazonaws.com/doc/2010-10-01/' |
+ """The default Route53 API endpoint to connect to.""" |
+ |
+ Version = '2011-05-05' |
+ """Route53 API version.""" |
+ |
+ XMLNameSpace = 'https://route53.amazonaws.com/doc/2011-05-05/' |
+ """XML schema for this Route53 API version.""" |
def __init__(self, aws_access_key_id=None, aws_secret_access_key=None, |
port=None, proxy=None, proxy_port=None, |
@@ -71,12 +75,20 @@ class Route53Connection(AWSAuthConnection): |
# Hosted Zones |
- def get_all_hosted_zones(self): |
+ def get_all_hosted_zones(self, start_marker=None, zone_list=None): |
""" |
Returns a Python data structure with information about all |
Hosted Zones defined for the AWS account. |
+ |
+ :param int start_marker: start marker to pass when fetching additional |
+ results after a truncated list |
+ :param list zone_list: a HostedZones list to prepend to results |
""" |
- response = self.make_request('GET', '/%s/hostedzone' % self.Version) |
+ params = {} |
+ if start_marker: |
+ params = {'marker': start_marker} |
+ response = self.make_request('GET', '/%s/hostedzone' % self.Version, |
+ params=params) |
body = response.read() |
boto.log.debug(body) |
if response.status >= 300: |
@@ -87,8 +99,14 @@ class Route53Connection(AWSAuthConnection): |
item_marker=('HostedZone',)) |
h = boto.jsonresponse.XmlHandler(e, None) |
h.parse(body) |
+ if zone_list: |
+ e['ListHostedZonesResponse']['HostedZones'].extend(zone_list) |
+ while e['ListHostedZonesResponse'].has_key('NextMarker'): |
+ next_marker = e['ListHostedZonesResponse']['NextMarker'] |
+ zone_list = e['ListHostedZonesResponse']['HostedZones'] |
+ e = self.get_all_hosted_zones(next_marker, zone_list) |
return e |
- |
+ |
def get_hosted_zone(self, hosted_zone_id): |
""" |
Get detailed information about a particular Hosted Zone. |
@@ -118,28 +136,25 @@ class Route53Connection(AWSAuthConnection): |
:type domain_name: str |
:param domain_name: The name of the domain. This should be a |
- fully-specified domain, and should end with |
- a final period as the last label indication. |
- If you omit the final period, Amazon Route 53 |
- assumes the domain is relative to the root. |
- This is the name you have registered with your |
- DNS registrar. It is also the name you will |
- delegate from your registrar to the Amazon |
- Route 53 delegation servers returned in |
- response to this request.A list of strings |
- with the image IDs wanted |
+ fully-specified domain, and should end with a final period |
+ as the last label indication. If you omit the final period, |
+ Amazon Route 53 assumes the domain is relative to the root. |
+ This is the name you have registered with your DNS registrar. |
+ It is also the name you will delegate from your registrar to |
+ the Amazon Route 53 delegation servers returned in |
+ response to this request.A list of strings with the image |
+ IDs wanted. |
:type caller_ref: str |
:param caller_ref: A unique string that identifies the request |
- and that allows failed CreateHostedZone requests |
- to be retried without the risk of executing the |
- operation twice. |
- If you don't provide a value for this, boto will |
- generate a Type 4 UUID and use that. |
+ and that allows failed CreateHostedZone requests to be retried |
+ without the risk of executing the operation twice. If you don't |
+ provide a value for this, boto will generate a Type 4 UUID and |
+ use that. |
:type comment: str |
- :param comment: Any comments you want to include about the hosted |
- zone. |
+ :param comment: Any comments you want to include about the hosted |
+ zone. |
""" |
if caller_ref is None: |
@@ -182,7 +197,7 @@ class Route53Connection(AWSAuthConnection): |
# Resource Record Sets |
def get_all_rrsets(self, hosted_zone_id, type=None, |
- name=None, maxitems=None): |
+ name=None, identifier=None, maxitems=None): |
""" |
Retrieve the Resource Record Sets defined for this Hosted Zone. |
Returns the raw XML data returned by the Route53 call. |
@@ -192,29 +207,50 @@ class Route53Connection(AWSAuthConnection): |
:type type: str |
:param type: The type of resource record set to begin the record |
- listing from. Valid choices are: |
+ listing from. Valid choices are: |
- * A |
- * AAAA |
- * CNAME |
- * MX |
- * NS |
- * PTR |
- * SOA |
- * SPF |
- * SRV |
- * TXT |
+ * A |
+ * AAAA |
+ * CNAME |
+ * MX |
+ * NS |
+ * PTR |
+ * SOA |
+ * SPF |
+ * SRV |
+ * TXT |
+ |
+ Valid values for weighted resource record sets: |
+ |
+ * A |
+ * AAAA |
+ * CNAME |
+ * TXT |
+ |
+ Valid values for Zone Apex Aliases: |
+ |
+ * A |
+ * AAAA |
:type name: str |
:param name: The first name in the lexicographic ordering of domain |
names to be retrieved |
+ :type identifier: str |
+ :param identifier: In a hosted zone that includes weighted resource |
+ record sets (multiple resource record sets with the same DNS |
+ name and type that are differentiated only by SetIdentifier), |
+ if results were truncated for a given DNS name and type, |
+ the value of SetIdentifier for the next resource record |
+ set that has the current DNS name and type |
+ |
:type maxitems: int |
:param maxitems: The maximum number of records |
""" |
from boto.route53.record import ResourceRecordSets |
- params = {'type': type, 'name': name, 'maxitems': maxitems} |
+ params = {'type': type, 'name': name, |
+ 'Identifier': identifier, 'maxitems': maxitems} |
uri = '/%s/hostedzone/%s/rrset' % (self.Version, hosted_zone_id) |
response = self.make_request('GET', uri, params=params) |
body = response.read() |
@@ -240,7 +276,7 @@ class Route53Connection(AWSAuthConnection): |
:type xml_body: str |
:param xml_body: The list of changes to be made, defined in the |
- XML schema defined by the Route53 service. |
+ XML schema defined by the Route53 service. |
""" |
uri = '/%s/hostedzone/%s/rrset' % (self.Version, hosted_zone_id) |
@@ -267,8 +303,7 @@ class Route53Connection(AWSAuthConnection): |
:type change_id: str |
:param change_id: The unique identifier for the set of changes. |
- This ID is returned in the response to the |
- change_rrsets method. |
+ This ID is returned in the response to the change_rrsets method. |
""" |
uri = '/%s/change/%s' % (self.Version, change_id) |