Klucove slova: mantis log downloader mantisLogDownloader driverBugReport driver bug report
Zaloha logov na strojceku sa nachadza na ceste
/opt/emtest/var/log/
Vo formate:
driverBugReport_DATUM_ZALOHY.tgz
Logy su ulozene v suborovej strukture:
Zaloha obsahuje:
Autor sluzby: Matej Turcel
Konzultant: J. Sipikal, K. Turcelova
Skript z Mantisu/Helpdesku ziskava informacie o novych bugoch, na zaklade ktorych stahuje zo strojcekov logy (vo formate tgz) a pridava ich na Mantis k tomu-ktoremu bugu ako prilohu.
Pri necakanom ukonceni a opatovnom spusteni skript pokracuje v stahovani rozstahovanych logov a uploade dostahovanych, pricom si uchova tiez ID posledneho spracovaneho bugu. Nemalo by teda vadit ak bude skript nasilne ukonceny.
Umiestnenie a vlastnosti sluzby:
Zdrojove subory sa nachadzaju v git repozitari s nazvom: mantislogdownloader.git. Link na git wiki
Skript musi bezat na serveri z ktoreho je pristup na strojceky (napr. 192.168.99.130).
Potrebny je Python 3.4.3 a vyssie a nainstalovane zavislosti.
Instalacia zavislosti - spustenim skriptu install.sh (musi byt spusteny ako root).
Na instalaciu zavislosti je potrebny Python package installer - pip3. Pokial nie je dostupny, skript install.sh sa ho pokusi nainstalovat, to sa ale nemusi vzdy podarit (lebo na to je potrebny modul ensurepip pre Python3 ktory tiez nemusi byt dostupny).
Instalacia pip3 - nainstalovat balik python3-pip.
logdldr/
doc/
util/
pdf/
src/
data/
partial/
[zlozky jednotlivych bugov, napr. "9744_10.12.196.1_20160907051621\"]
[archiv s logmi daneho bugu, napr. "driverBugReport_20160907-05_16_21.tar.gz"]
finished/
failed/
pack/
download/
upload/
var/
logdldr.log
[mantis/]
install.sh
logdldr.py
Zlozky/subory potrebne pre beh programu su vytvorene automaticky.
config.py).xml → draw.io.pu → doc/util/plantuml.jar.sd → doc/util/sdedit-4.2-beta8.jar.tsm → doc/util/tinyuml-0.13_02-bin/tinyuml.jar
Subor logdldr/config.py obsahuje rozne nastavenia, od adries, uctov a hesiel cez nazvy lokalnych priecinkov a suborov po “backoff strategy” pri preruseni spojenia.
Prepinace, argumenty:
mantis, napr. mantis/9744/driverBugReport_20160907-05_16_21.tar.gz.-m a potom bez prepinaca, tiez bezia obe instancie.
Ked sa skript spusti bez prepinaca -d a v skorych stadiach (tj. spracovanie argumentov, vytvorenie priecinkov, …) nedojde k chybe, na konzole nie je nijaky vystup a skript bezi az do ukoncenia (napr. Ctrl+C).
Pri spusteni viacerych instancii naraz budu vsetky pokracovat v stahovani rozstahovanych logov, preto by nemalo bezat viac instancii naraz.
Chyby ktore nastanu pocas behu su logovane do suboru var/logdldr.log, niektore tiez na Mantis ako poznamky k bugom (napr. ak sa nepodari stiahnut logy).
Pri prvom SIGINT/Ctrl+C sa prestanu preberat z Mantisu nove bugy a caka sa na dokoncenie spracovania zacatych.
Pri druhom SIGINT/Ctrl+C sa skript okamzite ukonci.
V oboch pripadoch sa na stderr (pokial stderr je konzola) vypise informacna hlaska.
Menej podstatne triedy a wrapper triedy vynechane.
(S) za nazvom triedy znaci, ze existuje iba jedna instancia triedy
DldMgr)Downloader ktorym stahuje logy zo strojcekaUploaderBugBug spravu suborov toho-ktoreho bugu (presuvanie suborov, mazanie,…)LogRecord do textovej podobyLogRecord to textovej podoby s farebnym zobrazenim (napr. chyby - cervena)LogRecord to textovej podoby s minimalnym mnozstvom informacii (iba povodna sprava bez datumu/casu atd.)_log_record, ktora pomocou prislusneho formattera prevedie LogRecord do textovej podoby a vysledok zapise do logulog, log_error a log_warning, ktore vytvoria LogRecord objekt a zavolaju metodu _log_recordlog_bug, log_bug_error a log_bug_warning, ktore vytvoria LogRecord objekt a zavolaju metodu _log_record_log_record, v ktorej zapisuje do konzoly; na formatovanie pouziva ColoredConsoleFormatter_log_record, v ktorej zapisuje do suboru; pouziva BasicFormatter_log_record, v ktorej pridava na Mantis poznamku k bugu; pouziva MantisFormatter