plan fuer das update
This commit is contained in:
parent
f963b61ebc
commit
077eb803a1
126
allgemein.txt
Normal file
126
allgemein.txt
Normal file
@ -0,0 +1,126 @@
|
||||
0:
|
||||
Zunaechst wir immer nachgesehen, ob das Repository bereits geklont wurde.
|
||||
Wenn nein, dann wird geklont. Im Master-Branch befinden sich Dateinen, die
|
||||
in allen anderen Branches gemeinsam genutzt werden. Das sollte wohl auf
|
||||
jeden Fall fuer den DeviceController gelten.
|
||||
1:
|
||||
Anfrage bei ISMAS ob neue Daten da sind. Hier faengt die ganze Sache an.
|
||||
Da man nicht weiss, on ISMAS ueberhaupt antworten wird braucht es einen
|
||||
Timer. Man kann die Sache dann auch gleich mehrfach versuchen.
|
||||
|
||||
Die Anfrage geht also per Signal an den Apism-Client. Im Signal wird der
|
||||
Zustand mitgegeben:
|
||||
|
||||
ISMAS_UPDATE_REQUEST_PENDING
|
||||
|
||||
und im Slot dann entsprechend uebernommen. Der Timer sollte nicht im Worker
|
||||
stehen, sondern im Apism-Client. Der Worker sollte damit nicht belastet
|
||||
sein. Der wird dann vom Apism-Client entsprechend benachrichtigt.
|
||||
|
||||
ISMAS_UPDATE_REQUEST_FAILURE
|
||||
ISMAS_UPDATE_REQUEST_TIMEOUT
|
||||
ISMAS_UPDATE_REQUEST_SUCCESS
|
||||
|
||||
Im 1./2.Fall wird dann ein Fehlerhandling durchgefuehrt. Insbesondere
|
||||
wird Apism ueber den DB-Kanal darueber informiert (U0003). Am Ende wie
|
||||
dann wie immer SendCmdVersion und beenden der Applikation.
|
||||
|
||||
Im Erfolgsfall muss in der Antwort der Branch enthalten sein, fuer den das
|
||||
Update durchgefuhrt werden soll. Das ist auch bereits so (Location).
|
||||
|
||||
Ein Sonderfall waere der -m-Modus, da hier niemand auf der ISMAS-Seite
|
||||
aktiv eingreift. Hier braucht es dann einen Ubergabeparameter an
|
||||
ATBUpdateTool: --branch-name
|
||||
|
||||
Normalfall ist aber die Aktivierung via ISMAS. Dann muss der in der Antwort
|
||||
enthaltene Branch zunaechst ausgecheckt werden.
|
||||
2:
|
||||
Dazu wird ein entsprechendes Signal an den GitClient gesandet.
|
||||
|
||||
GIT_CHECKOUT_BRANCH_REQUEST
|
||||
|
||||
Der GitClient sieht jetzt erstmal nach, ob es diesen Branch ueberhaupt
|
||||
gibt.
|
||||
|
||||
Falls nein:
|
||||
|
||||
GIT_CHECKOUT_BRANCH_REQUEST_FAILURE
|
||||
BRANCH_NOT_EXIST
|
||||
|
||||
Falls ja:
|
||||
der GitClient versucht nun den Branch auszuchecken.
|
||||
Geht das gut?
|
||||
Falls nein:
|
||||
|
||||
GIT_CHECKOUT_BRANCH_REQUEST_FAILURE
|
||||
BRANCH_CHECKOUT_ERROR
|
||||
|
||||
Falls ja:
|
||||
GIT_CHECKOUT_BRANCH_REQUEST_SUCCESS
|
||||
-> eventl. koennte man den Namen des Branches mitgeben
|
||||
|
||||
|
||||
Signal an den Worker. Im entsprechenden Slot wird jetzt der eigentliche
|
||||
UpdateProzess angeworfen.
|
||||
3:
|
||||
Mittels git fetch werden jetzt die Aenderungen ermittelt.
|
||||
|
||||
GIT_FETCH_UPDATES_REQUEST
|
||||
|
||||
GIT_FETCH_UPDATES_REQUEST_FAILURE
|
||||
-> Worker informieren damit Fehlerbehandlung aktiviert wird
|
||||
GIT_FETCH_UPDATES_REQUEST_SUCCESS
|
||||
|
||||
GIT_DIFF_UPDATES
|
||||
|
||||
Die Liste der geaenderten Dateien geht an den Worker. Der kann jetzt
|
||||
noch Test machen, ob das Sinn macht. Evtl. eine Statusmeldung ausgeben
|
||||
drueber was gleich passieren wird.
|
||||
4:
|
||||
Mittels git merge/pull werden nun die Dateien tatsaechlich im Branch
|
||||
aktualisiert.
|
||||
|
||||
GIT_PULL_UPDATES_REQUEST
|
||||
GIT_PULL_UPDATES_REQUEST_FAILURE
|
||||
-> Worker informieren damit Fehlerbehandlung aktiviert wird
|
||||
GIT_PULL_UPDATES_REQUEST_SUCCESS
|
||||
-> Worker informieren
|
||||
|
||||
Sind die Daten vorhanden, dann werden sie mittels rsync ins Dateisystem
|
||||
kopiert.
|
||||
|
||||
RSYNC_UPDATES
|
||||
RSYNC_UPDATES_FAILURE
|
||||
RSYNC_UPDATES_SUCCESS
|
||||
|
||||
Fuer jede kopierte Datei geht eine Nachricht raus ans ISMAS.
|
||||
5:
|
||||
Sind die Daten dann kopiert, so werden sie auf den DC kopiert (falls
|
||||
notwendig): hier gehen dann wieder Nachrichten an ISMAS raus:
|
||||
|
||||
DC_UPDATE
|
||||
DC_UPDATE_FAILURE
|
||||
DC_UPDATE_SUCCESS
|
||||
|
||||
JSON_UPDATE
|
||||
JSON_UPDATE_FAILURE
|
||||
JSON_UPDATE_SUCCESS
|
||||
|
||||
Hier fuer jedes Json-File.
|
||||
|
||||
Schliesslich noch eine Zusammenfasung an ISMAS:
|
||||
|
||||
ISMAS_UPDATE_INFO_CONFIRM
|
||||
ISMAS_UPDATE_INFO_CONFIRM_FAILURE
|
||||
-> Worker informieren damit Fehlerbehandlung aktiviert wird
|
||||
ISMAS_UPDATE_INFO_CONFIRM_SUCCESS
|
||||
|
||||
und schliesslich der abschliessende Status an ISMAS zurueckgemeldet:
|
||||
|
||||
ISMAS_CURRENT_PSA_STATUS_CONFIRM
|
||||
ISMAS_CURRENT_PSA_STATUS_CONFIRM_FAILURE
|
||||
ISMAS_CURRENT_PSA_STATUS_CONFIRM_SUCCESS
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user