This is an old revision of the document!
Testing-av-QC1-sjekker.
Tilpasninger som må gjøres først på ny testmaskin
ubuntu bruker:
ssh ubuntu@<mintestmaskin> sudo apt-get update sudo apt install emacs sudo apt install nedit sudo chmod g+w /usr/share/kvalobs sudo chown root:kvalobs /usr/share/kvalobs sudo chown kvalobs:kvalobs /usr/share/kvalobs/metadata sudo apt install kvalobs-metadata
kvalobs bruker:
ssh -YA kvalobs@<mintestmaskin> git clone git@gitlab.met.no:obs/kvalobs/kvoss_intern.git echo "export PGHOST=localhost" >> .bashrc echo "export METADIR=$HOME/kvoss_intern/kvmeta" >> .bashrc echo "export PERL5LIB=/usr/lib/kvalobs-metadata/lib/perl" >> .bashrc . .bashrc
Dokumentasjon og Veiledning.
Oversikt:
A)
Kravspesifikasjon utarbeides. Ut fra denne lages Algoritme og Test-skjema. Test-skjemaene ligger på: kvalobs@kvtest-algorithms:~/bin/Dev-Kvalobs-QC1/QC1-Doc/Test-Skjema
B)
3 DB tabeller skal vanligvis ha nye / endrete rader: algorithms, checks, station_param.
C)
Hele Test-systemet ligger på en Virtuell Maskin (VM) der man kan logge seg på fra alle arbeidsstasjoner. Katalog-strukturen til Test-systemet ser slik ut (eksempel): Dev-Kvalobs-QC1 --+ QC1-Doc --+ Veiledninger + T-QC1-3 --+ QC1-3b ---+ RUN-TIME-TEST + Source-Code + System-Konsistens + Test-Run-kvQabase ---+ Res-10
Framgangsmåte steg for steg:
0) Installer de metadataene du trenger for alle tabeller untatt algorithms, checks og station_param:
kvget-metadata-base
1) Innlogging på testmaskinen: ssh -YA kvalobs@157.249.169.135
Starter med å lage kildekoden på Source-Code katalogen ( Dev-Kvalobs-QC1/T-QC1-3/QC1-3b/Source-Code ) Ta backup ved hver endring ( kopier det området du jobber i til en annen maskin med samme katalogstruktur) ( Eksempel: myuser@pcxxxx:/disk1/Dev-Kvalobs-QC1/T-QC1-3$ scp -r kvalobs@157.249.169.135:~/bin/Dev-Kvalobs-QC1/T-QC1-3 . ) Lager test-skjema ved navn: (f.Eks. Test-Skjema-QC1-3b-60-20-10-01.ods) som skal passe med det vi skal teste. Fyll ut kolonnene Test-Update, Antall Timer, Krav. La kolonnene Test, Cfailed (Test), Status stå tomme. Kildekoden må legges inn i algorithms tabellen i Kvalobsdatabasen. Det gjøres slik: Gå til katalogen $METADIR: cd $METADIR Oppdater metadata fra git: git pull Hvis vi får CONFLICT ( dette betyr konflikt) skal en slette disse filene og deretter gjøre en ny git pull. Dersom det er filer du jobber med så må de tas vare på utenfor repositoriet og kopieres inn på riktig sted. Hvis du har en endring, kopierer du den inn her: ( f.eks: scp FREEZE_CHECK.pl kvalobs@xxx:~/kvoss_intern/kvmeta/algorithms$ ) Overfør de nye metadataene til /usr/share/kvalobs/metadata med skriptet: kvinstall_metadata Innstaller de nye metadatene med: /usr/lib/kvalobs-metadata/bin/run_metadata Dersom du bare skal installere algoritmene bruk: /usr/lib/kvalobs-metadata/bin/run_algorithm_all
2) Går inn på katalogen System-Konsistens.
Bestemmer hvilke parametre, verdier og tidsoppløsning vi vil bruke i testingen. I eksemplet her har vi valgt: stationid = 18700 (Blindern), paramid = 211 (TA), tidsperiode: fom 2013-01-01 08 tom 2013-01-02 10. Etter at oppdatering av kvalobs metadata er kjørt, oppdateres tabellene data, checks og station_param med sql-script som lager nye testdata og metadata. Eksempel: Gå inn på: kvalobs@xxxx:~/bin/Dev-Kvalobs-QC1/T-QC1-3/QC1-3b/System-Konsistens/ og kjør: psql -f DELETE-INSERT-Data-QC1-3b-211-60.sql > DELETE-INSERT-Data-QC1-3b-211-60.log psql -f DELETE-INSERT-Checks-QC1-3b-FREEZE_CHECK-60-10-01.sql > DELETE-INSERT-Checks-QC1-3b-FREEZE_CHECK-60-10-01.log psql -f DELETE-INSERT-Station_param-QC1-3b-FREEZE_CHECK-60-10-01.sql > DELETE-INSERT-Station_param-QC1-3b-FREEZE_CHECK-60-10-01.log (Husk å oppdatere disse scriptene ved behov.)
3) Står på samme katalog (System-Konsistens) og kjører: Tabell-Konsistens-QC1-3b.sh (Husk å endre innholdet i shell-scriptet ved behov).
Resultatet kommer på Tabell-Konsistens-QC1-3b.txt (gå gjennom denne resultat-filen og sjekk at alt er i orden med tabellene). f.eks. må paramid finnes i param tabellen, det må være minst en rad i obs_pgm, signaturene i algorithms og checks-tabellene må stemme. Om alt er i orden kan man gå til punkt 4.
4) Går til katalogen Test-Run-kvQabase. Her ligger katalogene Res-10, Res-20, Res-30, Res-60. Res står for tidsoppløsning.
Det vil si at vi kjører en testrunde for hver av tidsoppløsningene 10, 20 30 og 60 minutter på hver sin katalog (Kjører test på de tidsoppløsningene som er relevante for sjekken).
5) Går til den katalogen du skal kjøre på (f.eks. Res-60).
Hvis det er logger / logg-kataloger her, utføres kommandoene: rm *.log Som gjennomgående eksempel nedover her brukes sjekken "QC1-3b-211". Dette må endres til aktuell sjekk. Det skal nå ligge 2 viktige filer på denne katalogen: Test-Run-kvQabase-QC1-3b-211-60.sh ( shell script ) Select-Data-QC1-3b-211-60.sql ( sql script )
Åpner sql scriptet Select-Data-QC1-3b-211-60.sql i en editor ( f.eks. emacs ). Endre stationid, obstime, paramid, typeid etter behov. Åpner shell scriptet Test-Run-kvQabase-QC1-3b-211-60.sh i en editor ( f.eks. emacs ). 2 rader gjentas for hvert nytt tidspunkt som kvQabased kjører på:
F.eks. kvQabased -d kvalobs -p 5432 --station 18700 --obstime '2013-01-01 08:00:00' --typeid 330 --qcx 'QC1-3b-211' Loggene legger seg under /var/log/kvalobs/checks/ psql -f Select-Data-QC1-3b-211-60.sql > Select-Data-QC1-3b-211-60.log
Den 1. raden må endres ved behov slik at kvQabase stemmer med testdata-settet og metadataene. Den 2. raden må endres ved behov slik at sql-scriptets navn og innhold stemmer med stationid, paramid, dato, kl, typeid, tidsoppløsning. Det samme gjelder for navnene på de store historiske loggfilene. Om alt stemmer, gå til punkt 6)
6) Kjører shell-scriptet: Test-Run-kvQabase-QC1-3b-211-60.sh
7) Sjekk utfra loggene om alt er kjørt. Går deretter inn på Select-Data-QC1-3b-211-60.log for å fylle ut kolonnene Test, Cfailed (Test), Status.
Sjekk at flaggverdiene i Flag kolonnen Test er lik flaggverdiene i Flag kolonnen Krav i Test-Skjema-QC1-3b-60-20-10-01.ods. Sjekk også at Cfailed (Test) er fylt ut med QC1-3b-211 når kolonnen Test har høyere verdi enn 1. Hvis det er avvik mellom Krav og Test eller andre avvik, må feilsøk startes opp, f.eks.: Sjekk på nytt at alle relevante parametre i alle script stemmer overens. Se i loggen Select-Data-QC1-3b-211-60.log Se i loggen Test-Run-kvQabase-QC1-3b-211-60.log Kildekodens indre logikk kan testes på RUN-TIME-TEST katalogen ( bin/Dev-Kvalobs-QC1/T-QC1-3/QC1-3b/RUN-TIME-TEST ) Sjekk at alle relevante oppdateringer i metadata tabellene (algorithms, checks, station_param mm.) som settes i drift er helt likt med det som er kjørt i test. Hvis alt stemmer kan den nye sjekken (eller den nye versjonen av sjekken) settes i drift. F.eks. algoritme: (evn ta backup av gammel versjon på lokal maskin og ta vare på denne backupen i en helt annen katalog på egen maskin). Kopier den aktuelle oppdaterte/nye algoritmen fra testmaskinen. ~/bin/Dev-Kvalobs-QC1/T-QC1-3/T-QC1-3b-211/Source-Code over til lokalt git-repository på egen maskin (eks ~/kvoss_intern/kvmeta/algorithms på lokal maskin). (Stå på egen maskin og ta scp). Skriv så git commit -m "ønsket beskrivelse" algoritmen. Gjenta prosessen med evt. oppdatert/ny checks og evt. oppdatert/ny station_param. Når alt er klart til å settes i drift: Skriv "git push" fra aktuell katalog. Algoritmen er nå i drifts-git-repository og vil bli lagt inn i databasen ved neste Kvalobs-oppdatering (normalt 11.20 norsk tid hver dag)