From e59c07c1a08e5894d4d5a772e85ebdf0ac8c08a4 Mon Sep 17 00:00:00 2001 From: jamiesonio Date: Tue, 25 Sep 2018 20:55:31 -0400 Subject: [PATCH] Changes to describe_instances / describe_instances_basic: Add error handling for OptInRequired Continue on region error --- libs/aws/ec2.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/libs/aws/ec2.py b/libs/aws/ec2.py index 40a57fa..6997c68 100644 --- a/libs/aws/ec2.py +++ b/libs/aws/ec2.py @@ -86,13 +86,17 @@ def describe_instances(): # print(response) except botocore.exceptions.ClientError as e: if e.response['Error']['Code'] == 'UnauthorizedOperation': - print('{} : (UnauthorizedOperation) when calling the DescribeInstances -- sure you have ec2 permissions?' .format(AWS_ACCESS_KEY_ID)) - sys.exit() + print('{} : (UnauthorizedOperation) when calling the DescribeInstances in ({}) -- sure you have ec2 permissions?' .format(AWS_ACCESS_KEY_ID, region)) + continue elif e.response['Error']['Code'] == 'AuthFailure': - print('{} : (AuthFailure) when calling the DescribeInstances -- key is invalid or no permissions.' .format(AWS_ACCESS_KEY_ID)) - sys.exit() + print('{} : (AuthFailure) when calling the DescribeInstances in ({}) -- key is invalid or no permissions.' .format(AWS_ACCESS_KEY_ID, region)) + continue + elif e.response['Error']['Code'] == 'OptInRequired': + print('{} : (OptInRequired) Has permissions but isnt signed up for service in ({})- ' .format(AWS_ACCESS_KEY_ID, region)) + continue else: print(e) + continue if len(response['Reservations']) <= 0: print("[-] List instances allowed for {} but no results [-]" .format(region)) else: @@ -133,13 +137,17 @@ def describe_instances_basic(): response = client.describe_instances() except botocore.exceptions.ClientError as e: if e.response['Error']['Code'] == 'UnauthorizedOperation': - print('{} : (UnauthorizedOperation) when calling the DescribeInstances -- sure you have ec2 permissions?' .format(AWS_ACCESS_KEY_ID)) - sys.exit() + print('{} : (UnauthorizedOperation) when calling the DescribeInstances in ({}) -- sure you have ec2 permissions?' .format(AWS_ACCESS_KEY_ID, region)) + continue elif e.response['Error']['Code'] == 'AuthFailure': - print('{} : (AuthFailure) when calling the DescribeInstances -- key is invalid or no permissions for region.' .format(AWS_ACCESS_KEY_ID)) - sys.exit() + print('{} : (AuthFailure) when calling the DescribeInstances in ({}) -- key is invalid or no permissions.' .format(AWS_ACCESS_KEY_ID, region)) + continue + elif e.response['Error']['Code'] == 'OptInRequired': + print('{} : (OptInRequired) Has permissions but isnt signed up for service in ({})- ' .format(AWS_ACCESS_KEY_ID, region)) + continue else: print(e) + continue if len(response['Reservations']) <= 0: print("[-] List instances allowed for {} but no results [-]" .format(region)) else: