Innhold
1 Innledning
Høsten 2014 ble det innledet arbeide med en ny synkronisering mot ePhorte. Den gamle synkroniseringen bestod av en Cerebrum-jobb som genererte en XML-fil, og et Java-program som snakket SOAP mot ePhorte. Den nye versjonen er et Cerebrum-script som snakker direkte med ePhorte via en tjeneste (SOAP).
Forskjeller fra tidligere tjeneste:
- Slettet Java-program. Ikke lenger bruk for jobbene: - Henting av ephorte-sted-fil - Gammel ephorte-sync
- Erstattet contrib/no/uio/generate_ephorte_export.py med ny sync
- Ikke behov for ephorte-eksportfiler (XML) eller ephorte-steder.dat
- contrib/no/uio/populate_ephorte.py er nesten uforandret, men den henter nå stedkoder fra ePhorte direkte.
2 Konfigurasjon
Før prodsettelse må man ha en config-fil (f.eks. kalt sync_ephorte.cfg i etc-directory). Ved å kjøre contrib/no/uio/sync_ephorte_person.py --config-help, genereres en mal for denne filen. Faktiske verdier i filen må gis ved prodsettelse.
I tillegg trengs passordfil for ePhorte-tjenesten. Denne er på samme format som andre passordfiler i Cerebrum, og legges i samme katalog:
[DEFAULT] wsdl=https://example.com/foo/bar/baz?wsdl username=bruker …
gjør at scriptet forventer:
…/etc/passwords/passwd-bruker@example.com med innhold "bruker\tpassord"
Eksempel på konfigfil:
[DEFAULT] wsdl=https://ephuiotest.trofast.uio.no/cerebrum2ephorte/Service.svc?wsdl customer_id=UiO2 database=uiotest2 username=ephsys client_key=None client_cert=None ca_certs=None selection_spread=ePhorte_person changes_too_old_days=200
Her vil cryptoparametrene være
ca_certs: | Filnavn med CA-sertifikater |
---|---|
client_cert: | PEM-fil med sertifikat |
client_key: | PEM-fil med privatnøkkel (hvis ikke lagt inn i client_cert). |
None vil i configfilen tolkes som ikke satt.
Både populate_ephorte.py og sync_ephorte_persons.py tar et argument, --config, som angir configfilnavn. Denne defaulter til sync_ephorte.cfg hvis ikke angitt. Dersom filen ikke finnes, prøves også cereconf.CONFIG_PATH (så default er ./sync_ephorte.cfg etterfulgt av cereconf.CONFIG_PATH + /sync_ephorte.cfg).
Parametret changes_too_old_days brukes av quick-syncen; changelog-oppføringer eldre enn dette antall dager ignoreres.
Andre konfigurasjonsparametre hentes også fra cereconf.py, nemlig og ikke bare dette:
EPHORTE_FSAT_SKO , stedkodene som listes opp i denne python listen får ansatte til å automatisk bli assignet: Arkivdel som "SAK FSAT" og journalenhet som J-FSAT
3 Miljø
Vi er blitt enige med eSAK, ved Lena Andersen, om kva miljø som skal brukast i dei ulike fasane ved utvikling, staging og produksjon:
Stadie | Cerebrum-miljø | Trofast-host | ePhorte-database |
---|---|---|---|
Test/utvikling | cere-utv01.uio.no | ephuiotest.trofast.uio.no | test |
Staging | Cerebrum testmiljø | TODO | kurs |
Produksjon | cerebrum-uio.uio.no | ephuio.trofast.uio.no | prod |
4 Overgang
I en periode er synkronisering av tilganger ikke gjort. sync_ephorte_persons.py har en modus som vil spytte ut de endringer som en fullsync vil gjøre, men uten å gjøre det:
python contrib/no/uio/sync_ephorte_persons.py --permission-report rapport.txt
Denne vil her generere filen rapport.txt, som ePhorte-ansvarlige kan gå gjennom før prodsettelse.
5 Beskrivelse av opsjoner
python contrib/no/uio/sync_ephorte_persons.py --help vil skrive ut melding om opsjoner til kommandolinjen. Kort sagt må det oppgis en kommando:
full-persons: | Syncer persondata (navn, e-post, kontaktinfo osv.) for alle med spread. |
---|---|
full-roles-perms: | Syncer roller og tilganger for alle med spread. |
quick-roles-perms: | Endrer roller og tilganger for alle med spread. |
permission-report filnavn: | Skriver en rapport over hva full-roles-perms ville ha gjort. |
I tillegg kommer config, som er beskrevet over, og commit. Kjører man uten commit, vil endringer ikke ha effekt hverken i Cerebrum eller ePhorte.
6 Scheduled_jobs
Det er nå tre jobber som må settes opp for å synce med ePhorte:
:populate: contrib/no/uio/populate_ephorte.py -r -p [--mail-warnings-to e-post] :sync persondata: contrib/no/uio/sync_ephorte_persons.py --full-persons --commit :sync roller og tilganger: contrib/no/uio/sync_ephorte_persons.py --quick-roles-perms --commit
Det tilbys også en fullsync av roller og tilganger, som kan kjøres av og til:
contrib/no/uio/sync_ephorte_persons.py --full-roles-perms --commit
7 Feilmeldinger
Under følger en liste over loggmeldinger som kan oppstå. På det nåværende tidspunkt er det uklart hvilke feilmeldinger ePhorte kan finne på å sende. Sannsynligvis vil melding pga. nettverksforbindelse være det vanligste.
- Could not ensure existence of bruker@uio.no in ePhorte: (stack trace)
- Personen ble av uviss årsak ikke opprettet i ePhorte. Stack trace gir feilmelding fra ePhorte. Sannsynlig årsak kan være nettverksproblemer.
- person_id:xxx has ePhorte role, but no ePhorte spread, skipping
- Bør ikke forekomme; alle som har roller i ePhorte skal ha spread. Det må avgjøres hva som er korrekt.
- Did not delete authz for bruker@uio.no: XX@stedkode, all-ous=YYY
- Feilmelding fra ePhorte. følger i stack trace. Merk: @None, all-ous=False er ePhorte for «ephorte egne steder», stedkode 999999
- No OU in ePhorte for XXXXXX for perm YY for bruker@uio.no
- Stedkoden er ikke funnet i ePhorte. Merk at stedkoder eksporteres manuelt i dag.
- Could not ensure access for bruker@uio.no: XX@stedkode, all-ous=YYY
- Feilmelding fra ePhorte. følger i stack trace. Merk: @None, all-ous=False er ePhorte for «ephorte egne steder», stedkode 999999
- person_id:entity_id has role XX at non-ePhorte OU stedkode, skipping role
- Rollen er knyttet til en stedkode som ikke har ePhorte-spread.
- OU stedkode dose not exist in ePhorte for role …
- Stedkoden i feilmeldingen har ePhorte-spread, men finnes ikke i ePhorte likevel. Dette må fikses manuelt i ePhorte.
- Could not ensure existence of role …
- Feilmelding fra ePhorte følger i stacktrace.
- Could not remove role …
- Feilmelding fra ePhorte følger i stacktrace.