Testing av Fronter

Testing på UiO

Drift av ClassFronter (cf-core) har opplegg for testinstansar av Fronter for UiO.

Ved større endringar i eksporten til Fronter bør det testast av cf-core før vi går i produksjon.

Vår Fronter-eksport fungerer ved at vi genererer ei svær XML-fil med informasjon om alle brukarar, grupper, rom og alt anna som er relevant for Fronter. Denne fila eksporterer vi til cf-app01.uio.no. Derfrå tek Fronter seg av vidare arbeid.

Rutine for å teste ny Fronter-eksport

  1. Dersom dette ikkje allereie er gjort, avtal med cf-core@usit.uio.no om kor og korleis ein ny Fronter-eksport kan testast av dei.

  2. Dersom datagrunnlaget endrast på:

    1. Hent inn oppdaterte filer frå FS-importen. Dette kan enten kopierast frå produksjonsmiljøet, eller ein kan køyre import_from_FS.py mot td. FSDEMO. Ikkje køyr ein import frå FSPROD i testmiljøet.

      Området /site/$USER kan brukast for slike filer.

    2. Importer filene med import_FS.py, så Cerebrum er oppdatert.

  • Oppdater Fronter-gruppene i Cerebrum med populate_fronter_groups.py. Døme:

    contrib/no/uio/populate_fronter_groups.py \
      --role-file /site/$USER/uio/dumps/FS/roles.xml \
      --undenh-file /site/$USER/uio/dumps/FS/undervisningenheter.xml \
      --undakt-file /site/$USER/uio/dumps/FS/undervisningsaktiviteter.xml \
      --evu-file /site/$USER/uio/dumps/FS/evukurs.xml \
      --kursakt-file /site/$USER/uio/dumps/FS/evukursakt.xml \
      --kull-file /site/$USER/uio/dumps/FS/kull.xml \
      --edu-file /site/$USER/uio/dumps/FS/edu_info.xml
    

    Merk at denne jobben tek mange timar.

  • Generer deretter XML-fila med generate_fronter_full.py. I produksjon vert denne køyrd av skriptet cerebrum_sites/bin/uio/update_fronter.py, som også tek seg av filoverføringa til produksjonsmiljøet, så ikkje bruk den for testing. Døme på kommando:

    contrib/no/uio/generate_fronter_full.py -h blyant.uio.no \
      --undenh-file /site/$USER/uio/dumps/FS/undervisningenheter.xml \
      --undakt-file /site/$USER/uio/dumps/FS/undervisningsaktiviteter.xml \
      --evu-file /site/$USER/uio/dumps/FS/evukurs.xml \
      --kursakt-file /site/$USER/uio/dumps/FS/evukursakt.xml \
      --kull-file /site/$USER/uio/dumps/FS/kull.xml \
      /site/$USER/uio/test-blyant.uio.no-$(date +%Y-%m-%d)-full.xml
    

    Døme på filnamn: test-blyant.uio.no-2012-03-26-full.xml

  • Overfør fila til test-instansen som cf-core har gjort tilgjengeleg, eller be Cerebrum drift om å overføre den for deg ved mangel på tilgang.

  • Testing i testinstanser driftet av Fronter

    I de tilfeller Fronter drifter Fronter, er prosessen noe anderledes i forhold til Testing på UiO.

    Eksporten fra Cerebrum genererer en XML-fil. Denne må sendes inn i Fronters Web Service. Før dette kan gjøres, må Fronter opplyse om hvilken nøkkel som brukes til å indentifisere integrasjonen.

    1. Hvis XML-fila er stor (noen par hundre MB), må den pakkes med f.eks zip.
    2. Kjør cerebrum/contrib/export_to_fronter_ws.py -f ny_eksport.xml.zip -k nøkkel_til_ws
    3. Initier import via Fronters grensesnitt når filen har blitt registrert mottatt av webservicen. Se Initiering av import og Sjekke integrasjonens status.

    Sjekke integrasjonens status

    Når man har lastet filer opp til Fronter-instansen, eller kjørt en import, kan man sjekke om filen ble mottatt/importen kjørt ved å gå til https://ws.fronter.com/es/?authkey=<key>, hvor <key> er integrasjonsnøkkelen Fronter har gitt oss.

    Feltet Data Exported sier når en fil ble mottatt av testinstansen (via websericen). Feltet oppdateres ikke så fort som filen blir lastet opp, det kan ta opp til halvtime for serveren å oppdatere feltet med den nye tiden.

    Feltet Data Imported sier når filen ble importert til testinstansen.

    Inspeksjon av innhold i testinstansen etter import

    Når man har importert data fra Cerebrum inn i Fronter, kan det være kjekt å ta en titt i testinstansen for å se hvordan strukturen ser ut. Dette gjøres på følgende måte:

    1. Pek din nettleser til https://fronter.com/sti_til_din_integrasjon.
    2. Logg inn med brukernavn og passord levert av Fronter-folka.
    3. Trykk på Account øverst til høyre i skjermbildet.
    4. Trykk på Admin i menyen som dukker opp.

    Du skal nå være i administrasjonsgrensesnittet til Fronterinstansen. På venstre side av skjermbildet har du en trestruktur. I trestrukturen kan du se hvor forskjellige rom, grupper og annet legger seg.

    Emner skal legge seg inn under node Automatisk importerte grupper, gruppert på semester og type (Evu, kull, emner).

    Under noden Universitetet i Oslo blir rom og korridorer plassert, avhenig av hvor i organisasjonsstrukturen de hører hjemme. Trykker du på en korridor i trestrukturen vil du få se hvilke rom som er i korridoren.

    Initiering av import

    Når man har benyttet export_to_fronter_ws.py til å laste inn en eksport fra Cerebrum, kan man tvangsstarte importen fra Fronters grensesnitt. Dette er antageligvis å foretrekke over å la eksporten kjøre nattlig.

    For å initiere eksporten manuelt må du i administrasjonsgrensesnittet:

    1. Trykk på fanen Tools på midten av skjermen.
    2. Velg Fronter integration setup.
    3. Velg en konfigurasjon under Import Configurations ved å krysse av i firkantboksen.
    4. Trykk på Run Now knappen.
    5. Eksporten vil kjøre etter en stund. Se Sjekke integrasjonens status.

    Simulert semesterskifte

    Når man tester Frontereksporten, er det kjekt å utføre et simulert semesterskifte for å verifisere at semesterskifter går som de skal.

    NB: Dette må bare gjøres på testinstanser! Dette må man ikke finne på å gjøre i prod under noen omstendigheter!

    Dette gjøres ved å:

    1. Kjør populate_fronter_groups.py

    2. Kjør generate_fronter_full.py

    3. Last opp eksporten (Testing i testinstanser driftet av Fronter, kun hovedsteget)

    4. La Fronter-administratorene fjerner importid på gamle grupper og rom

    5. Rediger Cerebrum/modules/no/access_FS.py slik at det plukkes ut informasjon fra og med neste semester. Dette kan gjøres slik:

      [0077] kefir:~/src/cerebrum/Cerebrum/modules/no 13> svn diff access_FS.py
      Index: access_FS.py
      ===================================================================
      --- access_FS.py        (revision 17186)
      +++ access_FS.py        (working copy)
      @@ -49,6 +49,9 @@
           def __init__(self, db):
               self.db = db
               t = time.localtime()[0:3]
      +### JSAMAHACK!!!!!!11
      +        t = time.strptime("01-07-2013", "%d-%m-%Y")[0:3]
      +### JSAMAHACK END!!!11
               if t[1] <= 6:
                   self.sem = 'V'
                   self.semester = 'V�'
      [0077] kefir:~/src/cerebrum/Cerebrum/modules/no 14>
      
    6. Kjør import_from_FS.py

    7. Kjør populate_fronter_groups.py med nytt FS-utplukk som grunnlag

    8. Kjør generate_fronter_full.py med nytt FS-utplukk som grunnlag

    9. Last opp eksporten (Testing i testinstanser driftet av Fronter, kun hovedsteget)

    10. La DML/Fronter verifisere at skiftet gikk bra

    Publisert 10. jan. 2014 14:16