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