<br><br><div class="gmail_quote">2010/11/7 Lucian Adrian Grijincu <span dir="ltr">&lt;<a href="mailto:lucian.grijincu@gmail.com">lucian.grijincu@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

2010/11/7 Calin Iorgulescu &lt;<a href="mailto:calin.iorgulescu@gmail.com">calin.iorgulescu@gmail.com</a>&gt;:<br>
<div class="im">&gt; - în al doilea rând, ar fi fost foarte util dacă s-ar fi putut specifica în<br>
&gt; fișierul de configurare al assignment-ului o listă de fișiere/foldere care<br>
&gt; să fie copiate de pe mașina virtuală (avem unele task-uri la care preferăm<br>
&gt; să păstrăm unele fișiere pentru a putea verifica mai ușor în caz de<br>
&gt; copiere). Am verificat și primitva de copyfilesfromhosttoguest se împacă<br>
<br>
<br>
</div>cred că ai nevoie de copyfilesfromGUESTtoHOST, nu de copyfilesfromhosttoguest<br>
<div class="im"><br></div></blockquote><div><br>Nitpicker. :P <br></div><div> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">


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

My $0.02:<br>- 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.<br>- 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.<br>

<br>Bottom-line, eu aș merge cu varianta a 2-a.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
= Destinația din storer =<br>
<br>
Eu aș pune fișierele astea într-un subdirector al lui results/ (de ex.<br>
results/extra-guest-results/). Asta pentru a nu polua conținutul lui<br>
results/.<br>
<div class="im"><br>
<br></div></blockquote><div>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. <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im">
<br>
&gt; - în primul rând, la USO nu mai este necesar ca asistentul să valideze tema<br>
&gt; ca și corectitudine, deci aș fi vrut ca după evaluarea temei să se poată<br>
&gt; (opțional) rula un script care pe baza output-ului (vmchecker-std{out,err})<br>
&gt; să genereze un fișier grade.vmr cu nota deja trecută în el. Singura parte<br>
&gt; mai tricky aici ar fi specificarea directă a numelui fișierului script care<br>
&gt; să fie inclus în pack-ul trimis tester-ului.<br>
<br>
<br>
</div>Parsarea fișierelor și calculul depunctărilor se poate face în trei locuri:<br>
* pe storer<br>
* pe tester în host<br>
* pe tester în guest<br>
<br>
<br>
Există niște restricții:<br>
* pe storer doresc ca nicio acțiune să nu mai fie executată de<br>
utilizatorul uso/cpl/so/etc. Totul să fie făcut sub user www (asta<br>
pentru a scăpa de cerința pentru posix-acl).<br>
* pe tester(host) aș dori să se execute cât mai puține taskuri<br>
adiționale. Asta pentru a reduce cerințele asupra mașinii și pentru<br>
simplificare.<br>
* pe tester(guest) nu mă interesează ce se întâmplă.<br>
<br>
<br>
Se poate implementa funcționalitatea asta în tester(guest)?<br>
<br></blockquote><div><br>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.<br>

<br>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 &quot;ok&quot; 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ă.<br>

 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
PS: Am trimis și pe listă, poate ar cineva idei mai bune.<br>
<br></blockquote><div><br>Any and all feedback and ideas are greatly appreciated.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


--<br>
 .<br>
<font color="#888888">..: Lucian<br>
</font></blockquote></div><br>Dacă ești de acord cu variantele voi încerca să implementez o parte din ele și să le pun pe github.<br><br>Călin<br>