Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3834)

Unified Diff: boto/route53/record.py

Issue 8386013: Merging in latest boto. (Closed) Base URL: svn://svn.chromium.org/boto
Patch Set: Redoing vendor drop by deleting and then merging. Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « boto/route53/connection.py ('k') | boto/s3/acl.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: boto/route53/record.py
diff --git a/boto/route53/record.py b/boto/route53/record.py
index 24f048279ab46c37a882c081dca351952f711589..6e91a83a1e8ae777559743b69b42fd18a49bb7f7 100644
--- a/boto/route53/record.py
+++ b/boto/route53/record.py
@@ -26,7 +26,7 @@ from boto.resultset import ResultSet
class ResourceRecordSets(ResultSet):
ChangeResourceRecordSetsBody = """<?xml version="1.0" encoding="UTF-8"?>
- <ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2010-10-01/">
+ <ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2011-05-05/">
<ChangeBatch>
<Comment>%(comment)s</Comment>
<Changes>%(changes)s</Changes>
@@ -51,9 +51,9 @@ class ResourceRecordSets(ResultSet):
def __repr__(self):
return '<ResourceRecordSets: %s>' % self.hosted_zone_id
- def add_change(self, action, name, type, ttl=600):
+ def add_change(self, action, name, type, ttl=600, alias_hosted_zone_id=None, alias_dns_name=None):
"""Add a change request"""
- change = Record(name, type, ttl)
+ change = Record(name, type, ttl, alias_hosted_zone_id=alias_hosted_zone_id, alias_dns_name=alias_dns_name)
self.changes.append([action, change])
return change
@@ -104,40 +104,72 @@ class Record(object):
XMLBody = """<ResourceRecordSet>
<Name>%(name)s</Name>
<Type>%(type)s</Type>
- <TTL>%(ttl)s</TTL>
- <ResourceRecords>%(records)s</ResourceRecords>
+ %(body)s
</ResourceRecordSet>"""
+ ResourceRecordsBody = """
+ <TTL>%(ttl)s</TTL>
+ <ResourceRecords>
+ %(records)s
+ </ResourceRecords>"""
+
ResourceRecordBody = """<ResourceRecord>
<Value>%s</Value>
</ResourceRecord>"""
+ AliasBody = """<AliasTarget>
+ <HostedZoneId>%s</HostedZoneId>
+ <DNSName>%s</DNSName>
+ </AliasTarget>"""
- def __init__(self, name=None, type=None, ttl=600, resource_records=None):
+ def __init__(self, name=None, type=None, ttl=600, resource_records=None, alias_hosted_zone_id=None, alias_dns_name=None):
self.name = name
self.type = type
self.ttl = ttl
if resource_records == None:
resource_records = []
self.resource_records = resource_records
+ self.alias_hosted_zone_id = alias_hosted_zone_id
+ self.alias_dns_name = alias_dns_name
def add_value(self, value):
"""Add a resource record value"""
self.resource_records.append(value)
+ def set_alias(self, alias_hosted_zone_id, alias_dns_name):
+ """Make this an alias resource record set"""
+ self.alias_hosted_zone_id = alias_hosted_zone_id
+ self.alias_dns_name = alias_dns_name
+
def to_xml(self):
"""Spit this resource record set out as XML"""
- records = ""
- for r in self.resource_records:
- records += self.ResourceRecordBody % r
+ if self.alias_hosted_zone_id != None and self.alias_dns_name != None:
+ # Use alias
+ body = self.AliasBody % (self.alias_hosted_zone_id, self.alias_dns_name)
+ else:
+ # Use resource record(s)
+ records = ""
+ for r in self.resource_records:
+ records += self.ResourceRecordBody % r
+ body = self.ResourceRecordsBody % {
+ "ttl": self.ttl,
+ "records": records,
+ }
params = {
"name": self.name,
"type": self.type,
- "ttl": self.ttl,
- "records": records
+ "body": body,
}
return self.XMLBody % params
+ def to_print(self):
+ if self.alias_hosted_zone_id != None and self.alias_dns_name != None:
+ # Show alias
+ return 'ALIAS ' + self.alias_hosted_zone_id + ' ' + self.alias_dns_name
+ else:
+ # Show resource record(s)
+ return ",".join(self.resource_records)
+
def endElement(self, name, value, connection):
if name == 'Name':
self.name = value
@@ -147,6 +179,10 @@ class Record(object):
self.ttl = value
elif name == 'Value':
self.resource_records.append(value)
+ elif name == 'HostedZoneId':
+ self.alias_hosted_zone_id = value
+ elif name == 'DNSName':
+ self.alias_dns_name = value
def startElement(self, name, attrs, connection):
return None
« no previous file with comments | « boto/route53/connection.py ('k') | boto/s3/acl.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698