Files
freeipa/ipalib/plugins
Petr Viktorin 9960149e3f Rework the CallbackInterface
Fix several problems with the callback interface:
- Automatically registered callbacks (i.e. methods named
    exc_callback, pre_callback etc) were registered on every
    instantiation.
    Fix: Do not register callbacks in __init__; instead return the
    method when asked for it.
- The calling code had to distinguish between bound methods and
    plain functions by checking the 'im_self' attribute.
    Fix: Always return the "default" callback as an unbound method.
    Registered callbacks now always take the extra `self` argument,
    whether they happen to be bound methods or not.
    Calling code now always needs to pass the `self` argument.
- Did not work well with inheritance: due to the fact that Python
    looks up missing attributes in superclasses, callbacks could
    get attached to a superclass if it was instantiated early enough. *
    Fix: Instead of attribute lookup, use a dictionary with class keys.
- The interface included the callback types, which are LDAP-specific.
    Fix: Create generic register_callback and get_callback mehods,
    move LDAP-specific code to BaseLDAPCommand

Update code that calls the callbacks.
Add tests.
Remove lint exceptions for CallbackInterface.

* https://fedorahosted.org/freeipa/ticket/2674
2012-06-14 11:09:43 +02:00
..
2010-12-20 17:19:53 -05:00
2012-04-08 16:48:54 -04:00
2012-05-31 20:16:29 -04:00
2012-06-14 11:09:43 +02:00
2012-04-03 16:19:59 -04:00
2012-06-06 22:12:22 -04:00
2012-06-06 21:57:12 -04:00
2012-04-19 15:22:49 +02:00
2010-12-20 17:19:53 -05:00
2012-06-05 08:51:30 +02:00
2012-01-12 05:46:09 -05:00
2011-08-29 21:26:23 -04:00
2011-08-29 21:26:23 -04:00
2012-06-06 21:57:12 -04:00
2010-12-20 17:19:53 -05:00