From Free IPA
SCOPE: PAGE IS OBSOLETE.
Contents |
Overview
Currently the provisioning code for different backends are clumped together in a single Python class. It uses a number of if-then statements to control the path of the code. To improve manageability the code should be refactored into several classes utilizing more object-oriented techniques.
Class Hierarchy
ProvisionBackend + LDBBackend + ExistingBackend + LDAPBackend + FDSBackend + OpenLDAPBackend
ProvisionBackend
The ProvisionBackend is the base class for all Samba backend classes. It defines some methods that should be overridden by the subclasses:
- init() - initializing backend
- start() - starting backend
- shutdown() - shutting down backend
- post_setup() - post-setup configuration
LDBBackend
The LDBBackend is the default TDB backend.
ExistingBackend
The ExistingBackend is used with an existing LDAP server.
LDAPBackend
The LDAPBackend is used with a new LDAP server. It defines a method that should be overridden by the subclasses:
- provision() - backend specific provisioning steps
FDSBackend
The FDSBackend is used with 389 DS server.
OpenLDAPBackend
The OpenLDAPBackend is used with OpenLDAP server.
Patches
- s4:provision - Added initial implementation of FDSBackend and OpenLDAPBackend
- s4:provision - Added start() method in LDAPBackend
- s4:provision - Moved provision_xxx_backend() into backend-specific provision() method
- s4:provision - Added setup() method in LDAPBackend
- s4:provision - Added constructors for FDSBackend and OpenLDAPBackend
- s4:provision - Added LDBBackend and ExistingBackend


