Bug 23483 - LDAP-Schema für Mail-Dienste erstellen
LDAP-Schema für Mail-Dienste erstellen
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Mail
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0 - RC
Assigned To: Sönke Schwardt-Krummrich
Felix Botner
:
: 24352 (view as bug list)
Depends on:
Blocks: 22873 24424
  Show dependency treegraph
 
Reported: 2011-08-31 18:42 CEST by Sönke Schwardt-Krummrich
Modified: 2011-12-13 15:50 CET (History)
4 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2011-08-31 18:42:21 CEST
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.
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2011-08-31 18:45:55 CEST
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")
Comment 2 Sönke Schwardt-Krummrich univentionstaff 2011-08-31 18:49:00 CEST
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
Comment 3 Sönke Schwardt-Krummrich univentionstaff 2011-08-31 18:52:19 CEST
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
Comment 4 Sönke Schwardt-Krummrich univentionstaff 2011-08-31 18:55:27 CEST
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.
Comment 5 Sönke Schwardt-Krummrich univentionstaff 2011-09-01 14:55:34 CEST
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")
Comment 6 Sönke Schwardt-Krummrich univentionstaff 2011-09-01 15:26:01 CEST
Es muss noch geprüft werden, für welche Attribute ein LDAP-Index benötigt wird.
Comment 7 Sönke Schwardt-Krummrich univentionstaff 2011-09-06 12:45:51 CEST
(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
Comment 8 Sönke Schwardt-Krummrich univentionstaff 2011-09-06 13:28:58 CEST
(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?
Comment 9 Sönke Schwardt-Krummrich univentionstaff 2011-09-22 16:53:09 CEST
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
Comment 10 Felix Botner univentionstaff 2011-09-27 10:10:20 CEST
> 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.
Comment 11 Andreas Büsching univentionstaff 2011-09-27 16:40:36 CEST
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.
.
Comment 12 Sönke Schwardt-Krummrich univentionstaff 2011-10-04 14:35:12 CEST
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
Comment 13 Sönke Schwardt-Krummrich univentionstaff 2011-10-04 14:40:47 CEST
Die Anpassung in UCS 2.4-4 wird über Bug 23788 durchgeführt.
Comment 14 Felix Botner univentionstaff 2011-10-05 15:54:02 CEST
Die QA wird geschoben bis (a) das Update wieder funktioniert und (b) der Update Pfad klar ist.
Comment 15 Sönke Schwardt-Krummrich univentionstaff 2011-10-14 11:50:23 CEST
Das Schema-Paket ist noch kaputt.
Comment 16 Arvid Requate univentionstaff 2011-10-26 11:14:54 CEST
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 17 Arvid Requate univentionstaff 2011-10-26 11:24:02 CEST
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.
Comment 18 Arvid Requate univentionstaff 2011-10-26 12:24:05 CEST
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".
Comment 19 Sönke Schwardt-Krummrich univentionstaff 2011-10-26 17:40:29 CEST
(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.
Comment 20 Sönke Schwardt-Krummrich univentionstaff 2011-10-27 11:08:10 CEST
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.
Comment 21 Sönke Schwardt-Krummrich univentionstaff 2011-10-27 12:46:07 CEST
(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
Comment 22 Philipp Hahn univentionstaff 2011-10-28 08:57:36 CEST
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.
Comment 23 Sönke Schwardt-Krummrich univentionstaff 2011-10-28 11:02:15 CEST
(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
Comment 24 Stefan Gohmann univentionstaff 2011-11-03 09:53:00 CET
(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.
Comment 25 Stefan Gohmann univentionstaff 2011-11-03 09:53:23 CET
*** Bug 24352 has been marked as a duplicate of this bug. ***
Comment 26 Sönke Schwardt-Krummrich univentionstaff 2011-11-03 15:03:51 CET
Der Test wird jetzt nur noch auf DC-Systemen durchgeführt.
univention-updater (7.0.81-1) unstable; urgency=low
Comment 27 Felix Botner univentionstaff 2011-11-04 14:27:04 CET
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
Comment 28 Sönke Schwardt-Krummrich univentionstaff 2011-11-07 13:30:39 CET
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
Comment 29 Sönke Schwardt-Krummrich univentionstaff 2011-11-07 14:58:32 CET
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.
Comment 30 Sönke Schwardt-Krummrich univentionstaff 2011-11-08 15:05:20 CET
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.
Comment 31 Felix Botner univentionstaff 2011-11-10 10:19:37 CET
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)
Comment 32 Sönke Schwardt-Krummrich univentionstaff 2011-12-13 15:50:53 CET
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"