diff --git a/contrib/inventory/ec2.py b/contrib/inventory/ec2.py index 7b3c6d44a8..f2d2e62415 100755 --- a/contrib/inventory/ec2.py +++ b/contrib/inventory/ec2.py @@ -623,6 +623,13 @@ class Ec2Inventory(object): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' + if not HAS_BOTO3: + self.fail_with_error("Working with RDS instances requires boto3 - please install boto3 and try again", + "getting RDS instances") + + client = ec2_utils.boto3_inventory_conn('client', 'rds', region, **self.credentials) + db_instances = client.describe_db_instances() + try: conn = self.connect_to_aws(rds, region) if conn: @@ -630,7 +637,14 @@ class Ec2Inventory(object): while True: instances = conn.get_all_dbinstances(marker=marker) marker = instances.marker - for instance in instances: + for index, instance in enumerate(instances): + # Add tags to instances. + instance.arn = db_instances['DBInstances'][index]['DBInstanceArn'] + tags = client.list_tags_for_resource(ResourceName=instance.arn)['TagList'] + instance.tags = {} + for tag in tags: + instance.tags[tag['Key']] = tag['Value'] + self.add_rds_instance(instance, region) if not marker: break