def get_hosted_zone_id_for_dns_name(self, dns_name):
"""
gets the hosted_zone_id associated with the 'dns_name'.
require:
there is exactly 1 hosted zone for 'dns_name' in Route53.
ensure:
self.hosted_zone_id == hosted_zone_id
self.dns_name[-1] == '.'
self.dns_name[-1] == dns_name
"""
self.dns_name = dns_name if dns_name[-1] == '.' else '%s.' % dns_name
response = self.route53.list_hosted_zones_by_name(DNSName=self.dns_name)
zones = filter(lambda r: r['Name'] == self.dns_name, response['HostedZones'])
if len(zones) == 1:
self.hosted_zone_id = zones[0]['Id'].split('/')[-1]
elif len(zones) > 1:
raise click.UsageError('There are %d hosted zones for the DNS name %s, please specify --hosted-zone-id' % (len(zones), self.dns_name))
else:
raise click.UsageError('There is no hosted zones for the DNS name %s' % self.dns_name)
assert self.dns_name[-1] == '.'
assert self.hosted_zone_id is not None
log.info('found dns name %s for hosted zone id %s' %
(self.dns_name, self.hosted_zone_id))
route53cache.py 文件源码
python
阅读 20
收藏 0
点赞 0
评论 0
评论列表
文章目录