| Index: tools/telemetry/third_party/gsutilz/third_party/boto/boto/route53/record.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/route53/record.py b/tools/telemetry/third_party/gsutilz/third_party/boto/boto/route53/record.py
|
| deleted file mode 100644
|
| index 05cddce6a281cc87546b83ab2f3f1768772cbebd..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/route53/record.py
|
| +++ /dev/null
|
| @@ -1,374 +0,0 @@
|
| -# Copyright (c) 2010 Chris Moyer http://coredumped.org/
|
| -# Copyright (c) 2012 Mitch Garnaat http://garnaat.org/
|
| -# Copyright (c) 2012 Amazon.com, Inc. or its affiliates.
|
| -# All rights reserved.
|
| -#
|
| -# Permission is hereby granted, free of charge, to any person obtaining a
|
| -# copy of this software and associated documentation files (the
|
| -# "Software"), to deal in the Software without restriction, including
|
| -# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| -# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| -# persons to whom the Software is furnished to do so, subject to the fol-
|
| -# lowing conditions:
|
| -#
|
| -# The above copyright notice and this permission notice shall be included
|
| -# in all copies or substantial portions of the Software.
|
| -#
|
| -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| -# IN THE SOFTWARE.
|
| -
|
| -RECORD_TYPES = ['A', 'AAAA', 'TXT', 'CNAME', 'MX', 'PTR', 'SRV', 'SPF']
|
| -
|
| -from boto.resultset import ResultSet
|
| -
|
| -
|
| -class ResourceRecordSets(ResultSet):
|
| - """
|
| - A list of resource records.
|
| -
|
| - :ivar hosted_zone_id: The ID of the hosted zone.
|
| - :ivar comment: A comment that will be stored with the change.
|
| - :ivar changes: A list of changes.
|
| - """
|
| -
|
| - ChangeResourceRecordSetsBody = """<?xml version="1.0" encoding="UTF-8"?>
|
| - <ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
|
| - <ChangeBatch>
|
| - <Comment>%(comment)s</Comment>
|
| - <Changes>%(changes)s</Changes>
|
| - </ChangeBatch>
|
| - </ChangeResourceRecordSetsRequest>"""
|
| -
|
| - ChangeXML = """<Change>
|
| - <Action>%(action)s</Action>
|
| - %(record)s
|
| - </Change>"""
|
| -
|
| - def __init__(self, connection=None, hosted_zone_id=None, comment=None):
|
| - self.connection = connection
|
| - self.hosted_zone_id = hosted_zone_id
|
| - self.comment = comment
|
| - self.changes = []
|
| - self.next_record_name = None
|
| - self.next_record_type = None
|
| - self.next_record_identifier = None
|
| - super(ResourceRecordSets, self).__init__([('ResourceRecordSet', Record)])
|
| -
|
| - def __repr__(self):
|
| - if self.changes:
|
| - record_list = ','.join([c.__repr__() for c in self.changes])
|
| - else:
|
| - record_list = ','.join([record.__repr__() for record in self])
|
| - return '<ResourceRecordSets:%s [%s]' % (self.hosted_zone_id,
|
| - record_list)
|
| -
|
| - def add_change(self, action, name, type, ttl=600,
|
| - alias_hosted_zone_id=None, alias_dns_name=None, identifier=None,
|
| - weight=None, region=None, alias_evaluate_target_health=None,
|
| - health_check=None, failover=None):
|
| - """
|
| - Add a change request to the set.
|
| -
|
| - :type action: str
|
| - :param action: The action to perform ('CREATE'|'DELETE'|'UPSERT')
|
| -
|
| - :type name: str
|
| - :param name: The name of the domain you want to perform the action on.
|
| -
|
| - :type type: str
|
| - :param type: The DNS record type. Valid values are:
|
| -
|
| - * A
|
| - * AAAA
|
| - * CNAME
|
| - * MX
|
| - * NS
|
| - * PTR
|
| - * SOA
|
| - * SPF
|
| - * SRV
|
| - * TXT
|
| -
|
| - :type ttl: int
|
| - :param ttl: The resource record cache time to live (TTL), in seconds.
|
| -
|
| - :type alias_hosted_zone_id: str
|
| - :param alias_dns_name: *Alias resource record sets only* The value
|
| - of the hosted zone ID, CanonicalHostedZoneNameId, for
|
| - the LoadBalancer.
|
| -
|
| - :type alias_dns_name: str
|
| - :param alias_hosted_zone_id: *Alias resource record sets only*
|
| - Information about the domain to which you are redirecting traffic.
|
| -
|
| - :type identifier: str
|
| - :param identifier: *Weighted and latency-based resource record sets
|
| - only* An identifier that differentiates among multiple resource
|
| - record sets that have the same combination of DNS name and type.
|
| -
|
| - :type weight: int
|
| - :param weight: *Weighted resource record sets only* Among resource
|
| - record sets that have the same combination of DNS name and type,
|
| - a value that determines what portion of traffic for the current
|
| - resource record set is routed to the associated location
|
| -
|
| - :type region: str
|
| - :param region: *Latency-based resource record sets only* Among resource
|
| - record sets that have the same combination of DNS name and type,
|
| - a value that determines which region this should be associated with
|
| - for the latency-based routing
|
| -
|
| - :type alias_evaluate_target_health: bool
|
| - :param alias_evaluate_target_health: *Required for alias resource record
|
| - sets* Indicates whether this Resource Record Set should respect the
|
| - health status of any health checks associated with the ALIAS target
|
| - record which it is linked to.
|
| -
|
| - :type health_check: str
|
| - :param health_check: Health check to associate with this record
|
| -
|
| - :type failover: str
|
| - :param failover: *Failover resource record sets only* Whether this is the
|
| - primary or secondary resource record set.
|
| - """
|
| - change = Record(name, type, ttl,
|
| - alias_hosted_zone_id=alias_hosted_zone_id,
|
| - alias_dns_name=alias_dns_name, identifier=identifier,
|
| - weight=weight, region=region,
|
| - alias_evaluate_target_health=alias_evaluate_target_health,
|
| - health_check=health_check, failover=failover)
|
| - self.changes.append([action, change])
|
| - return change
|
| -
|
| - def add_change_record(self, action, change):
|
| - """Add an existing record to a change set with the specified action"""
|
| - self.changes.append([action, change])
|
| - return
|
| -
|
| - def to_xml(self):
|
| - """Convert this ResourceRecordSet into XML
|
| - to be saved via the ChangeResourceRecordSetsRequest"""
|
| - changesXML = ""
|
| - for change in self.changes:
|
| - changeParams = {"action": change[0], "record": change[1].to_xml()}
|
| - changesXML += self.ChangeXML % changeParams
|
| - params = {"comment": self.comment, "changes": changesXML}
|
| - return self.ChangeResourceRecordSetsBody % params
|
| -
|
| - def commit(self):
|
| - """Commit this change"""
|
| - if not self.connection:
|
| - import boto
|
| - self.connection = boto.connect_route53()
|
| - return self.connection.change_rrsets(self.hosted_zone_id, self.to_xml())
|
| -
|
| - def endElement(self, name, value, connection):
|
| - """Overwritten to also add the NextRecordName,
|
| - NextRecordType and NextRecordIdentifier to the base object"""
|
| - if name == 'NextRecordName':
|
| - self.next_record_name = value
|
| - elif name == 'NextRecordType':
|
| - self.next_record_type = value
|
| - elif name == 'NextRecordIdentifier':
|
| - self.next_record_identifier = value
|
| - else:
|
| - return super(ResourceRecordSets, self).endElement(name, value, connection)
|
| -
|
| - def __iter__(self):
|
| - """Override the next function to support paging"""
|
| - results = super(ResourceRecordSets, self).__iter__()
|
| - truncated = self.is_truncated
|
| - while results:
|
| - for obj in results:
|
| - yield obj
|
| - if self.is_truncated:
|
| - self.is_truncated = False
|
| - results = self.connection.get_all_rrsets(self.hosted_zone_id, name=self.next_record_name,
|
| - type=self.next_record_type,
|
| - identifier=self.next_record_identifier)
|
| - else:
|
| - results = None
|
| - self.is_truncated = truncated
|
| -
|
| -
|
| -class Record(object):
|
| - """An individual ResourceRecordSet"""
|
| -
|
| - HealthCheckBody = """<HealthCheckId>%s</HealthCheckId>"""
|
| -
|
| - XMLBody = """<ResourceRecordSet>
|
| - <Name>%(name)s</Name>
|
| - <Type>%(type)s</Type>
|
| - %(weight)s
|
| - %(body)s
|
| - %(health_check)s
|
| - </ResourceRecordSet>"""
|
| -
|
| - WRRBody = """
|
| - <SetIdentifier>%(identifier)s</SetIdentifier>
|
| - <Weight>%(weight)s</Weight>
|
| - """
|
| -
|
| - RRRBody = """
|
| - <SetIdentifier>%(identifier)s</SetIdentifier>
|
| - <Region>%(region)s</Region>
|
| - """
|
| -
|
| - FailoverBody = """
|
| - <SetIdentifier>%(identifier)s</SetIdentifier>
|
| - <Failover>%(failover)s</Failover>
|
| - """
|
| -
|
| - ResourceRecordsBody = """
|
| - <TTL>%(ttl)s</TTL>
|
| - <ResourceRecords>
|
| - %(records)s
|
| - </ResourceRecords>"""
|
| -
|
| - ResourceRecordBody = """<ResourceRecord>
|
| - <Value>%s</Value>
|
| - </ResourceRecord>"""
|
| -
|
| - AliasBody = """<AliasTarget>
|
| - <HostedZoneId>%(hosted_zone_id)s</HostedZoneId>
|
| - <DNSName>%(dns_name)s</DNSName>
|
| - %(eval_target_health)s
|
| - </AliasTarget>"""
|
| -
|
| - EvaluateTargetHealth = """<EvaluateTargetHealth>%s</EvaluateTargetHealth>"""
|
| -
|
| - def __init__(self, name=None, type=None, ttl=600, resource_records=None,
|
| - alias_hosted_zone_id=None, alias_dns_name=None, identifier=None,
|
| - weight=None, region=None, alias_evaluate_target_health=None,
|
| - health_check=None, failover=None):
|
| - self.name = name
|
| - self.type = type
|
| - self.ttl = ttl
|
| - if resource_records is None:
|
| - resource_records = []
|
| - self.resource_records = resource_records
|
| - self.alias_hosted_zone_id = alias_hosted_zone_id
|
| - self.alias_dns_name = alias_dns_name
|
| - self.identifier = identifier
|
| - self.weight = weight
|
| - self.region = region
|
| - self.alias_evaluate_target_health = alias_evaluate_target_health
|
| - self.health_check = health_check
|
| - self.failover = failover
|
| -
|
| - def __repr__(self):
|
| - return '<Record:%s:%s:%s>' % (self.name, self.type, self.to_print())
|
| -
|
| - 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,
|
| - alias_evaluate_target_health=False):
|
| - """Make this an alias resource record set"""
|
| - self.alias_hosted_zone_id = alias_hosted_zone_id
|
| - self.alias_dns_name = alias_dns_name
|
| - self.alias_evaluate_target_health = alias_evaluate_target_health
|
| -
|
| - def to_xml(self):
|
| - """Spit this resource record set out as XML"""
|
| - if self.alias_hosted_zone_id is not None and self.alias_dns_name is not None:
|
| - # Use alias
|
| - if self.alias_evaluate_target_health is not None:
|
| - eval_target_health = self.EvaluateTargetHealth % ('true' if self.alias_evaluate_target_health else 'false')
|
| - else:
|
| - eval_target_health = ""
|
| -
|
| - body = self.AliasBody % {"hosted_zone_id": self.alias_hosted_zone_id,
|
| - "dns_name": self.alias_dns_name,
|
| - "eval_target_health": eval_target_health}
|
| - else:
|
| - # Use resource record(s)
|
| - records = ""
|
| -
|
| - for r in self.resource_records:
|
| - records += self.ResourceRecordBody % r
|
| -
|
| - body = self.ResourceRecordsBody % {
|
| - "ttl": self.ttl,
|
| - "records": records,
|
| - }
|
| -
|
| - weight = ""
|
| -
|
| - if self.identifier is not None and self.weight is not None:
|
| - weight = self.WRRBody % {"identifier": self.identifier,
|
| - "weight": self.weight}
|
| - elif self.identifier is not None and self.region is not None:
|
| - weight = self.RRRBody % {"identifier": self.identifier,
|
| - "region": self.region}
|
| - elif self.identifier is not None and self.failover is not None:
|
| - weight = self.FailoverBody % {"identifier": self.identifier,
|
| - "failover": self.failover}
|
| -
|
| - health_check = ""
|
| - if self.health_check is not None:
|
| - health_check = self.HealthCheckBody % (self.health_check)
|
| -
|
| - params = {
|
| - "name": self.name,
|
| - "type": self.type,
|
| - "weight": weight,
|
| - "body": body,
|
| - "health_check": health_check
|
| - }
|
| - return self.XMLBody % params
|
| -
|
| - def to_print(self):
|
| - rr = ""
|
| - if self.alias_hosted_zone_id is not None and self.alias_dns_name is not None:
|
| - # Show alias
|
| - rr = 'ALIAS ' + self.alias_hosted_zone_id + ' ' + self.alias_dns_name
|
| - if self.alias_evaluate_target_health is not None:
|
| - rr += ' (EvalTarget %s)' % self.alias_evaluate_target_health
|
| - else:
|
| - # Show resource record(s)
|
| - rr = ",".join(self.resource_records)
|
| -
|
| - if self.identifier is not None and self.weight is not None:
|
| - rr += ' (WRR id=%s, w=%s)' % (self.identifier, self.weight)
|
| - elif self.identifier is not None and self.region is not None:
|
| - rr += ' (LBR id=%s, region=%s)' % (self.identifier, self.region)
|
| - elif self.identifier is not None and self.failover is not None:
|
| - rr += ' (FAILOVER id=%s, failover=%s)' % (self.identifier, self.failover)
|
| -
|
| - return rr
|
| -
|
| - def endElement(self, name, value, connection):
|
| - if name == 'Name':
|
| - self.name = value
|
| - elif name == 'Type':
|
| - self.type = value
|
| - elif name == 'TTL':
|
| - 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
|
| - elif name == 'SetIdentifier':
|
| - self.identifier = value
|
| - elif name == 'EvaluateTargetHealth':
|
| - self.alias_evaluate_target_health = value.lower() == 'true'
|
| - elif name == 'Weight':
|
| - self.weight = value
|
| - elif name == 'Region':
|
| - self.region = value
|
| - elif name == 'Failover':
|
| - self.failover = value
|
| - elif name == 'HealthCheckId':
|
| - self.health_check = value
|
| -
|
| - def startElement(self, name, attrs, connection):
|
| - return None
|
|
|