This commit is contained in:
Chris Church
2014-07-14 18:12:01 -04:00
parent 5b285aced9
commit 32822f43d3
3 changed files with 26 additions and 7 deletions

View File

@@ -806,6 +806,8 @@ class RunInventoryUpdate(BaseTask):
ec2_opts.setdefault('destination_variable', 'public_dns_name') ec2_opts.setdefault('destination_variable', 'public_dns_name')
ec2_opts.setdefault('vpc_destination_variable', 'ip_address') ec2_opts.setdefault('vpc_destination_variable', 'ip_address')
ec2_opts.setdefault('route53', 'False') ec2_opts.setdefault('route53', 'False')
ec2_opts.setdefault('all_instances', 'True')
ec2_opts.setdefault('all_rds_instances', 'False')
ec2_opts.setdefault('nested_groups', 'True') ec2_opts.setdefault('nested_groups', 'True')
ec2_opts.setdefault('cache_path', tempfile.mkdtemp(prefix='awx_ec2_')) ec2_opts.setdefault('cache_path', tempfile.mkdtemp(prefix='awx_ec2_'))
ec2_opts.setdefault('cache_max_age', '300') ec2_opts.setdefault('cache_max_age', '300')

View File

@@ -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:

View File

@@ -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):
@@ -292,7 +302,7 @@ class Ec2Inventory(object):
sys.exit(1) sys.exit(1)
def get_rds_instances_by_region(self, region): def get_rds_instances_by_region(self, region):
''' Makes an AWS API call to the list of RDS instances in a particular ''' Makes an AWS API call to the list of RDS instances in a particular
region ''' region '''
try: try:
@@ -329,10 +339,9 @@ 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 '''
# For Ansible Tower, return all instances regardless of state. # Only want running instances unless all_instances is True
# Only want running instances if not self.all_instances and instance.state != 'running':
#if instance.state != 'running': return
# return
# Select the best destination address # Select the best destination address
if instance.subnet_id: if instance.subnet_id:
@@ -412,8 +421,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