Univention Bugzilla – Bug 26528
Bibliothek für das Verwalten von AT-Jobs
Last modified: 2012-07-20 15:24:38 CEST
In Zuge von Bug 25707 wurde univention-lib mit einer Schnittstelle zur Verwaltung (Anlegen, Löschen, Abfragen) von AT-Jobs erweitert (siehe angehängte Datei). Diese kann zu 3.0-2 mit in univention-lib übernommen werden.
Created attachment 4269 [details] AT-Jobs-Modul
Created attachment 4277 [details] Updated module
Der Patch wurde integriert und zusätzlich wurde die Ergänzung für die Unterstützung von datetime-Objekten eingebaut. ChangeLog-Eintrag wurde hinzugefügt
Die Bibliothek habe ich auf dem Zielsystem gefunden in der Datei /usr/share/pyshared/univention/lib/atjobs.py. Darin steckt eine deutlich erweiterte Version des initialen Vorschlags von Alexander. Je ein Eintrag in debian/changelog und im Handbuch changelog sind vorhanden.
Ich hab noch ein paar funktionale Tests mit der neuen Bibliothek gemacht. Dabei habe ich alle exportierten Funktionen ('add', 'list', 'load', 'remove', 'reschedule', 'AtJob' ) getestet und alle funktionieren auch (siehe Protokoll unten). Der Grund für das Reopen des Bugs ist ein unerwartetes Verhalten der Bibliothek. Im Protokoll unten habe ich einen reschedule gemacht, obwohl der entsprechende job schon läuft. Daraufhin verschwindet der job aus der Liste der verwalteten jobs. Ich hätte eher eine Fehlermeldung erwartet (weil laufende jobs nicht rescheduled werden dürfen). Stattdessen verschwindet der job. Ist das so beabsichtigt, oder ist das ein Verständnis-Problem auf meiner Seite oder ist das ein Bug ? >>> import univention.lib.atjobs as at >>> j = at.AtJob >>> at.list() [] >>> import time >>> at.add("sleep 1000", time.time()+5) Job #9 (running) >>> at.list() [Job #9 (running)] >>> at.remove(9) >>> at.list() [] >>> at.add("sleep 1000") Job #18 (running) >>> at.list() [Job #18 (running)] >>> at.reschedule(18, time.time()+1000) Job #19 (2012-06-14 23:15) >>> at.remove(19) >>> at.list() [] >>> at.add("sleep 1000") Job #24 (running) >>> at.reschedule(24) Job #25 (running) >>> at.list() []
(In reply to comment #5) > Der Grund für das Reopen des Bugs ist ein unerwartetes Verhalten der > Bibliothek. Im Protokoll unten habe ich einen reschedule gemacht, obwohl der > entsprechende job schon läuft. Daraufhin verschwindet der job aus der Liste der > verwalteten jobs. Ich hätte eher eine Fehlermeldung erwartet (weil laufende > jobs nicht rescheduled werden dürfen). Stattdessen verschwindet der job. Ist > das so beabsichtigt, oder ist das ein Verständnis-Problem auf meiner Seite oder > ist das ein Bug ? Da at das Löschen laufender Jobs erlaubt finde ich das vollkommen ok, wenn die Bibliothek das auch erlaubt. Man könnte einen Enhancement-Bug anlegen, dass per Option sowas verhindert wird.
Ok, ich bewerte meinen Test mit dem reschedule also als eine Anweisung an die Bibliothek, den bereits laufenden job abzubrechen und damit ist das beobachtete Verhalten dann korrekt.
UCS 3.0-2 has been released: http://forum.univention.de/viewtopic.php?f=54&t=1905 If this error occurs again, please use "Clone This Bug".