ec2 inventory route53 tagging:

* make filtering more comprehensive
* add checks against missing route53 zone exclusion option
This commit is contained in:
Herby Gillot 2013-09-23 21:40:18 -04:00
parent 91785ba045
commit 6ddebb3fad
2 changed files with 10 additions and 8 deletions

View file

@ -36,11 +36,11 @@ vpc_destination_variable = ip_address
# To tag instances on EC2 with the resource records that point to them from # To tag instances on EC2 with the resource records that point to them from
# Route53, uncomment and set 'route53' to True. # Route53, uncomment and set 'route53' to True.
#
# Optionally, you can specify the list of zones to exclude looking up in
# 'route53_excluded_zones' as a comma-seperated list.
route53 = False route53 = False
route53_excluded_zones =
# Additionally, you can specify the list of zones to exclude looking up in
# 'route53_excluded_zones' as a comma-seperated list.
# route53_excluded_zones = samplezone1.com, samplezone2.com
# API calls to EC2 are slow. For this reason, we cache the results of an API # API calls to EC2 are slow. For this reason, we cache the results of an API
# call. Set this to the path you want cache files to be written to. Two files # call. Set this to the path you want cache files to be written to. Two files

View file

@ -207,7 +207,10 @@ class Ec2Inventory(object):
# Route53 # Route53
self.route53_enabled = config.getboolean('ec2', 'route53') self.route53_enabled = config.getboolean('ec2', 'route53')
self.route53_excluded_zones = config.get('ec2', 'route53_excluded_zones', '').split(',') self.route53_excluded_zones = []
if config.has_option('ec2', 'route53_excluded_zones'):
self.route53_excluded_zones.extend(
config.get('ec2', 'route53_excluded_zones', '').split(','))
# Cache related # Cache related
cache_path = config.get('ec2', 'cache_path') cache_path = config.get('ec2', 'cache_path')
@ -422,9 +425,8 @@ class Ec2Inventory(object):
r53_conn = route53.Route53Connection() r53_conn = route53.Route53Connection()
all_zones = r53_conn.get_zones() all_zones = r53_conn.get_zones()
is_valid_zone = lambda zone: not zone.name in self.route53_excluded_zones route53_zones = [ zone for zone in all_zones if zone.name[:-1]
not in self.route53_excluded_zones ]
route53_zones = filter(is_valid_zone, all_zones)
self.route53_records = {} self.route53_records = {}