in source/Lambda/innovation_delete_default_vpcs.py [0:0]
def delete_default_VPC(credentials):
ec2 = boto3.client('ec2',
aws_access_key_id=credentials['AccessKeyId'],
aws_secret_access_key=credentials['SecretAccessKey'],
aws_session_token=credentials['SessionToken'],
region_name=boto3.session.Session().region_name, config=config)
desc_vpc = False
iters = 0
while desc_vpc is False and iters < VPC_CHECK_MAX_RETRIES:
iters = iters+1
try:
default_vpc = ec2.describe_vpcs()
desc_vpc = True
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == 'OptInRequired':
logger.error("Caught exception 'OptInRequired', waiting for VPCs to be available: \n %s, %s", e, traceback.format_exc())
else:
logger.error("Error while fetching VPCs: \n %s, %s", e, traceback.format_exc())
raise
desc_vpc = False
time.sleep(10)
if desc_vpc is False:
message = {'MESSAGE': 'Exception occured while fetching default VPCs', 'FILE': __file__.split('/')[-1],
'METHOD': inspect.stack()[0][3]}
logger.exception(message)
raise Exception("Error occured while fetching default VPCs")
try:
del_main(credentials, ec2)
except Exception as e:
raise
return "Default VPCs deleted"