mars/test_suite/changes.dok

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