Hide Forgot
Cloned from launchpad blueprint https://blueprints.launchpad.net/keystone/+spec/abstract-base-class-drivers. Description: The keystone driver classes (e.g. token, provider, assignment, identity, etc) should be updated to utilize the ABCMeta (abc module) metaclass. The drivers should be actual abstract classes, since that is what they effectively are. This functionality is used in Neutron, Ironic, and Ceilometer. This will also help to push error discovery at class instantiation time instead of during a method call at some indeterminate time in the future. This also will allow base functionality to be implemented in the driver methods that can be called via super() but not break the method overriding requirement in subclasses. PEP describing the use of ABCs http://www.python.org/dev/peps/pep-3119/ This implementation should utilize six to be py3k compatible. Example: class AbstractBaseClassTest(six.with_metaclass(abc.ABCMeta)): @abc.abstractmethod def abstract_method1(int_arg): # we can do something here instead of raising # NotImplemented() return (int_arg + 1) Specification URL (additional information): None
Moving to POST based on upstream status (Implemented).