Use abstract base class for credential driver

Use the abc module for managing abstract base classes in the driver
layer.

bp abstract-base-class-drivers

Change-Id: Iae65d406bdb65f5ae0fc08f0c1d4b48890eca889
This commit is contained in:
Doug Hellmann 2013-10-06 12:46:24 -04:00
parent fd2e85be29
commit c0f6653a13
1 changed files with 10 additions and 0 deletions

View File

@ -16,6 +16,10 @@
"""Main entry point into the Credentials service."""
import abc
import six
from keystone.common import dependency
from keystone.common import manager
from keystone import config
@ -41,9 +45,11 @@ class Manager(manager.Manager):
super(Manager, self).__init__(CONF.credential.driver)
@six.add_metaclass(abc.ABCMeta)
class Driver(object):
# credential crud
@abc.abstractmethod
def create_credential(self, credential_id, credential):
"""Creates a new credential.
@ -52,6 +58,7 @@ class Driver(object):
"""
raise exception.NotImplemented()
@abc.abstractmethod
def list_credentials(self, **filters):
"""List all credentials in the system applying filters.
@ -60,6 +67,7 @@ class Driver(object):
"""
raise exception.NotImplemented()
@abc.abstractmethod
def get_credential(self, credential_id):
"""Get a credential by ID.
@ -69,6 +77,7 @@ class Driver(object):
"""
raise exception.NotImplemented()
@abc.abstractmethod
def update_credential(self, credential_id, credential):
"""Updates an existing credential.
@ -78,6 +87,7 @@ class Driver(object):
"""
raise exception.NotImplemented()
@abc.abstractmethod
def delete_credential(self, credential_id):
"""Deletes an existing credential.