mirror of https://github.com/schoebel/mars
84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
src/bin.exe anlegen (lib.sh)
|
|
alle function Variablen local
|
|
|
|
Konzept:
|
|
Unterscheidung replay apply fetch durchgaengig
|
|
siehe marsadm_pause_cmd
|
|
Symlinknamen: apply fetch sync
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fragen:
|
|
Einstellen von hosts am besten dynamisch. Wie? Momentan mach ich das in .conf
|
|
Dateien
|
|
|
|
|
|
Doku:
|
|
- Alle globalen Variablen in .conf - Dateien
|
|
- Die Reihenfolge der default-*.conf - Dateien ist u.U. wichtig, wenn die
|
|
gegenseitig Variable referenziert werden!! Daher sollte hier eine
|
|
entsprechende <modul>_set_globals Funktion definiert sein (siehe z.B.
|
|
resource_set_globals)
|
|
- Alle globalen Variablen und alle Funktionen mit Modulname als Präfix
|
|
- Globale Arrays muessen mit declare -g deklariert werden, da die Variablen via
|
|
source innerhalb einer Funktion bekannt gemacht werden
|
|
- Globale Arrays sollten im Namen _list als Postfix haben
|
|
- Nur die _prepare, _run, _finish, _cleanup Funktionen duerfen mit globalen
|
|
Variablen arbeiten.
|
|
- Werden in einem Modul globale Variablen gebraucht, bekommen die das Präfix
|
|
my_<modul_name>_
|
|
- Standardfunktion _check_variables fuer Plausi der globalen Variablen
|
|
- Funktionen die return-Wert auf stdout schreiben, duerfen nicht myexit
|
|
aufrufen wg a=$(myfunc) || myexit 1
|
|
- Die Pflege der run_list, prepare_list usw. sollte ausschließlich in den
|
|
.conf - Dateien erfolgen. (wird in blkreplay nicht beachtet
|
|
30_recreate_lvm.sh)
|
|
- ueber verbose_script lib_vmsg ("echo if verbose") definieren
|
|
- error recovery functions: Wann gesetzt, wann wieder aufgehoben:
|
|
siehe Beispiel grub_restore_boot_configuration
|
|
- Signale abfangen siehe main_error_recovery_functions
|
|
- check - Funktionen sollten nicht lib_exit aufrufen, sondern
|
|
eine Fehlermeldung ausspucken und 1 returnen, damit der
|
|
Aufrufer noch reagieren kann (insbesondere damit man die
|
|
Aufrufstelle findet)
|
|
- Werden Werte an Aufrufparameter zurueckgegeben, heissen die
|
|
f "pid"
|
|
function f
|
|
{
|
|
local varname_pid
|
|
...
|
|
eval $varname_pid=pid
|
|
}
|
|
|
|
|
|
- Namenskonvention fuer lib - Funktionen und main (gemaess Moduln)
|
|
- "includeable" conf Dateien (Beispiel
|
|
./build_test_environment/resource/lib-resource.conf) evtl. via base-directory
|
|
bis zu dem nach oben nach .conf - Dateien gesucht wird
|
|
- Argumentzahlpruefung in allen Funktionen
|
|
|
|
- Problem, wenn man nur einen Test laufen lassen will => Subdirectory out und
|
|
- out.conf gelinkt auf <test>.conf (Beispiel admin/apply_fetch/apply/out.conf)
|
|
|
|
|
|
Meeting:
|
|
passwort freier Zugang aller roots untereinander
|
|
|
|
|
|
Robustheit:
|
|
- sequence number vorne und hinten in die log Einträge
|
|
- keine Nullbytes als Füllsel
|
|
|
|
|
|
remote device:
|
|
ln -s /tmp/fly@istore-test-bs7,remote-floppy /mars/resource-lv-2/_direct-002-istore-test-bap7
|
|
|
|
|
|
|