Univention Bugzilla – Bug 23483
LDAP-Schema für Mail-Dienste erstellen
Last modified: 2011-12-13 15:50:53 CET
Zu UCS3 sollen die Kolab-LDAP-Schemata entfernt werden bzw. entfernbar sein. Dies bedeutet, dass die Maildienste auf neue LDAP-Objektklassen und teilweise auch LDAP-Attribute ausweichen müssen. Da LDAP-Attribute einen eindeutigen Namen haben müssen, werden einige Attribute, die ausschließlich im Kolab-Schema vorhanden sind, einen neuen Namen erhalten, da es sonst während der Parallelinstallation zu Namenskonflikten kommen würde.
Vorschlag für die neue Objektklasse univentionMailSharedFolder, die aus den beiden alten Objektklassen kolabSharedFolder und univentionKolabSharedFolder hervorgeht: kolabSharedFolder + univentionKolabSharedFolder ==> univentionMailSharedFolder Attribute von univentionKolabSharedFolder: - mailPrimaryAddress - mailAlternativeAddress - univentionKolabUserNamespace - univentionKolabSharedFolderDeliveryAddress - univentionKolabSharedFolderType Attribute von kolabSharedFolder: - acl - cyrus-userquota - kolabHomeServer - kolabDeleteflag Attribute von univentionMailSharedFolder: - mailPrimaryAddress - mailAlternativeAddress - univentionMailUserNamespace (s/Kolab/Mail/) - univentionMailSharedFolderDeliveryAddress (s/Kolab/Mail/) - univentionMailACL (ehemals "acl") - univentionMailUserQuota (ehemals "cyrus-userquota") - univentionMailHomeServer (ehemals "kolabHomeServer")
Vorschlag für die neue Objektklasse univentionMailList, die aus der alten Objektklasse univentionKolabGroup hervorgeht: univentionKolabGroup ==> univentionMailList Attribute von univentionKolabGroup: - mailPrimaryAddress - description - univentionKolabMember - univentionAllowedEmailGroups - univentionAllowedEmailUsers Attribute von univentionMailList: - mailPrimaryAddress - description - univentionMailListMember (ehemals univentionKolabMember) - univentionAllowedEmailGroups - univentionAllowedEmailUsers
Vorgesehene OID für Objektklasse univentionMailSharedFolder: 1.3.6.1.4.1.10176.1010.2.90 Vorgesehene OIDs für die notwendigen Attribute: 1.3.6.1.4.1.10176.1010.1.90+x Vorgesehene OID für Objektklasse univentionMailList: 1.3.6.1.4.1.10176.1010.2.100 Vorgesehene OIDs für die notwendigen Attribute: 1.3.6.1.4.1.10176.1010.1.100+x
Die entsprechenden UDM-Module und Listener-Module sind entsprechend an das neue LDAP-Schema anzupassen. Ebenso sollten die Postfix-LDAP-Filter noch einmal geprüft werden.
Das alte Schema "univentionKolabInetOrgPerson" enthält keine für UCS3 relevanten Attribute und wird daher nicht übernommen: - univentionKolabVacationActive - univentionKolabVacationText - univentionKolabVacationNoReactDomain - univentionKolabForwardActive - univentionKolabDeliveryToFolderName - univentionKolabDisableSieve - univentionKolabDeliveryToFolderActive Die Objektklasse "univentionMailDomainname" wurde 1 zu 1 (inkl. OID) aus dem ehemaligen Schema "univention-kolab2.schema" übernommen. In dem legacy-Paket ist die Objektklasse nicht enthalten, da sie weiterhin von univention-ldap-config ausgeliefert wird. Enthaltene Attribute in "univentionMailDomainname": - cn Der Objektklasse "univentionMail" wurden folgende Attribute hinzugefügt: - univentionMailHomeServer (ehemals "kolabHomeServer") - univentionMailUserQuota (ehemals "cyrus-userquota")
Es muss noch geprüft werden, für welche Attribute ein LDAP-Index benötigt wird.
(In reply to comment #6) > Es muss noch geprüft werden, für welche Attribute ein LDAP-Index benötigt wird. univentionCanonicalRecipientRewriteEnabled und univentionMailHomeServer wurden in den Index aufgenommen: - univentionCanonicalRecipientRewriteEnabled: nur equality - univentionMailHomeServer: equality und presence Die folgenden Attribute werden nur bei der Verwendung von Canonical Maps benötigt und werden daher per Default nicht in den Index aufgenommen: - univentionCanonicalSenderRewriteEnabled - univentionInternalAlternativeMailAddress - univentionInternalPrimaryMailAddress - univentionPublicAlternativeMailAddress - univentionPublicPrimaryMailAddress
(In reply to comment #4) > Die entsprechenden UDM-Module und Listener-Module sind entsprechend an das neue > LDAP-Schema anzupassen. Ebenso sollten die Postfix-LDAP-Filter noch einmal > geprüft werden. Die Anpassung der UDM-Module wird über Bug 22873 durchgeführt. Die Anpassung der Listener-Module wird über Bug 23526 durchgeführt. Die Migration der Daten wird über Bug 23522 bearbeitet. Changelog-Eintrag fehlt noch. Soll in dem Changelogeintrag die Liste der alten und neuen Attribute enthalten sein?
Das Kolab-Schema wurde in das neue Paket univention-legacy-kolab-schema verschoben. Changelogeintrag wurde erstellt; dieser muss/wird noch erweitert, wenn der Updatepfad klar ist
> Das alte Schema "univentionKolabInetOrgPerson" enthält keine für UCS3 > relevanten Attribute und wird daher nicht übernommen: OK > Die Objektklasse "univentionMailDomainname" wurde 1 zu 1 (inkl. OID) aus dem > ehemaligen Schema "univention-kolab2.schema" übernommen. OK > Der Objektklasse "univentionMail" wurden folgende Attribute hinzugefügt: > univentionMailHomeServer (ehemals "kolabHomeServer") > univentionMailUserQuota (ehemals "cyrus-userquota") OK > univentionCanonicalRecipientRewriteEnabled und univentionMailHomeServer wurden > in den Index aufgenommen: > - univentionCanonicalRecipientRewriteEnabled: nur equality > - univentionMailHomeServer: equality und presence OK > univentionMailSharedFolder (kolabSharedFolder + univentionKolabSharedFolder ) OK > univentionMailList (univentionKolabGroup) OK Changelog Eintrag vorhanden. UDM Modul und Listener werden an anderer Stelle geprüft.
Ich habe einen Master mit Kolab aktualisiert auf UCS 3.0 und anschließend das paket univention-legacy-kolab-schema installiert. Dabei trat folgende Fehlermeldung auf: Multifile: /etc/ldap/slapd.conf WARNING! Check file permissions! OVER: Loading Translog Overlay OVER: db_init OVER: Configuring Translog Overlay OVER: Configured Translog Overlay to use file "/var/lib/univention-ldap/listener/listener" UNKNOWN attributeDescription "UNIVENTIONDEFAULTKOLABHOMESERVER" inserted. OVER: db_close OVER: db_destroy Check database: done Starting ldap server(s): slapd. .
Die LDAP-Objekte mit Objektklasse "univentionDefault" verwenden in UCS 2.4 das Attribut "univentionDefaultKolabHomeServer". In UCS 2.4-4 muss daher während des Updates und nachdem das Schema kolab-transition hinzugefügt wurde, die neue Objektklasse "univentionDefaultKolab" an diese Objekte angeheftet werden. Nach dem Update auf UCS3 können dann Attribut ("univentionDefaultKolabHomeServer") und Objektklasse ("univentionDefaultKolab") sauber entfernt bzw. auf das neue KolabSys-Schema migriert werden, sofern das Attribut dort noch benötigt wird. Durch das neue Schema-File "kolab-transition" wird jetzt die Fehlermeldung "UNKNOWN attributeDescription "UNIVENTIONDEFAULTKOLABHOMESERVER" inserted." vermieden. univention-legacy-kolab-schema (1.0.2-1) unstable; urgency=low univention-ldap (8.0.39-2) unstable; urgency=low
Die Anpassung in UCS 2.4-4 wird über Bug 23788 durchgeführt.
Die QA wird geschoben bis (a) das Update wieder funktioniert und (b) der Update Pfad klar ist.
Das Schema-Paket ist noch kaputt.
Die Installation von univention-legacy-kolab-schema auf einem UCS 2.4-4 DC Backup schlägt zur Zeit fehl mit folgender Meldung: Richte python-univention-lib ein (1.0.34-1.49.201110221954) ... Richte python-univention-config-registry ein (7.0.27-1.364.201110251817) ... Richte univention-config ein (7.0.27-1.364.201110251817) ... Installiere neue Version der Konfigurationsdatei /etc/bash_completion.d/univention-config-registry ... Richte univention-legacy-kolab-schema ein (1.0.3-2.11.201110221618) ... Multifile: /etc/ldap/slapd.conf /var/lib/dpkg/info/univention-legacy-kolab-schema.postinst: line 41: /usr/share/univention-lib/all.sh: Datei oder Verzeichnis nicht gefunden dpkg: Fehler beim Bearbeiten von univention-legacy-kolab-schema (--configure): Unterprozess post-installation script gab den Fehlerwert 1 zurück
Comment 16 bezieht sich auf die Vorinstallation des univention-legacy-kolab-schema Pakets aus UCS 3.0 , das klappt aber sowieso nicht, weil dann python2.6 gezogen wird und danach das univention-upgrade nicht mehr funktioniert.
In kolab-transition.schema sollte die neue Objektklasse univentionDefaultKolab nicht die gleiche OID wie univentionDefault bekommen. Damit das slapd-Update auf einem DC Backup nicht abbricht, sollte diese Objektklasse vermutlich an das Objekt im LDAP hinzugefügt werden, welches das Attribut univentionDefaultKolabHomeServer gesetzt hat, sonst erhält man während des slapadd "attribute 'univentionDefaultKolabHomeServer' not allowed".
(In reply to comment #12) > Die LDAP-Objekte mit Objektklasse "univentionDefault" verwenden in UCS 2.4 das > Attribut "univentionDefaultKolabHomeServer". In UCS 2.4-4 muss daher während > des Updates und nachdem das Schema kolab-transition hinzugefügt wurde, die neue > Objektklasse "univentionDefaultKolab" an diese Objekte angeheftet werden. > > Nach dem Update auf UCS3 können dann Attribut > ("univentionDefaultKolabHomeServer") > und Objektklasse ("univentionDefaultKolab") sauber entfernt bzw. auf das neue > KolabSys-Schema migriert werden, sofern das Attribut dort noch benötigt wird. > > Durch das neue Schema-File "kolab-transition" wird jetzt die Fehlermeldung > "UNKNOWN attributeDescription "UNIVENTIONDEFAULTKOLABHOMESERVER" inserted." > vermieden. Diese Änderung wurde wieder zurückgängig gemacht. univentionDefaultKolabHomeServer wird jetzt wieder an der Objektklasse univentionDefault aus univention-ldap mitgebracht und wird dann ggf. zu UCS 4 entfernt.
Im preup.sh muss geprüft werden, ob das Template /etc/univention/templates/files/etc/ldap/slapd.conf.d/10univention-ldap-server_schema modifiziert wurde. Anderenfalls wird während des Updates der LDAP-Server aufgrund fehlendem Schemafiles ausfallen.
(In reply to comment #20) > Im preup.sh muss geprüft werden, ob das Template > /etc/univention/templates/files/etc/ldap/slapd.conf.d/10univention- > ldap-server_schema modifiziert wurde. Anderenfalls wird während des Updates > der LDAP-Server aufgrund fehlendem Schemafiles ausfallen. Diese Prüfung wurde jetzt im preup.sh von univention-updater eingefügt. univention-updater (7.0.67-1) unstable; urgency=low
branches/ucs-3.0/ucs/base/univention-updater/script/preup.sh +conffile_is_unmodified () { + # conffile_is_unmodified <conffile> [<packagename or other arguments for dpkg-query> ...] + # returns exitcode 0 if given conffile is unmodified + # Note: $1 has to be sed regex compliant! + dpkg-query -W -f '${Conffiles}\n' "$@" | sed -nre "s,^ ($1) ([0-9a-f]+)( .*)?$,\2 \1,p" | md5sum -c - >&3 Das "$@" und das "$1" vertragen sich nicht.
(In reply to comment #22) > Das "$@" und das "$1" vertragen sich nicht. Fixed. Ebenso wurde ein Handling eingebaut, welches mit mehreren md5sums für ein Conffile umgehen kann. univention-updater (7.0.71-1) unstable; urgency=low
(In reply to comment #21) > (In reply to comment #20) > > Im preup.sh muss geprüft werden, ob das Template > > /etc/univention/templates/files/etc/ldap/slapd.conf.d/10univention- > > ldap-server_schema modifiziert wurde. Anderenfalls wird während des Updates > > der LDAP-Server aufgrund fehlendem Schemafiles ausfallen. > > Diese Prüfung wurde jetzt im preup.sh von univention-updater eingefügt. > > univention-updater (7.0.67-1) unstable; urgency=low Das funktioniert auf einem Memberserver noch nicht, siehe Beschreibung an Bug #24352.
*** Bug 24352 has been marked as a duplicate of this bug. ***
Der Test wird jetzt nur noch auf DC-Systemen durchgeführt. univention-updater (7.0.81-1) unstable; urgency=low
OK - Installation von univention-legacy-kolab-schema auf UCS 3.0 OK - univentionDefaultKolabHomeServer bzw. univentionDefault wie in UCS 2.4 OK - univention-legacy-kolab-schema wird beim Update auf 2.4-4 installiert OK - Test auf Änderungen in 10univention-ldap-server_schema wird auf DC's ausgeführt, bei Änderungen wird das Update abgebrochen OK - ldap Indizes werden bei Installation von u-l-k-s bzgl. kolab angepasst
Traceback (most recent call last): File "/usr/share/univention-directory-manager-tools/univention-object-type-migrate", line 115, in <module> if not main(options): File "/usr/share/univention-directory-manager-tools/univention-object-type-migrate", line 102, in main uldap.modify(dn, changes) File "/usr/lib/pymodules/python2.6/univention/uldap.py", line 480, in modify self.lo.modify_s(dn, ml) File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 322, in modify_s return self.result(msgid,all=1,timeout=self.timeout) File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 422, in result res_type,res_data,res_msgid = self.result2(msgid,all,timeout) File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 426, in result2 res_type, res_data, res_msgid, srv_ctrls = self.result3(msgid,all,timeout) File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 432, in result3 ldap_result = self._ldap_call(self._l.result3,msgid,all,timeout) File "/usr/lib/python2.6/dist-packages/ldap/ldapobject.py", line 96, in _ldap_call result = func(*args,**kwargs) ldap.OBJECT_CLASS_VIOLATION: {'info': "attribute 'kolabHomeServer' not allowed", 'desc': 'Object class violation'} Custom postupdate script /var/lib/local-postup.sh not found
Die Kolab-Attribute der Objektklasse univentionUserTemplate werden in UCS 2.4-4 auch in der Auxiliary-Objektklasse univentionLegacyUserTemplate im Paket univention-legacy-kolab-schema verwendet/mitgebracht. Während des Updates 2.4-3→2.4-4 wird die neue Objektklasse auf dem DC Master automatisch an alle Objekte mit der Objektklasse univentionUserTemplate hinzugefügt. In UCS 3.0 sind die Kolab-Attribute von univentionUserTemplate entfernt worden, so dass die Attribute dann nur noch von univentionLegacyUserTemplate referenziert werden. Während des Updates 2.4-3 auf 2.4-4 wird diese Anpassung von dem Skript /usr/share/univention-legacy-kolab-schema/add-legacy-objectclasses durchgeführt. Dieses Skript wird auch noch einmal vom UCS 3.0 preup.sh aufgerufen, um Objekte, die mit 2.4-4 erstellt wurden, vor dem Update anzupassen.
univention-legacy-kolab-schema (2.0.1-1) unstable; urgency=low Im Test wurde die Objektklasse erfolgreich an die Benutzertemplates hinzugefügt. Tracebacks sind nicht mehr aufgetreten.
Die Klasse "univentionLegacyUserTemplate" wird auch beim Update auf 3.0-0 an Objekte mit "univentionUserTemplate" hinzugefügt (das UserTemplate wurde nach dem Update auf 2.4-4 angelegt). slapd Funktioniert nach dem Update (ldapsearch, slapcat)
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"