[vmchecker-dev] [vmchecker] Integrare modificări vmchecker

Calin Iorgulescu calin.iorgulescu at gmail.com
Mon Nov 8 02:21:19 EET 2010


2010/11/7 Lucian Adrian Grijincu <lucian.grijincu at gmail.com>

> 2010/11/7 Calin Iorgulescu <calin.iorgulescu at gmail.com>:
> > - în al doilea rând, ar fi fost foarte util dacă s-ar fi putut specifica
> în
> > fișierul de configurare al assignment-ului o listă de fișiere/foldere
> care
> > să fie copiate de pe mașina virtuală (avem unele task-uri la care
> preferăm
> > să păstrăm unele fișiere pentru a putea verifica mai ușor în caz de
> > copiere). Am verificat și primitva de copyfilesfromhosttoguest se împacă
>
>
> cred că ai nevoie de copyfilesfromGUESTtoHOST, nu de
> copyfilesfromhosttoguest
>
>
Nitpicker. :P


> > singură direct cu foldere. Tot ce ar trebui modificat ar fi
> vm-executor-ul
> > să execute pull-ul și, respectiv, să le trimită împreună cu *.vmr-urile.
>
>
> = Preluarea fișierelor din guest =
> Am două propuneri
>
> == 1. Listă de fișiere specificată pentru fiecare temă ==
>
> În fișierul config trebuie specificată o listă a fișierelor de preluat
> (implicit lista e vidă).
>
> ConfigParser nu suportă liste, așa că o să trebuiască o singură
> variabilă cu numele fișierelor separate prin spații, virgule, etc. (=>
> restricții la numele fișierelor).
>
> După rulare și după preluarea fișierelor din guest, dai drumul și la
> copierea fișierelor ăstora din guest în host (nu dai fail dacă nu
> găsești un fișier din listă, ci doar menționezi faptul în
> vmchecker-error.vmr). La fel și cu copierea fișierelor prin ssh de pe
> tester pe storer. Dacă nu găsești un fișier, continui fără el, dar
> faci logging.
>
> Chestia asta e oarecum limitată pentru că nu permite copierea unui
> director întreg (cu oricâte fișiere cu oricâte nume), dar dacă
> usecase-ul apare, se poate implementa.
>
>
> == 2. Preluarea unei arhive ==
> Acum se copiază din guest în host fișiere cu numele run.out, run.err
> sau ceva de genul ăsta. Fișierele sunt create de scripturile de
> testare. Scripturile de testare ar putea crea o arhivă cu niște
> fișiere dorite pe fiecare temă/materie (de ex. poate se dorește
> extragerea /etc/hosts, tot conținutul lui /etc/init.d/*, legături
> simbolice toate cu drepturi, owner, grup, etc intacte.) Asta se poate
> face ușor într-un tar.gz.
>
>
> vmchecker va căuta dacă există fișierul
> (vmchecker-extra-guest-results.tar.gz) în mașina virtuală după ce va
> rula testele, îl va lua și-l va trimite pe storer împreună cu
> rezultatele. Dacă arhiva nu este, nu-i bai, o ignorăm.
>
>


M-am gândit și eu la ambele variante. Cred că aș merge cu a doua pentru a
simplifica implementarea pe partea de vm-executor. Însă chiar și cu prima,
copyfilesfromguesttohost știe singur să copieze directoare recursiv (din
teste așa am văzut). După copiere toate fișiere ar merge să fie puse într-o
arhivă înaintea copierii.
My $0.02:
- Dacă implementăm în vm-executor partea de copiere a anumitor fișiere ne
oferă independență de sistemul de operare. Pe de altă parte suntem limitați
de ConfigParser.
- Pentru varianta 2 totul s-ar rezolva din scriptul de testare care ar face
în background și arhiva. Tot ce trebuie făcut este ca vm-executor să urce și
arhiva. Quick, painless și poate fi ajustată după caz pt. orice SO.

Bottom-line, eu aș merge cu varianta a 2-a.


> = Destinația din storer =
>
> Eu aș pune fișierele astea într-un subdirector al lui results/ (de ex.
> results/extra-guest-results/). Asta pentru a nu polua conținutul lui
> results/.
>
>
> Cum crezi. Dacă rămâne doar o arhivă nu știu cât de mult ar polua. Cred că
e easily doable așa că fine by me.

>
> > - în primul rând, la USO nu mai este necesar ca asistentul să valideze
> tema
> > ca și corectitudine, deci aș fi vrut ca după evaluarea temei să se poată
> > (opțional) rula un script care pe baza output-ului
> (vmchecker-std{out,err})
> > să genereze un fișier grade.vmr cu nota deja trecută în el. Singura parte
> > mai tricky aici ar fi specificarea directă a numelui fișierului script
> care
> > să fie inclus în pack-ul trimis tester-ului.
>
>
> Parsarea fișierelor și calculul depunctărilor se poate face în trei locuri:
> * pe storer
> * pe tester în host
> * pe tester în guest
>
>
> Există niște restricții:
> * pe storer doresc ca nicio acțiune să nu mai fie executată de
> utilizatorul uso/cpl/so/etc. Totul să fie făcut sub user www (asta
> pentru a scăpa de cerința pentru posix-acl).
> * pe tester(host) aș dori să se execute cât mai puține taskuri
> adiționale. Asta pentru a reduce cerințele asupra mașinii și pentru
> simplificare.
> * pe tester(guest) nu mă interesează ce se întâmplă.
>
>
> Se poate implementa funcționalitatea asta în tester(guest)?
>
>
Aș fi preferat pe tester(host) doar pentru a face lucrurile mai elegant și a
nu depinde de scriptul de testare propriu-zis (script unificat de
determinare al rezultatelor). Desigur, acum folosim doar Linux pe ele și
poate e prematur să vorbesc din perspectiva altor SO-uri.

Pe tester(guest) eu aș vedea o soluție simplă: Scriptul de test să scrie
singur un fișier grade.vmr care să fie adus cu celelalte fișiere *.vmr. La
final queue-manager-ul o să scrie un "ok" la baza fișierului. Nu cred că
deranjează asta pe cineva. Tot ce trebuie făcut este menționarea în
vm-executor că se dorește și grade.vmr să fie copiat de pe mașina virtuală.


>
> PS: Am trimis și pe listă, poate ar cineva idei mai bune.
>
>
Any and all feedback and ideas are greatly appreciated.


> --
>  .
> ..: Lucian
>

Dacă ești de acord cu variantele voi încerca să implementez o parte din ele
și să le pun pe github.

Călin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rosedu.org/pipermail/vmchecker-dev/attachments/20101107/1782c96e/attachment.html>


More information about the vmchecker-dev mailing list