Merge pull request #8010 from cchurch/ec2_all_instances

Add option to return all EC2/RDS instances regardless of state.
pull/8080/head
Michael DeHaan 11 years ago
commit caef3a0de2

@ -42,6 +42,14 @@ route53 = False
# 'route53_excluded_zones' as a comma-separated list. # 'route53_excluded_zones' as a comma-separated list.
# route53_excluded_zones = samplezone1.com, samplezone2.com # route53_excluded_zones = samplezone1.com, samplezone2.com
# By default, only EC2 instances in the 'running' state are returned. Set
# 'all_instances' to True to return all instances regardless of state.
all_instances = False
# By default, only RDS instances in the 'available' state are returned. Set
# 'all_rds_instances' to True return all RDS instances regardless of state.
all_rds_instances = False
# 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
# will be written to this directory: # will be written to this directory:

@ -222,6 +222,16 @@ class Ec2Inventory(object):
self.route53_excluded_zones.extend( self.route53_excluded_zones.extend(
config.get('ec2', 'route53_excluded_zones', '').split(',')) config.get('ec2', 'route53_excluded_zones', '').split(','))
# Return all EC2/RDS instances
if config.has_option('ec2', 'all_instances'):
self.all_instances = config.getboolean('ec2', 'all_instances')
else:
self.all_instances = False
if config.has_option('ec2', 'all_rds_instances'):
self.all_rds_instances = config.getboolean('ec2', 'all_rds_instances')
else:
self.all_rds_instances = False
# Cache related # Cache related
cache_dir = os.path.expanduser(config.get('ec2', 'cache_path')) cache_dir = os.path.expanduser(config.get('ec2', 'cache_path'))
if not os.path.exists(cache_dir): if not os.path.exists(cache_dir):
@ -326,8 +336,8 @@ class Ec2Inventory(object):
''' Adds an instance to the inventory and index, as long as it is ''' Adds an instance to the inventory and index, as long as it is
addressable ''' addressable '''
# Only want running instances # Only want running instances unless all_instances is True
if instance.state != 'running': if not self.all_instances and instance.state != 'running':
return return
# Select the best destination address # Select the best destination address
@ -390,8 +400,8 @@ class Ec2Inventory(object):
''' Adds an RDS instance to the inventory and index, as long as it is ''' Adds an RDS instance to the inventory and index, as long as it is
addressable ''' addressable '''
# Only want available instances # Only want available instances unless all_rds_instances is True
if instance.status != 'available': if not self.all_rds_instances and instance.status != 'available':
return return
# Select the best destination address # Select the best destination address

Loading…
Cancel
Save