def METHOD_NAME(uri=None, username=None, passwd=None):
    """ by calling this method you are getting a new and unwrapped connection
        if you want to use wrapped and cached connection use the get() method
    """
    def req(credentials, user_data):
        for cred in credentials:
            if cred[0] == libvirt.VIR_CRED_AUTHNAME:
                cred[4] = username
            elif cred[0] == libvirt.VIR_CRED_PASSPHRASE:
                cred[4] = passwd.value if passwd else None
        return 0
    auth = [[libvirt.VIR_CRED_AUTHNAME, libvirt.VIR_CRED_PASSPHRASE],
            req, None]
    libvirtOpen = functools.partial(
        libvirt.openAuth, uri, auth, 0)
    return function.retry(libvirtOpen, timeout=10, sleep=0.2)