Source code for keystone.trust.backends.base

# Copyright 2012 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

import abc

from keystone import exception


[docs] class TrustDriverBase(object, metaclass=abc.ABCMeta):
[docs] @abc.abstractmethod def create_trust(self, trust_id, trust, roles): """Create a new trust. :returns: a new trust """ raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def get_trust(self, trust_id, deleted=False): """Get a trust by the trust id. :param trust_id: the trust identifier :type trust_id: string :param deleted: return the trust even if it is deleted, expired, or has no consumptions left :type deleted: bool """ raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def list_trusts(self): raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def list_trusts_for_trustee(self, trustee): raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def list_trusts_for_trustor(self, trustor, redelegated_trust_id=None): raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def delete_trust(self, trust_id): raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def consume_use(self, trust_id): """Consume one use of a trust. One use of a trust is consumed when the trust was created with a limitation on its uses, provided there are still uses available. :raises keystone.exception.TrustUseLimitReached: If no remaining uses for trust. :raises keystone.exception.TrustNotFound: If the trust doesn't exist. """ raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def delete_trusts_for_project(self, project_id): """Delete all trusts for a project. :param project_id: ID of a project to filter trusts by. """ raise exception.NotImplemented() # pragma: no cover
[docs] @abc.abstractmethod def flush_expired_and_soft_deleted_trusts(self, project_id=None, trustor_user_id=None, trustee_user_id=None, date=None): """Flush expired and non-expired soft deleted trusts from the backend. :param project_id: ID of a project to filter trusts by. :param trustor_user_id: ID of a trustor_user_id to filter trusts by. :param trustee_user_id: ID of a trustee_user_id to filter trusts by. :param date: date to filter trusts by. :type date: datetime """ raise exception.NotImplemented() # pragma: no cover