Univention Bugzilla – Bug 20645
Umbenennen von Klassengruppen/-freigaben zum Schuljahreswechsel
Last modified: 2013-06-26 14:43:58 CEST
Beim Schuljahreswechsel werden derzeit alle Schüler einer neuen Klasse zugeordnet. Damit geht einher, dass die Schüler/Lehrer auch in neuen Klassengruppen Mitglied werden. Da diese neuen Klassengruppen andere SIDs/GIDs aufweisen, besteht nach dem Schuljahreswechsel kein Zugriff mehr auf alte Dateien, die sich jetzt in anderen Verzeichnissen befinden, und es befinden sich ggf. noch alte Dateien von der "Vorgängerklasse" in der Klassenfreigabe. Es sollte eine Möglichkeit geben, Klassen umzubenennen, ohne dass die in den Freigaben vorhandenen Daten verloren gehen oder wg. anderer Zugriffsrechte nicht mehr zugreifbar sind. Dabei müssen das Listener-Modul in ucs-school-old-sharedirs entsprechend angepasst werden. Der Ablauf zum Schuljahreswechsel sollte dann in etwa wie folgt sein: - Alle Schüler aus den Klassengruppen entfernen - Klassengruppen skriptbasiert umbenennen - Alte Schüler löschen - Vorhandene Schüler modifizieren - Neue Schüler hinzufügen In einem Kundenscope wurde bereits eine projektspezifische Variante umgesetzt.
*** Bug 15034 has been marked as a duplicate of this bug. ***
Bitte Patch an Bug 15034 beachten.
Das ganze macht nur Sinn, wenn auch das Freigabe-Verzeichnis umbenannt wird. Dies ist jedoch nicht so ohne weiteres möglich. Bitte nochmal prüfen, wie es hier weitergehen soll.
Wie besprochen bitte das Umbenennen von Klassen über das Importskript testen. Dabei sollen auch die Freigaben automatisch mit umbenannt werden. Bitte prüfen, ob die Freigaben/Verzeichnisse anschließend die richtigen Rechte aufweisen.
Dies kann erst sinnvoll getestet werden, wenn Bug #26069 und Bug #26025 erfolgreich QAed wurden sind. Es gibt eine neuen Funktion/Script rename_class. Diese bekommt eine Input Datei mit den alten und neuen Klassennamen s02-4r s02-5r s02-4B s02-5B s02-3C s02-4C s02-3B s02-4B s02-2A s02-3A s02-2B s02-3B s02-1A s02-2A Die Reihenfolge ist hierbei wichtig, da die Umbenennungen entsprechend dieser durchgeführt wird. Die ältesten Klassen müssen (von Hand) gelöscht werden Das rename_class prüft im ersten Lauf die Korrektheit der Umbenennungen (also das keine Klasse auf eine vorhandene Klasse umbenannt wird). Im zweiten Schritt werden dann die Gruppen und Freigabe der Klassen umbenannt (bei Freigabe auch das Freigabeverzeichnis).
Die Verzeichnisse werden auf einem DCSlave nicht umbenannt. Es existieren anschließend Verzeichnisse mit altem und neuem Namen, die beide der "neuen" Gruppe gehören. Der Inhalt der Verzeichnisse befindet sich allerdings nur im "alten" Verzeichnis. UCS 3.0-1 Errata 39 mit UCS@school 3.0 MS1 root@dc711-01:/home/groups/klassen# touch 711-1A/711-1A root@dc711-01:/home/groups/klassen# touch 711-1B/711-1B root@dc711-01:/home/groups/klassen# root@singlemaster:~# cat klassen.txt 711-1A 711-1Aneu 711-1B 711-1Bneu root@singlemaster:~# /usr/share/ucs-school-import/scripts/rename_class klassen.txt infile is : klassen.txt Renaming of group 711-1A to 711-1Aneu successfully Renaming of share 711-1A to 711-1Aneu successfully Renaming of group 711-1B to 711-1Bneu successfully Renaming of share 711-1B to 711-1Bneu successfully root@singlemaster:~# root@dc711-01:/home/groups/klassen# ls -la 711-1* 711-1A: insgesamt 8 drwxrwx--- 2 root 711-1Aneu 4096 10. Jan 22:19 . drwxr-xr-x 16 root nogroup 4096 10. Jan 22:20 .. -rw-r--r-- 1 root root 0 10. Jan 22:19 711-1A 711-1Aneu: insgesamt 8 drwxrwx--- 2 root 711-1Aneu 4096 10. Jan 22:20 . drwxr-xr-x 16 root nogroup 4096 10. Jan 22:20 .. 711-1B: insgesamt 8 drwxrwx--- 2 root 711-1Bneu 4096 10. Jan 22:19 . drwxr-xr-x 16 root nogroup 4096 10. Jan 22:20 .. -rw-r--r-- 1 root root 0 10. Jan 22:19 711-1B 711-1Bneu: insgesamt 8 drwxrwx--- 2 root 711-1Bneu 4096 10. Jan 22:20 . drwxr-xr-x 16 root nogroup 4096 10. Jan 22:20 .. root@dc711-01:/home/groups/klassen#
Kann es sein, dass hier auch auf dem ShareHost die UCR Variable listener/shares/rename noch nicht auf true gesetzt wurde? Ein sinnvoller default dafür wird über Bug #26531 realisiert.
(In reply to comment #7) > Kann es sein, dass hier auch auf dem ShareHost die UCR Variable > listener/shares/rename noch nicht auf true gesetzt wurde? Korrekt, das war der Fall. Nach dem Setzen auf true funktioniert das Umbenennen von Klassen. root@dc711-01:/home/groups/klassen# ls -la 711-3B insgesamt 8 drwxrwx--- 2 root 711-3B 4096 11. Jan 03:42 . drwxr-xr-x 17 root nogroup 4096 11. Jan 03:40 .. -rw-r--r-- 1 root root 0 11. Jan 03:42 TestDatei root@dc711-01:/home/groups/klassen# root@singlemaster:~# /usr/share/ucs-school-import/scripts/rename_class klassen.txt infile is : klassen.txt Renaming of group 711-3B to 711-3Bneu successfully Renaming of share 711-3B to 711-3Bneu successfully root@singlemaster:~# root@dc711-01:/home/groups/klassen# ls -la 711-3B ls: Zugriff auf 711-3B nicht möglich: Datei oder Verzeichnis nicht gefunden root@dc711-01:/home/groups/klassen# ls -la 711-3Bneu/ insgesamt 8 drwxrwx--- 2 root 711-3Bneu 4096 11. Jan 03:42 . drwxr-xr-x 17 root nogroup 4096 11. Jan 03:44 .. -rw-r--r-- 1 root root 0 11. Jan 03:42 TestDatei root@dc711-01:/home/groups/klassen# → OK Konflikte werden richtig erkannt: ---[cut]--- 711-3Bneu 711-2Bneu ---[cut]--- root@singlemaster:~# /usr/share/ucs-school-import/scripts/rename_class klassen.txt infile is : klassen.txt ERROR: new share 711-2Bneu already exists (line 1: 711-3Bneu 711-2Bneu) do nothing root@singlemaster:~# ---[cut]--- 711-2Bneu 711-2B 711-3Bneu 711-2B ---[cut]--- root@singlemaster:~# /usr/share/ucs-school-import/scripts/rename_class klassen.txt infile is : klassen.txt ERROR: new share 711-2B already exists (line 2: 711-3Bneu 711-2B) do nothing root@singlemaster:~# Eine Doppelumbenennung funktioniert nicht, ist aber auch kein übliches Szenario: ---[cut]--- 711-2Bneu 711-2B 711-2B 711-2Btest ---[cut]--- root@singlemaster:~# /usr/share/ucs-school-import/scripts/rename_class klassen.txt infile is : klassen.txt Renaming of group 711-2Bneu to 711-2B successfully Renaming of share 711-2Bneu to 711-2B successfully root@singlemaster:~# > Ein sinnvoller default dafür wird über Bug #26531 realisiert. → OK Für die fehlende Beschreibung von listener/shares/rename wurde Bug 26536 angelegt. Der Changelogeintrag fehlt noch → REOPEN
Changelog Eintrag ergänzt.
→ OK
UCS@school 3.0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS@school erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"