def create_virtual_mfa()

in force_user_mfa/ForceUserMFA.py [0:0]


def create_virtual_mfa(newUserName, newUserArn):
    """Summary

    Args:
        newUserName (TYPE): Description
        newUserArn (TYPE): Description

    Returns:
        TYPE: Description
    """
    print("Creating virtual MFA token")
    deviceName = newUserName + '-MFA'
    # Try to delete token first to avoid conflict/stale tokens
    try:
        deviceArn = newUserArn + '-MFA'
        response = IAM_CLIENT.delete_virtual_mfa_device(
            SerialNumber=deviceArn
        )
    except:
        pass
    # Try to create new token, we will try 5 times before giving up
    tries = 0
    while tries < 5:
        try:
            response = IAM_CLIENT.create_virtual_mfa_device(
                VirtualMFADeviceName=deviceName
            )
            break
    # Try one more time if fails, could be race issue with delete
        except:
            time.sleep(tries + 1)
            response = str(sys.exc_info()[0])
    if "SerialNumber" in str(response):
        return response
    else:
        return "FailedToCreateToken"