diff --git a/plugins/inventory/ec2.py b/plugins/inventory/ec2.py index 8674af280fc..504a693197c 100755 --- a/plugins/inventory/ec2.py +++ b/plugins/inventory/ec2.py @@ -181,9 +181,9 @@ class Ec2Inventory(object): self.eucalyptus_host = None self.eucalyptus = False if config.has_option('ec2', 'eucalyptus'): - self.eucalyptus = config.getboolean('ec2', 'eucalyptus') + self.eucalyptus = config.getboolean('ec2', 'eucalyptus') if self.eucalyptus and config.has_option('ec2', 'eucalyptus_host'): - self.eucalyptus_host = config.get('ec2', 'eucalyptus_host') + self.eucalyptus_host = config.get('ec2', 'eucalyptus_host') # Regions self.regions = [] @@ -236,16 +236,23 @@ class Ec2Inventory(object): ''' Makes an AWS EC2 API call to the list of instances in a particular region ''' - if self.eucalyptus: - conn = boto.connect_euca(host=self.eucalyptus_host) - conn.APIVersion = '2010-08-31' - else: - conn = ec2.connect_to_region(region) - - reservations = conn.get_all_instances() - for reservation in reservations: - for instance in reservation.instances: - self.add_instance(instance, region) + try: + if self.eucalyptus: + conn = boto.connect_euca(host=self.eucalyptus_host) + conn.APIVersion = '2010-08-31' + else: + conn = ec2.connect_to_region(region) + + reservations = conn.get_all_instances() + for reservation in reservations: + for instance in reservation.instances: + self.add_instance(instance, region) + + except boto.exception.BotoServerError as e: + if not self.eucalyptus: + print "Looks like AWS is down again:" + print e + sys.exit(1) def get_instance(self, region, instance_id):