def delete_default_VPC()

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"