'Delete tokens by user.
If the tenant_id is not None, only delete the tokens by user id under
the specified tenant.
If the trust_id is not None, it will be used to query tokens and the
user_id will be ignored.
If the consumer_id is not None, only delete the tokens by consumer id
that match the specified consumer id.
:param user_id: identity of user
:type user_id: string
:param tenant_id: identity of the tenant
:type tenant_id: string
:param trust_id: identity of the trust
:type trust_id: string
:param consumer_id: identity of the consumer
:type consumer_id: string
:returns: The tokens that have been deleted.
:raises keystone.exception.TokenNotFound: If the token doesn\'t exist.'

@abc.abstractmethod
def delete_tokens(self, user_id, tenant_id=None, trust_id=None, consumer_id=None):

    if (not CONF.token.revoke_by_id):
        return
    token_list = self._list_tokens(user_id, tenant_id=tenant_id, trust_id=trust_id, consumer_id=consumer_id)
    for token in token_list:
        try:
            self.delete_token(token)
        except exception.NotFound:
            pass
    return token_list
