From 6ddebb3fadda0b68c3e357998aff5ba5415a27b0 Mon Sep 17 00:00:00 2001 From: Herby Gillot Date: Mon, 23 Sep 2013 21:40:18 -0400 Subject: [PATCH] ec2 inventory route53 tagging: * make filtering more comprehensive * add checks against missing route53 zone exclusion option --- plugins/inventory/ec2.ini | 8 ++++---- plugins/inventory/ec2.py | 10 ++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/inventory/ec2.ini b/plugins/inventory/ec2.ini index 170505fe331..01a4982d624 100644 --- a/plugins/inventory/ec2.ini +++ b/plugins/inventory/ec2.ini @@ -36,11 +36,11 @@ vpc_destination_variable = ip_address # To tag instances on EC2 with the resource records that point to them from # 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_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 # call. Set this to the path you want cache files to be written to. Two files diff --git a/plugins/inventory/ec2.py b/plugins/inventory/ec2.py index 41b87294066..c533a77b385 100755 --- a/plugins/inventory/ec2.py +++ b/plugins/inventory/ec2.py @@ -207,7 +207,10 @@ class Ec2Inventory(object): # 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_path = config.get('ec2', 'cache_path') @@ -422,9 +425,8 @@ class Ec2Inventory(object): r53_conn = route53.Route53Connection() all_zones = r53_conn.get_zones() - is_valid_zone = lambda zone: not zone.name in self.route53_excluded_zones - - route53_zones = filter(is_valid_zone, all_zones) + route53_zones = [ zone for zone in all_zones if zone.name[:-1] + not in self.route53_excluded_zones ] self.route53_records = {}