Univention Bugzilla – Bug 24141
UMC-Updater-Modul: Anpassungen
Last modified: 2011-12-13 15:51:05 CET
Folgende Anpassungen sollten noch für das Updater-Modul übernommen werden: * Die Variable update/reboot/required braucht nicht durch das Modul gesetzt werden, da sie über die postup-Skripte geregelt wird. Demnach sollte "System neustarten" nur angezeigt werden, wenn diese UCR-Variable auf true gesetzt ist. Dies ist nach Paket-Updates nicht der Fall. * Es sollte noch eine Sicherheitsabfrage durchgeführt werden, wenn der Benutzer auf den Neustarten-Button klickt.
Das Updater Modul fragte aktuell alle 2 Sekunden den Repository Server, selbst wenn ich das Modul nur geöffnet habe: 25.10.11 06:04:50.012 MODULE ( INFO ) : Executing ['updater/updates/get'] 25.10.11 06:04:50.401 MODULE ( INFO ) : Executing ['updater/components/query'] 25.10.11 06:04:50.598 MODULE ( INFO ) : Executing ['updater/updates/query'] 25.10.11 06:04:51.047 MODULE ( INFO ) : Executing ['updater/installer/status'] 25.10.11 06:04:51.195 MODULE ( INFO ) : Executing ['updater/updates/get'] 25.10.11 06:04:51.573 MODULE ( INFO ) : Executing ['updater/components/query'] 25.10.11 06:04:51.672 MODULE ( INFO ) : Executing ['updater/updates/query'] 25.10.11 06:04:52.158 MODULE ( INFO ) : Executing ['updater/installer/status'] 25.10.11 06:04:52.308 MODULE ( INFO ) : Executing ['updater/updates/get'] 25.10.11 06:04:52.715 MODULE ( INFO ) : Executing ['updater/components/query'] 25.10.11 06:04:52.826 MODULE ( INFO ) : Executing ['updater/updates/query'] 25.10.11 06:04:53.281 MODULE ( INFO ) : Executing ['updater/components/serial'] 25.10.11 06:04:53.286 MODULE ( INFO ) : Executing ['updater/installer/status'] 25.10.11 06:04:53.322 MODULE ( INFO ) : Executing ['updater/updates/serial'] 25.10.11 06:04:53.461 MODULE ( INFO ) : Executing ['updater/components/query'] 25.10.11 06:04:53.558 MODULE ( INFO ) : Executing ['updater/updates/get'] 25.10.11 06:04:54.024 MODULE ( INFO ) : Executing ['updater/updates/query'] 25.10.11 06:04:54.892 MODULE ( INFO ) : Executing ['updater/installer/status'] 25.10.11 06:04:55.148 MODULE ( INFO ) : Executing ['updater/components/query'] 25.10.11 06:04:55.245 MODULE ( INFO ) : Executing ['updater/updates/get'] 25.10.11 06:04:55.715 MODULE ( INFO ) : Executing ['updater/updates/query'] 25.10.11 06:04:56.090 MODULE ( INFO ) : Executing ['updater/installer/status'] 25.10.11 06:04:56.260 MODULE ( INFO ) : Executing ['updater/updates/get'] 25.10.11 06:04:56.631 MODULE ( INFO ) : Executing ['updater/components/query'] 25.10.11 06:04:56.718 MODULE ( INFO ) : Executing ['updater/updates/query'] 25.10.11 06:04:57.265 MODULE ( INFO ) : Executing ['updater/installer/status'] 25.10.11 06:04:57.411 MODULE ( INFO ) : Executing ['updater/updates/get'] 25.10.11 06:04:57.822 MODULE ( INFO ) : Executing ['updater/components/query'] 25.10.11 06:04:57.956 MODULE ( INFO ) : Executing ['updater/updates/query'] 25.10.11 06:04:58.357 MODULE ( INFO ) : Executing ['updater/components/serial'] 25.10.11 06:04:58.369 MODULE ( INFO ) : Executing ['updater/installer/status'] 25.10.11 06:04:58.422 MODULE ( INFO ) : Executing ['updater/updates/serial'] Das sollte nur einmalig gemacht werden.
(In reply to comment #0) > * Die Variable update/reboot/required braucht nicht durch das Modul gesetzt > werden, da sie über die postup-Skripte geregelt wird. Demnach sollte "System > neustarten" nur angezeigt werden, wenn diese UCR-Variable auf true gesetzt ist. > Dies ist nach Paket-Updates nicht der Fall. Das habe ich im UMC Modul schon entfernt.
Es ist aufgefallen, dass während eines Updates der UMC-Web-Servers beendet und die Verbindung somit abbrach. Eigentlich sollte das Abändern der Rechte des Web-Server-Skriptes dies genau verhindern: ==================== ... Preparing to replace univention-management-console-web-server 1.0.134-1.129.201110272008 (using .../univention-management-console-web-server_1.0.143-1.134.201110300922_all. deb) ... Stopping Univention Management Console Web Server. done. ... ====================
(In reply to comment #3) > Es ist aufgefallen, dass während eines Updates der UMC-Web-Servers beendet und > die Verbindung somit abbrach. Eigentlich sollte das Abändern der Rechte des > Web-Server-Skriptes dies genau verhindern: > > ==================== > ... > Preparing to replace univention-management-console-web-server > 1.0.134-1.129.201110272008 (using > .../univention-management-console-web-server_1.0.143-1.134.201110300922_all. > deb) ... > Stopping Univention Management Console Web Server. > done. > ... > ==================== → das war ein Auszug aus der updater.log-Datei.
(In reply to comment #4) > (In reply to comment #3) > > Es ist aufgefallen, dass während eines Updates der UMC-Web-Servers beendet und > > die Verbindung somit abbrach. Eigentlich sollte das Abändern der Rechte des > > Web-Server-Skriptes dies genau verhindern: Im at-Job wurden die Rechte beim Web-Server nicht entfernt. Das ist jetzt korrigiert.
→ aus Bug 22898, Comment 8: > Folgende Rückmeldung, die noch behoben werden sollte: > > > 7. Wenn man mit dem Update-Modul ein Update durchgeführt hat, kommt unten > > ein Button "Zurück zur Übersicht". Der bewirkt nichts. D.h. man muss das > > Modul schliessen und wieder öffnen, um zur Übersicht zu kommen.
Created attachment 3751 [details] Rückfrage bei Paketaktualisierung Die Paketnamen und -versionsnummern sollten übersichtlicher positioniert werden.
Created attachment 3752 [details] Ergebnis eines Updateversuchs Die Paketaktualisierung aus dem letzten Screenshot wurde gestartet, ist aber abgebrochen, weil eine nichtsignierte Paketquelle verwendet wurde. Dabei sind folgende Punkte aufgefallen: - wie in Kommentar 6 angemerkt funktioniert der Button "zurück zur Übersicht" nicht - Der Text passt nicht zum Button: "Sie können jetzt zur Übersicht zurückkehren, indem Sie den 'Zurück'-Knopf drücken." ? der Button heisst "zurück zur Übersicht" Das sollte einheitlich sein, da sonst nach einem "Zurück"-Button gesucht wird. - "(Inhalt der Statusdatei: status=FAILED )" sollte nicht angezeigt werden. Die Daten aus der Statusdatei sind für das Frontend gedacht, um dem User entsprechend anzeigen zu können, in welchem Status sich das Update aktuell befindet. Im angehängten Screenshot sind sehr widersprüchliche Angaben: - Reiter "Aktualisierung läuft" ? Update läuft - "Univention Updater ist gerade aktiv" ? Update läuft - "status=FAILED" ? Update fehlgeschlagen - "Der aktuelle Vorgang...ist jetzt beendet. Er hat 0s benötigt." ? Update erfolgreich Der Update aus UCS2.4 hat fortlaufend den Status des Updates geprüft. Hatte sich der Updateprozess beendet, wurde (je nach Status aus der Statusdatei) die Überschrift von z.B. "Univention Updater ist gerade aktiv" auf "Der Updatevorgang wurde erfolgreich beendet" bzw. "Der Updatevorgang ist fehlgeschlagen" geändert. Die Reiterüberschrift sollte einen neutralen Text tragen: z.B. "Updatevorgang" Die Überschrift "Univention Updater ist gerade aktiv" sollte sich entweder automatisch ändern oder ebenfalls einen neutralen Text aufweisen ("Paket-Aktualisierungen installieren"). Falls letzteres der Fall ist, muss im Kasten "Aktueller Vorgang" ein deutlicher Hinweis (z.B. größer geschrieben) auf den aktuellen Status enthalten sein.
(In reply to comment #6) > → aus Bug 22898, Comment 8: > > > Folgende Rückmeldung, die noch behoben werden sollte: > > > > > 7. Wenn man mit dem Update-Modul ein Update durchgeführt hat, kommt unten > > > ein Button "Zurück zur Übersicht". Der bewirkt nichts. D.h. man muss das > > > Modul schliessen und wieder öffnen, um zur Übersicht zu kommen. Das sollte jetzt behoben sein. Zusätzlich wurden kleinere HTML-Fehler in dem Listing der zu aktualisierenden Pakete eingefügt, so dass die Tabelle nun richtig angezeigt wird (wegen HTML-Strict-Mode wurden die HTML-Formatierung sonst entfernt).
(In reply to comment #7) > Created an attachment (id=3751) [details] > Rückfrage bei Paketaktualisierung > > Die Paketnamen und -versionsnummern sollten übersichtlicher positioniert > werden. → siehe Comment 9, das wurde angepasst.
Eine Sache ist mir noch aufgefallen: Wenn ich ein Update starte, dann mich ab- und wieder neu anmelde, wird zwar im Updater-Modul die Log-Ansicht geöffnet, aber sie wird nicht ausgefüllt (alle UMCP-AJAX-Befehle schlagen mit Fehlercode 500 fehl). Als dann das Update abgeschlossen war, wurde die Konsole auch nicht wieder geschlossen.
(In reply to comment #11) Patch dazu hängt an #22898 Comment 10
(In reply to comment #12) > (In reply to comment #11) > Patch dazu hängt an #22898 Comment 10 Der Patch ist eingespielt. Somit sollte alles behoben sein.
Die Errata-Version wurde manuell auf 0 zurückgesetzt. Beim Einspielen des Errata-Updates via UMC-Online-Update-Modul wird das Errata-Update erneut durchgeführt und dann ein Fehlschlag verkündet: "Univention Updater Auftrag ist fehlgeschlagen" Das in UMC angezeigte Logfile zeigt keine Fehler. Die Statusdatei des Updaters sagt, dass das Update erfolgreich (status=DONE) durchlaufen wurde: root@mas60:/var/lib/univention-updater# cat univention-errata-update.status status=DONE type=NET root@mas60:/var/lib/univention-updater# Es sieht so aus, als ob der Rückgabewert falsch ausgewertet wird.
(In reply to comment #14) Bitte mal prüfen, was in der Datei /usr/share/pyshared/univention/management/console/modules/updater/__init__.py auf Zeile 960 steht: fields = line.strip().split('=') (das ist richtig) oder fields = line.split('=') (das ist falsch) Wurde durch das simulierte Update möglicherweise der Modul selbst durch eine ältere (noch fehlerbehaftete) Version überschrieben? Ich hatte das auch im Test, und habe mich gewundert, warum meine Korrekturen nichts bewirken.
Besagte Zeile habe ich in /usr/share/pyshared/univention/management/console/modules/updater/__init__.py nur in Zeile 932 gefunden: if 'statusfile' in INSTALLERS[job]: try: for line in open(INSTALLERS[job]['statusfile']): fields = line.strip().split('=') if len(fields) == 2: result['_%s_' % fields[0]] = fields[1] except: pass
(In reply to comment #15) > Wurde durch das simulierte Update möglicherweise der Modul selbst durch eine > ältere (noch fehlerbehaftete) Version überschrieben? Ich hatte das auch im > Test, und habe mich gewundert, warum meine Korrekturen nichts bewirken. Wir haben das auf der Maschine nochmal wiederholt und dabei ist kein Fehler aufgetreten. Es könnte sein, dass das ein Caching-Problem war, wobei wir uns noch nicht ganz sicher sind, welcher Teil hier gecached wurde.
(In reply to comment #0) > Folgende Anpassungen sollten noch für das Updater-Modul übernommen werden: > > * Die Variable update/reboot/required braucht nicht durch das Modul gesetzt > werden, da sie über die postup-Skripte geregelt wird. Demnach sollte "System > neustarten" nur angezeigt werden, wenn diese UCR-Variable auf true gesetzt ist. > Dies ist nach Paket-Updates nicht der Fall. → OK > * Es sollte noch eine Sicherheitsabfrage durchgeführt werden, wenn der Benutzer > auf den Neustarten-Button klickt. → OK (In reply to comment #1) > Das Updater Modul fragte aktuell alle 2 Sekunden den Repository Server, selbst > wenn ich das Modul nur geöffnet habe: > ... > Das sollte nur einmalig gemacht werden. → OK, das wird jetzt nur einmalig durchgeführt (In reply to comment #3) > Es ist aufgefallen, dass während eines Updates der UMC-Web-Servers beendet und > die Verbindung somit abbrach. Eigentlich sollte das Abändern der Rechte des > Web-Server-Skriptes dies genau verhindern: Das ist nun auch OK. Es sollten die neu hinzugekommenen Skripte enable-apache2-umc und disable-apache2-umc verwendet werden, um die Dienste neu zu starten → auslagern nach Bug 25033 (In reply to comment #6) > → aus Bug 22898, Comment 8: > > > Folgende Rückmeldung, die noch behoben werden sollte: > > > > > 7. Wenn man mit dem Update-Modul ein Update durchgeführt hat, kommt unten > > > ein Button "Zurück zur Übersicht". Der bewirkt nichts. D.h. man muss das > > > Modul schliessen und wieder öffnen, um zur Übersicht zu kommen. → OK, das funktioniert jetzt (In reply to comment #7) > Created an attachment (id=3751) [details] > Rückfrage bei Paketaktualisierung > > Die Paketnamen und -versionsnummern sollten übersichtlicher positioniert > werden. → OK (In reply to comment #8) > Created an attachment (id=3752) [details] > Ergebnis eines Updateversuchs > > Die Paketaktualisierung aus dem letzten Screenshot wurde gestartet, ist aber > abgebrochen, weil eine nichtsignierte Paketquelle verwendet wurde. Dabei sind > folgende Punkte aufgefallen: > - wie in Kommentar 6 angemerkt funktioniert der Button "zurück zur Übersicht" > nicht → OK, funktioniert jetzt > - Der Text passt nicht zum Button: > "Sie können jetzt zur Übersicht zurückkehren, indem Sie den 'Zurück'-Knopf > drücken." → der Button heisst "zurück zur Übersicht" > Das sollte einheitlich sein, da sonst nach einem "Zurück"-Button gesucht > wird. → OK, diese Texte wurde noch leicht angepasst, damit alles einheitlich ist. > - "(Inhalt der Statusdatei: status=FAILED )" sollte nicht angezeigt werden. Die > Daten aus der Statusdatei sind für das Frontend gedacht, um dem User > entsprechend anzeigen zu können, in welchem Status sich das Update aktuell > befindet. Im angehängten Screenshot sind sehr widersprüchliche Angaben: > - Reiter "Aktualisierung läuft" → Update läuft > - "Univention Updater ist gerade aktiv" → Update läuft > - "status=FAILED" → Update fehlgeschlagen > - "Der aktuelle Vorgang...ist jetzt beendet. Er hat 0s benötigt." > → Update erfolgreich → OK, das funktioniert jetzt > Der Update aus UCS2.4 hat fortlaufend den Status des Updates geprüft. Hatte > sich der Updateprozess beendet, wurde (je nach Status aus der Statusdatei) > die Überschrift von z.B. "Univention Updater ist gerade aktiv" auf "Der > Updatevorgang wurde erfolgreich beendet" bzw. "Der Updatevorgang ist > fehlgeschlagen" geändert. > > Die Reiterüberschrift sollte einen neutralen Text tragen: z.B. > "Updatevorgang" → Das ist noch nicht umgesetzt und wurde nach Bug 25038 ausgelagert. > > Die Überschrift "Univention Updater ist gerade aktiv" sollte sich entweder > automatisch ändern oder ebenfalls einen neutralen Text aufweisen > ("Paket-Aktualisierungen installieren"). Falls letzteres der Fall ist, muss > im Kasten "Aktueller Vorgang" ein deutlicher Hinweis (z.B. größer > geschrieben) auf den aktuellen Status enthalten sein. → OK, die Überschrift wird angepasst (In reply to comment #11) > Eine Sache ist mir noch aufgefallen: Wenn ich ein Update starte, dann mich ab- > und wieder neu anmelde, wird zwar im Updater-Modul die Log-Ansicht geöffnet, > aber sie wird nicht ausgefüllt (alle UMCP-AJAX-Befehle schlagen mit Fehlercode > 500 fehl). Als dann das Update abgeschlossen war, wurde die Konsole auch nicht > wieder geschlossen. → OK, das funktioniert jetzt → VERIFIED
Folgende Sachen sind doch noch aufgefallen. Frank, schau dir das doch bitte an. * Wird eine neue Komponente hinzugefügt, sind die Buttons "Zurück zur Übersicht" oder auch "Änderungen anwenden" nicht mehr wirksam (in Chrome, keine JavaScript-Fehlermeldung) * Der Inhalt der Komponentenseite (mit den beiden Titlepanes) ist nicht scrollbar (dem Form kann die Property "scrollable: true" bei der Instanziierung übergeben werden, um dies zu beheben) * Wenn man bei Online-Updates->Komponenten auf "Neu" geht und dann (ohne irgendein Feld auszuwählen) auf "Änderungen anwenden" passiert folgendes: - Es erscheint ein Tooltip, mit "Der Komponentenname muss angegeben werden", - Die Seite bleibt im "beschäftigt"-Modus, d.h. Animation und ausgegraut. Man kann dann nirgendwo etwas eingeben und dadurch den Fehler beheben. Einzige Möglichkeit ist "zurück zur Übersicht" und ein neuer Versuch. (→ Fehlt da ggf. in der then-Methode des dojo.Deferred-Objektes der Error-Handler, der this.standby(false) aufruft?) Sonst haben wir das ja so, dass ein Popup kommt, das erläutert, wo welche Felder fehlen, das wäre hier eigentlich auch sinnvoll.
(In reply to comment #19) > Folgende Sachen sind doch noch aufgefallen. Frank, schau dir das doch bitte an. > > * Wird eine neue Komponente hinzugefügt, sind die Buttons "Zurück zur > Übersicht" oder auch "Änderungen anwenden" nicht mehr wirksam (in Chrome, keine > JavaScript-Fehlermeldung) > > * Der Inhalt der Komponentenseite (mit den beiden Titlepanes) ist nicht > scrollbar (dem Form kann die Property "scrollable: true" bei der Instanziierung > übergeben werden, um dies zu beheben) Habe ich jetzt verstanden, der erste Fehler ist der gleiche wie der zweite. Das Formular überlappt (mit seiner margin-/padding-bottom) die unteren beiden Buttons, wodurch man nicht mehr auf sie klicken kann.
(In reply to comment #19) > ... > * Wenn man bei Online-Updates->Komponenten auf "Neu" geht und dann > (ohne irgendein Feld auszuwählen) auf "Änderungen anwenden" passiert > folgendes: > ... Auch leere Eingabefelder werden an das Backend über den Befehl put gesendet.
(In reply to comment #19) > * Wenn man bei Online-Updates->Komponenten auf "Neu" geht und dann > (ohne irgendein Feld auszuwählen) auf "Änderungen anwenden" passiert > folgendes: > - Es erscheint ein Tooltip, mit "Der Komponentenname muss angegeben werden", > - Die Seite bleibt im "beschäftigt"-Modus, d.h. Animation und ausgegraut. > Man kann dann nirgendwo etwas eingeben und dadurch den Fehler beheben. Einzige > Möglichkeit ist "zurück zur Übersicht" und ein neuer Versuch. > (→ Fehlt da ggf. in der then-Methode des dojo.Deferred-Objektes der > Error-Handler, der this.standby(false) aufruft?) > Sonst haben wir das ja so, dass ein Popup kommt, das erläutert, wo welche > Felder fehlen, das wäre hier eigentlich auch sinnvoll. Der Error-Handler ist da und auch standby(false) wird gerufen, aber leider nicht am richtigen Objekt... wenn wir den Speichern-Knopf nach außerhalb des Forms verlagern, müssen wir die Standby-Logik natürlich nicht am Form machen, sondern an der Page, sonst ist der Form in Standby und der Submit-Knopf kann trotzdem gedrückt werden.
Created attachment 3935 [details] Behebt angesprochene Mängel * Nach Submit mit fehlerhaften Feldern wird der Standby-Zustand jetzt auch wieder zurückgenommen (Comment #19) * das Form-Element ist jetzt 'scrollable', dadurch werden die Knöpfe nicht mehr verdeckt (Comment #19) Was in Comment #21 angesprochen ist, habe ich nicht verändert: es ist hier so, daß die gesamte Validierung in Python gemacht wird, und die liefert ja korrektes Verhalten. (das habe ich deshalb gewählt, weil ich die CheckBox Elemente in JS nicht validieren kann, und weil die Validierung in JS keine Bedingungen zuläßt, an denen mehrere Felder beteiligt sind)
(In reply to comment #23) > Created an attachment (id=3935) [details] > Behebt angesprochene Mängel > > * Nach Submit mit fehlerhaften Feldern wird der Standby-Zustand jetzt auch > wieder zurückgenommen (Comment #19) > * das Form-Element ist jetzt 'scrollable', dadurch werden die Knöpfe nicht mehr > verdeckt (Comment #19) > > Was in Comment #21 angesprochen ist, habe ich nicht verändert: es ist hier so, > daß die gesamte Validierung in Python gemacht wird, und die liefert ja > korrektes Verhalten. (das habe ich deshalb gewählt, weil ich die CheckBox > Elemente in JS nicht validieren kann, und weil die Validierung in JS keine > Bedingungen zuläßt, an denen mehrere Felder beteiligt sind) → OK, das ist jetzt alles in Ordnung, der Patch wurde übernommen. univention-updater (7.0.120-1) unstable; urgency=low . * UMC: fixed problems when entering a new component with empty fields, added scollable property to component form (Bug #24141)
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"