<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix"><br>
      I am using Firefox 27.0.1<br>
      <br>
      On 03/10/2014 02:27 PM, Aline Manera wrote:<br>
    </div>
    <blockquote cite="mid:531DF5F9.4000402@linux.vnet.ibm.com"
      type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix"><br>
        I still can not detach a cdrom from a vm.<br>
        Same error I commented before.<br>
        <br>
        After changing it:<br>
        <br>
        diff --git a/ui/js/src/kimchi.guest_edit_main.js
        b/ui/js/src/kimchi.guest_edit_main.js<br>
        index cdd6d49..232ba08 100644<br>
        --- a/ui/js/src/kimchi.guest_edit_main.js<br>
        +++ b/ui/js/src/kimchi.guest_edit_main.js<br>
        @@ -57,7 +57,7 @@ kimchi.guest_edit_main = function() {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('.replace', container).on('click', replaceCDROM);<br>
        &nbsp;<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('.detach', container).on('click', function(e) {<br>
        -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; event.preventDefault();<br>
        +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //event.preventDefault();<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var settings = {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title : i18n['KCHAPI6004M'],<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; content : i18n['KCHVMCD6001M'],<br>
        <br>
        I could see the confirmation dialog for 1 sec and then got the
        error <br>
        <br>
        <div class="error-msg error-icon">
          <div class=" error-text">
            <h4>ERROR CODE</h4>
          </div>
          <div class="error-text"> <span>404 Not Found</span> </div>
          <div class="error-text">
            <h4>REASON</h4>
          </div>
          <div class="error-text"> <span>Unexpected query string
              parameters: cdrom</span> </div>
          <div class="error-text">
            <h4>STACK</h4>
          </div>
          <div class="error-text">
            <pre>Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/lib/python2.7/dist-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py", line 40, in __call__
    raise sys.exc_info()[1]
HTTPError: (404, 'Unexpected query string parameters: cdrom')
</pre>
          </div>
        </div>
        <br>
        <br>
        <br>
        On 03/10/2014 06:44 AM, Hongliang Wang wrote:<br>
      </div>
      <blockquote
        cite="mid:1394444648-18944-6-git-send-email-hlwang@linux.vnet.ibm.com"
        type="cite">
        <pre wrap="">Allow user to manipulate CDROM(s) in a VM:
1) Attach one or more CDROM(s) (only for stopped VM);
2) Replace a CDROM with another ISO file path;
3) Detach a CDROM from a VM (only for stopped VM).

Signed-off-by: Hongliang Wang <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:hlwang@linux.vnet.ibm.com">&lt;hlwang@linux.vnet.ibm.com&gt;</a>
---
 ui/css/theme-default/guest-edit.css           | 144 ++++++++++++++++++++++---
 ui/images/theme-default/guest-icon-sprite.png | Bin 0 -&gt; 6748 bytes
 ui/js/src/kimchi.guest_edit_main.js           | 105 ++++++++++++++++--
 ui/js/src/kimchi.guest_main.js                |  20 +++-
 ui/pages/guest-edit.html.tmpl                 | 150 ++++++++++++++++----------
 ui/pages/guest.html.tmpl                      |   1 +
 6 files changed, 345 insertions(+), 75 deletions(-)
 create mode 100644 ui/images/theme-default/guest-icon-sprite.png

diff --git a/ui/css/theme-default/guest-edit.css b/ui/css/theme-default/guest-edit.css
index f4ccdee..43f71c0 100644
--- a/ui/css/theme-default/guest-edit.css
+++ b/ui/css/theme-default/guest-edit.css
@@ -17,36 +17,53 @@
  */
 #guest-edit-window {
     font-size: 13px;
-    height: 380px;
-    width: 420px;
+    height: 400px;
+    width: 600px;
 }

-.guest-edit-fieldset {
-    float: left;
+#guest-edit-tabs {
+    background: transparent;
+    border: none;
+    height: 100%;
+    padding: 0;
+}
+
+#form-guest-edit-general,
+#form-guest-edit-storage {
     padding: 1em;
 }

+.guest-edit-fieldset {
+    padding-right: 0;
+}
+
 .guest-edit-wrapper-label, .guest-edit-wrapper-controls {
     display: inline-block;
 }

-.guest-edit-wrapper-controls input[type="text"][disabled] {
-    color: #bbb;
-    background-color: #fafafa;
-    cursor: not-allowed;
+.guest-edit-wrapper-label {
+    height: 38px;
+    line-height: 38px;
+    margin-top: 5px;
+    vertical-align: top;
+    width: 80px;
 }

-.guest-edit-wrapper-label {
-    width: 10em;
+#form-guest-edit-storage .guest-edit-wrapper-label {
+    width: 60px;
 }

 .guest-edit-wrapper-controls {
-    width: 18em;
+    width: 470px;
+}
+
+#form-guest-edit-storage .guest-edit-wrapper-controls {
+    width: 486px;
 }

 .guest-edit-wrapper-controls input[type="text"] {
+    font-size: 16px;
     height: 38px;
-    line-height: 38px;
     background: #fff;
     -webkit-border-radius: 5px;
     border-radius: 5px;
@@ -54,7 +71,7 @@
     border-top: 1px solid #bbb;
     border-left: 1px solid #bbb;
     padding-left: 10px;
-    width: 100%;
+    width: 450px;
 }

 .guest-edit-wrapper-controls input[type="text"][disabled] {
@@ -62,3 +79,104 @@
     background-color: #fafafa;
     cursor: not-allowed;
 }
+
+.guest-edit-cdrom-row-container {
+    max-height: 180px;
+    overflow: auto;
+}
+
+.guest-edit-cdrom-row-container input[type="text"] {
+    width: 400px;
+}
+
+.guest-edit-cdrom-button {
+    background: url("../images/theme-default/guest-icon-sprite.png") no-repeat left top transparent;
+    border: none;
+    height: 25px;
+    vertical-align: middle;
+    width: 25px;
+}
+
+.guest-edit-cdrom-button.attach {
+    margin: 15px 0 0 521px;
+}
+
+.guest-edit-cdrom-button.attach:hover {
+    background-position: 0 -27px;
+}
+
+.guest-edit-cdrom-button.attach:focus {
+    background-position: 0 -54px;
+}
+
+.guest-edit-cdrom-button.attach:active {
+    background-position: 0 -81px;
+}
+
+.guest-edit-cdrom-button.attach[disabled] {
+    background-position: 0 -108px;
+}
+
+.guest-edit-cdrom-button.replace {
+    background-position: -27px 0;
+}
+
+.guest-edit-cdrom-button.replace:hover {
+    background-position: -27px -27px;
+}
+
+.guest-edit-cdrom-button.replace:focus {
+    background-position: -27px -54px;
+}
+
+.guest-edit-cdrom-button.replace:active {
+    background-position: -27px -81px;
+}
+
+.guest-edit-cdrom-button.replace[disabled] {
+    background-position: -27px -108px;
+}
+
+.guest-edit-cdrom-button.detach {
+    background-position: -54px 0;
+}
+
+.guest-edit-cdrom-button.detach:hover {
+    background-position: -54px -27px;
+}
+
+.guest-edit-cdrom-button.detach:focus {
+    background-position: -54px -54px;
+}
+
+.guest-edit-cdrom-button.detach:active {
+    background-position: -54px -81px;
+}
+
+.guest-edit-cdrom-button.detach[disabled] {
+    background-position: -54px -108px;
+}
+
+#message-container {
+    color: #555;
+    font-size: 14px;
+    height: 100%;
+    line-height: 56px;
+}
+
+#message-container .message {
+    background: transparent;
+}
+
+#message-container .success {
+    color: green;
+}
+
+#message-container .error {
+    color: red;
+}
+
+#message-container .content {
+    margin: 0;
+    position: static;
+}
diff --git a/ui/images/theme-default/guest-icon-sprite.png b/ui/images/theme-default/guest-icon-sprite.png
new file mode 100644
index 0000000000000000000000000000000000000000..81edb5945d3bd204313a6d53b55cecf17ee97679
GIT binary patch
literal 6748
zcma)BbyQSew7v`soze!4l2Ve=JxJ%!-O}9yh|~~L(jYJl(hSWYf=Ht@NQ0nAhjjVo
zx86VR&amp;$sSA=iIy3I(y&amp;st#iM%_jlv9HC0Fm9})rpKmt)!)Wxh?m=S}Ii&lt;uv)AoMW{
zuFWeIMd06mSMeugI&gt;tlbscP&amp;407R7k4J;rxpAO^1^Mz&lt;A;jMrkVUvhhyI{dFt|!j=
zP+tWPH#d8CU(6!_D0tgj``X(v1vvXUF{wZ_wC$eT;{gDDH$+iRKX75cAS6_Org&lt;RZ
zCO?NQJwWyydFBy*3KNxfBK1dkVEar?rqvMfU@_5R1Zk7lJR7{r%ULs1(QHu0SZTC*
zZrH$;5*4==z4J*&lt;US1yb#?GdY{3JVPlr?8Ge{SU&gt;&lt;!|;-&gt;YJcc{f*bsk&amp;x_sk6G!E
z*%jBC)oOBL0TUCGth~T`0Uw*6or*s466^S5bTMp032U^Hg)4&gt;WhE-&gt;X%+}TW=YR~5
zz%hW|$RK)rTl)L!*HJ|u5cA{6{-`zDY-H&lt;zZL^7`Y0%BS7RVDT6|aMo{!gOgSfROl
z1JpuOL!&amp;^I9$ZQc7tpShE{8`65USC0*n3K#U%q&lt;vijkLxXNjPjHr|?bG&lt;eCT;kCMk
zhH%VK2?BwrqoSd?CzK8N!&amp;WF7&lt;d44NqtD5Su~J7fO+Bx$&amp;=0G20$jQ|5fvXlUbPh$
z7n94*Sq1DC4Y~{tj^;mRA2HU})&amp;|y^T6VAiGyY;U`X;);c7VqF4UC-h4J*@K`TIx#
zm~#piOu#|1P~7KtnnEn;6A(WEEQrHaIr|sgOaHx1I;b(mDFL#gfNlPLI_BQ`kDZm(
zmeW=pOzvj=00aWb$F*o05ZZFV1oofHhvkb3dn_bBd3le^L&lt;@5srxx|DehY`g1!yBP
z&gt;um&gt;;KVw7jnFxSDz{$hIvM@8}tUBB}Sr*+Uad8cn`|v!7pI@yRG1gr{T4n{H8XFr!
zLP99HxVVO~0+UR|PO1kQ1sf0A;&amp;^;KJPv25sj2@Fb$`c_)zzIGf%9wMvA{oy#&lt;H&amp;I
zTL7wnQ!&lt;SNPDcvtHy;d-A+VUdI~2%T%jEx3oz&amp;YsjCbS)*j}EWpZ{`pcHRZOp9pvW
zDp}#O-PSE%p^wqwXaCW@qiGZi8X6k&lt;{r&amp;s*vh-(KSx$&gt;m%GqauCMF9gYpV~9jY5Z;
zL+M4Hk^?fzoM63*4m(cat{h$5FJ5c-WHvk(-IJtynvn%VfL_AO!wy#pSk5(&gt;^p|Rt
z*muGV-8RV^S3&amp;wOH!4;uq#-&amp;S6(uk(La}74-nS&amp;YdPq&amp;F3&gt;l$_Ri7~_BZM|s|ATe~
zNNM6bB*Vp#{mfl+_}e!e&amp;zgppNj%&amp;_&gt;RFP0JNl0IqqntNg(2T*pC)2^rVrWuo}w?^
z(JWmBmmJ8$Dfowv6elRZ_4V})0DE}a24-gP5g+f_)!;?9i@^k9&lt;BXo}?z}+HH`um2
z2lfq6b)a^dBq39Y-k&lt;&lt;|uCn?B&amp;-xud)Z5F;&gt;lus;E3~XZWCgRaoz@Dg8;2Br6p8rw
zy`_Xh+YXH4QAlHdz1UI%5ps}$xd1cNnVDJyQ2?^^k&gt;9KYw8l^jT|myRb4Cr{i9Oov
z_Tplh#R8rI`5fGQ5hiJD9BIVHSsw-$E;vxZPby&amp;oG{f?A)eLSwEr5EW?%IUm;WHFZ
z^e`cnl6lOv8Zn9pNK=P%TCFuXvnw}IZW74iZ)0nNyK!YfFluf?vD+v{UPqJT&lt;s~E*
zaQNaMC`b&lt;($&gt;t4Y`;(lBl`%-N+W29SW36SGx;Km@JU%t^1II&lt;-n1%@1J*Sx8Xe_mc
z0Ma0Bykf1!Do7gQFVqSrquvTFmaJROZ|kV@;&amp;bte0VInVB1m}n&gt;EdL(cdHDNen17L
z`0kE87DkSMjo&lt;ZffJ&lt;TWoJ9A9P$-J+QI&amp;=c)#YvY&lt;2oLdo`y{5_?hG5stSC2W@5ty
zpqk_ZkJ3dD7FvIfX#^F!b;W}V&lt;9Bj=gyXhOI4jk5;7W;VoHKe-cfFhz#lGB5&gt;2t{T
zrjrTsz)qapkSn2OnjVZ5Iku$-a9saW`BEuncsz~zHS$&gt;ERhGSH{zK-tv^TkxgiDL}
z3V^J`$a9_?@uZk~y0O2TAfAyodwWR+165|P2(y|tHAk0a@vr8rXkN%biWvxn(Euzr
zRC;x2b2CE;hd6;|N}w`WWf&amp;B&amp;hrz5JSzNrvP_#-WN4|Cz%se89(-W7@d&lt;nk13*R?W
z8vpU*&amp;x|E0Ku+K~kFvk0;8u((S!U|zU^DLjSh)e6YMxyS?&amp;tl&amp;P5smoe&lt;VFWKaB#H
zyS2F3N~_*nvhInsnBSz&gt;zFCC|mtj&gt;V)=}P$%dW^+foQ&lt;HYmnZU&amp;&lt;+ZDCv9i^7Ky~G
z;jQs(&amp;rf9|h~g;z*Z?7Uk2O6v7cIcV+(Vo`^rqltKnuuehJ^4vf&gt;D(KKTy6~jFixT
z3184f%V1r4F}nZj&amp;~M^S1;dR$69KvM(8b^1^KR0e_H;L_K*&lt;{b$kT*}7&lt;igaQ1|IP
z7pGepU=tM&lt;7JkakZtjp@){M}gJ|ornHZVOiv!1+!{4yqC;q#gdCW9TQb)yF5iK&amp;c-
zs8J8*a+BXm=T}Q7&lt;8?$3mnab*yz=Na&lt;xo5*Gqb)r$s&lt;$j)!j$2{7XJm%+UUZcRz}C
z#E9Wqon_{o4}=J{HQ2`(0Ufw9FJ5^HK6F%7Y&amp;h+W-m|LX-h)_pye(6pX*;&amp;jx16Na
zfA?2oe7M|SbjlC=IN90RLuxy{e?GvxBxiO&gt;3&gt;RFEN~vwxJzv}h*S+--il&gt;(k-|6z!
z=hj(+6IfF*rL`K);H;&gt;t3-FjnAs%)M0i@3Jq;EzhMH$Maq^Fi(rkdf;F4tg2lL_xc
zZ%n4Ar+&gt;`Vm|hUT+_3BWGcz)#ErNc1tybMD$&amp;IjE$Vqm}Q+9LXUF-~MRCq~wZ!s2m
zMf2PY8hClMt{^ThJ~jP9gNe=o9=R1%hCnd$@sXvmMd_9wNWeiHGp#{oWo4(Y=TW~n
zU@2JoP9IO!yyOgzQrRdR$NcChw-|hQ?&lt;&lt;!Q&gt;4h9iYHGeUx-WNl1F?A4etc$a^=n7#
zy(-?`-VeSsC+ZS1kxx&gt;{kB^Uci+HRo)zIH?!5pOM)v$ccBks;x4ULQ#4~y`Ld0Yy&amp;
z-le7jiR{KVs`55AX~*dzFJ83G)tZOkbRz+OC%onHhYC&lt;0fLw{&lt;S!LBx*m01b(GxVV
zc#J(-AWGYe)LJAWA|k`)z^V@*&amp;mvxH&gt;OYBbHS$J*ArKlU4@4CL&gt;5t!W&gt;2Ub=5D&amp;It
z@&lt;JCZyQTo&amp;nePg_!7Jf-x;ZvHrlqbbh&gt;hh~g+w+xk)ha18ym52yt%M|Uu1i{Q(r0r
zfEQ#srfp1#0&amp;jiX+_KYc`w=9I&lt;L_E&amp;Ufzue1fA%wZ~wH}E!W5!#tH&gt;lZGoYJu;l&amp;4
z*7tEGfqwVZx34HE)A%#YuPs+rq;G&gt;al&amp;z=AHOzrz&amp;}FoLV`#L&amp;m^#ppmHj#RY$w9B
z*=44LyS7boDnHe#1SRjAvC79`ST%F=Gm&amp;p0xsy#}#(yprYY*2`B)?=-n@1@PvYR8+
z_Wf9}&lt;)w!{+wj?^i&lt;PddXgo3zm%Lt;g;&amp;ko&gt;V|1qsO$5cnW{reOzcZc?0lhTY_Q&gt;k
z29m2gP;PGS{A^7f;myTi0G897;rYQhh@2khtF!UE*G?_mwF$1|t$kbJ6wr-ZtRYlk
z5)Gl)Gg(JnH~E-}!ydX#vT#Ych`JKP=z%PtjiMXJ%_iDBo3UHm%|3#-SfqN=mMWTz
zt81`_SvT~nif?Jn{!%Nt&lt;Ml7iR%9!34tW}QH@a~qfJ7Q?qx&gt;#JTACPSF4t97=PYc@
z@)0yz?mi)s1yLLVMI0#U&amp;x4)Pk!R;u##(hn?IB^KGgAZk417LqpQ?YU=l!i|U2P|m
zRV%CK6WWz5+VXDqN0yh@=o7K&lt;e^+vmV$vQcQ|H~&lt;rsh!Q+^K0+sr~HU6Yymj&gt;+@c9
zc&gt;0!qNHXU9^J**P$Q~rR2y0c&amp;@Ska`NY(E;Gx#-nxYW1sw4LYLFU-4+n+Lq8ha&gt;*@
zN(3Ov%6YV&gt;rXm%K&amp;t&lt;E8TslZ=7TkfT(&lt;kleCr=L|{;eH+U?VS$L5%Rae;*vYu4y2R
zry*{H@kFvf2PoK#U^FYZ_7=|{$=vIvjATM}yk0XAe66si0FDBKB_5=wJ=Z&amp;XjI(A%
z70roAwZm271MM0UjE9R0{^=m&amp;{p0^bB4)nPVTmGln@)qL&gt;(eJ&amp;B^Q%xvKyjWtIbgk
zFq_7a{KTpyojiSoCM^%sB#I50E%CjeAz#dkMHM8_0X2&amp;fU!UukvQxG&lt;uaV{?#5Q0T
zu*&amp;t|r&amp;1&amp;~(WQud!u3Z2E^ur0?M@W@ib?rV;&gt;PIj+xyjus0^kW+;#jGw=l%rj&lt;}GF
zF@MDOo5j^j*H1Qsy4W_^Rsh)Z*Vm=f@CR`^{es7mMWanW@mYhz-h-vFdR$HaRfXLt
z$VgPbVhX=qGqH1Y{P(+Km$v4=DoQs+x-%Ycz)QJ6d?IZWlhnpufZxgaiB!&lt;3mc19S
z4xbB&amp;&lt;9Mq}7^8c;e&amp;txRHN=~o`A;{Et*xV=qN+y8+?&gt;};^BJ45h(Cwsj5j-8!4Ru8
zc#}ruRna(tETKeNE268GdzLVI0(CuakKgG$K4S4Vvd2G%&amp;K6)^NS5!`_apK(e`F7+
zh*?%F*&amp;L@KmZLaI5Y1rjfjbaTk34f$&amp;y&amp;VBdqCT!cgIFf(LmhZH)${W^0b$W;N&amp;)n
zse5)7h-tODy(DO;zn({MgQAT42}x0jws0K&gt;{7aA^R}AjKiB|Y^Bj&lt;&lt;MF#&gt;U;YCSvp
z=SU$A9PcQu1QRpE08}_Q9tzbbsHRiP;c68#On4;yiQw&lt;pEd}*2``&amp;)S!Phs7_PSJk
zT4K`k&lt;BfDzVN$&lt;K+cwYvTS=c^-+FLyC*OHbB#HWK4Yu19a5Aq`$dMOwsHHB+Px(4o
z$e-R^Lzq~sGv7Z6`&amp;rKZ3R8eg5DL5jqW%oT+alU_|DplFxyWPSXO$zfiD89#4-Z|q
zu6Y6m8yp=ch&lt;elL8)k1q=5e3v1+0^f7}4tNi2W$)a5-4@;L+Kc961&lt;2JVLui`Mqfc
zv$o@nctkx8%Y#{AqOJz{iMw2RtYi&gt;eHbYV0;Bnu@!vn##m3&amp;0tClPaa7GjZoNbtHd
z?CofjQx7-oZ5Ot@XG?P*S-0cP-k&amp;A^zD&amp;wQ&lt;D(l2`Cq4Sxp&amp;lolI~3{P2Kz6^14*`
zQLtdw0xkruwo!;lrYYOg?ytvUC&amp;my{OlGsJ14n%PK!8w1mOh#dUo7aBqie2&gt;tA2qJ
zb#(DHBDVP;U1*{n7nSI|Sjmt?jx)XbG&lt;l%5z+(~X$6%C)Sy4;K7&lt;x;+lT-MTbbI@u
z6mKc!%SCT)t#57BRV`Evp3s&lt;sD4r(@;u?Q&amp;@vIGdei&gt;R($&lt;r&amp;Pu_`1Vbod6er*4vX
zYuvaAHX55}BpKnuuc)f(+sq?k$uzyq=Dypjzc5&gt;De-FRS&gt;}tA!?94Q4v1FKWpq9va
zBIB~y2|$%8?`{32D#N`Kmw$%{1l)&amp;qp8Y;=Y-lJ^Qx&amp;BE2J=Lu+*WTGGmuC}b)v7n
zJKyD-MLkv1a9T%VW@ilpm)tQ8gB-b4O;sP`!96)pfBy}UE#ijTfqruTFZ6c8yC3T1
zRL?;Aih5nU*Qoi0NkiLaKPJ~_%|Lpg-+XTx7q{&lt;bCp{R7GrDL&lt;T$#|&gt;4L$YUkI3=I
zCst|~o3Xn|DS&gt;Iz-OfWsvCHU)tJ#E4oSdAte)~j3!;Z(2DW`B^^&amp;$ZUy@*P0BI;sI
z3yYN(o0^3z_s3UT!}PW{xM{L)dIcv{fZHh8tdL_;{9g-y&gt;=n&amp;W@~cKi1uA&gt;%|42cZ
zlQ%v~IMuv=Q|GP|zb*gydJZxix!C+jHa5J%?&amp;e~DdoZuiQpkPDJ~2I=_v70_Rxw8{
z{J_H4dAqkm836g)@5!2b^cVENn({93x&gt;lY=g`|!_17r81iIiv)6+KO&amp;0InRlwt-Ia
zq5nU^r#)DQmr6h0b&amp;~$AZKq*qMIJV&amp;Fw{y~c%8z^AI9ZUySyKI9ThLy`&amp;y(Y-|FqM
z!|qMWK)9i?f$@EpgAq5-UbJNMuS+UP+~_yMvo|9nqr;u&gt;Ep&lt;uHE&gt;I%4tm==GOzdaN
zU^?LFYD}i4Qr!5H(Bt;L7${tzsX!`P{QWbQs^40kqgV7R2yOw_bF(W|=a2hCtFJk@
zWv=H}_%~@N77;46X&gt;21!q1QvjJknIB$FX=O5)v&lt;^v+QPB)h64@%D&amp;q9MCELWCG!u*
zWkKx-4WI!5t=bkAzpq{#Hh}@NK4jqxj&amp;zMRmHqQUZ?shQ(&amp;d8{_2BG+SA(=6om~fW
z|F%B6wsf8jkeTE@Tmg&lt;ETYlO&amp;fERyxx5p$5s}0N=SxQS$xvIAJwYr;&amp;2c74)i{?&gt;2
z_-x(4w#D|8{i)utSY4};|Bu&amp;UNhD{&gt;_K4Ws{g&amp;Et=r0;t8(~plvE&lt;Ar;u90$wQRWU
zeX6LRtkQ3ti8)W&gt;16tz(TJatF(57Gie@4f;vdr&gt;-&amp;F+6U5)1xZ=Ka4$e&amp;|kd=q@n$
zts`)mHz6UR9Ha_wf$jahYU}Efrkv)fdffo+;tD2ZuFZ){;VU+@&amp;)7Avad^iU_jdEu
z5Q`;1GW0%633oEp&amp;fcDPCb2Uzaq8Y)tlTN`{7U$HM~B4j&amp;%Q*DKCp&gt;@=)CcgjE=$y
z!tt23jCq?t#G$Dk{=Q~v`?aPfq)@dxa!PMJ|C#|JB?qAfqYU4cqD)SNvLuN*Uz!}|
zPtDBCU!2uN+&amp;u&gt;laUZ=ff!^XftF91Q5R}IBC8fT_VXZKt7oZW9fA|1iY+?TuiUXLr
zzaRCHtozJ4cWHF9h966!^eDF|{MuPT0R-e(gdRr)Q&gt;$_23D~}Es2Ui4sHPw|$@83$
z1o9%78WVxt#83wPWxR@9kLqEX(&lt;v97+$XiB&gt;Tv&amp;&lt;QloX7nbgppGcMXBVVFfs4$Dlc
z;zy$%{2hZ5o0tXaw-!pw!1&amp;VA?Z;Z?57B=l?7nGXddEK&lt;q)LW&amp;WAT(Tfq@gd0E|}c
zpszFNZ)!$H#je3pz-m})1CjEV2TBw@!PJFYJzjR&amp;pN55aS5Kv{Hq$&gt;&amp;)XVP^D%AZH
zQ7U1Mm#d4Sn66SBO;D~o*{P~qP~GfEt~ll5j_wj%3eJo(p4c&amp;H8}xfZk&gt;bW&amp;M256r
zcQ9;nzFeQIT6!T{9?*8m6`&lt;UkpjhX&lt;GtIeNtD-u{^_a1mSs*P+E?xnW)|3LX_;q=#
zCh5K54|F%i9w=k9!&lt;47!Kw{ZnOx*WTJYgrd;f%v0!}TpUJ%3NR_V@Q0H2jaJ$TRiT
z{YgrUwv8JdlH83*Xg|JX1AQ7^kbCMbcFILYD(I!Nh{39_%i&amp;vY8WS2vT9*Wp9h`Y)
zk{MRv)o{v{0=kqmoFxyYUY~m;N;=5$&amp;P5diy;)UX&gt;AK-`=}cAioD0Fb!0Y;b7Z;av
z_vLGs-TS+nyb`;&lt;fmF1cj?P2|w2A8-yriTg7r&amp;?|qM?p)TR3*IGSmQVYDP6{RD&lt;qQ
zvJcDbFg5d~iLU~eIEGPom=Zs7Z3&lt;|mGn{q8oc!wQiKS(mAI7Ea=)U?!WuJgVYsbE&amp;
zWqAXdkKazuY=&amp;sd{`1@HxHBiP+=fYu6=-7E^)f7673HhbVG8BR!nW;)iwii6W&gt;aE&gt;
zp$T71+-6|f^67&amp;x1M&gt;{UHYxYe%g6=0U`#7Is5*wDj?&gt;`Zs;Z%}kD7m7(*IDKw|J1M
zaD^dTT{4Y#NT;zxhX`0}hgR)`TNV$%EXluDRgxKjEi&gt;4D?1?;&lt;^aO;FF5~u%NfjnQ
zTmw3WXT+qIQCUh~hpP9YZ*sY0CvZj&amp;BYF^5&amp;}ehS^sdVe{mcB*=T=r;j-rE7RDl5w
z3cprphwrvj6o-5oTU-ggted)rD(?$$&lt;jQhMSJ%pjSH4!!TH?fVlpwBSD`hMhqe$Dv
zKuYZ5KIy(YMYB1rF3}%&lt;FTZBLJo-}YieS--5((u#PgJB@76;_d@oD$I@0VZRJ?oy`
z`~HuV+sxg6&gt;|=P&amp;A2aVQG&gt;&gt;GxduPqf#r5-yFkGx!yBR=!1S{%9Ejt{FdO0-G&gt;y@kb
zV6;_vw5g)o`{mmETT(Q(f9w&lt;gyeIyc8#Fd)Y;XOD@85*H3lU*qKT@c{9D;1&amp;a~P%*
z++d8w)ws#8-M9RkBkVdm-G~vUXF$&amp;EW?A=(P&lt;*UzFD7^-M6d&amp;0z`@NeR4e1YB&amp;J&gt;&lt;
zK`l8(fYG=tSb+^0)`pQe(I)c`3a#8&lt;4rt!Z$zaskJR1WdezkSq_8X1Ifcj`b+-S8r
z6|D@VZ2*y?z0r?lUN%S+6aJt5{g~B5Bd}lsC}k15s+knvcUyQ-hD7$dG&lt;USRFPjt;
z7Iq1}d&gt;JyZH{Uph5p_8yD#1(cqSO6NkpdC-p=RDg&gt;=hLibd_i&amp;eSeaP&lt;&amp;q+Ewn@S+
zo)K*-`V7HA6me{C&lt;jIM5FVp*x8J~Z57mNZq&gt;WnFvg5z7e&amp;sNK)n*+3NlM5E)fpz2j
z@x0^C;SxsH=6R}Bh*719Ux&lt;o^7}i;Y(d~E;2U5zas8&amp;jHp&gt;g$y{^OgwJr-u+Z;+6S
zgRtGos@mK~s!Bo|aLU}EOnV9p)(AwUCc6~xx4XmvMj5VzpGe&gt;yx7azA&gt;I!V!A?J^N
zVqjqKXM4Mc{k&gt;Tfr`}UmZf&gt;Gq_P@^k$fWd1o2}*5tF_T|dhlsUAcKMPNh-Bo0FfGJ
zXqR-p)FLhrc$XwPZ1#K(%Q%ZqEr6(QjwpFc+tM;+dkV?=%n|fpH2#Z6QK(?r0S)ad
zUQY(@@&amp;g(YlBAV@m7qlt*V*cifalR#Ppqk_X@Kj?*Q3k4!JjPhrNbU&gt;^e5@%YZ|Sd
z?|U@uEw=J49ME8p#&lt;lO8UXI!jvvhDMce_5_cAKA{Pm&amp;xnx(V$%CugKhR&lt;37s{rNTC
z($(3SV$`8goRyVzXyf=azT`*r4-9)uYd-u(_IBb;a@_^h%zr&lt;5AWE8wwenU`{{t?*
Bz#9Mn

literal 0
HcmV?d00001

diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
index f32fbb1..cdd6d49 100644
--- a/ui/js/src/kimchi.guest_edit_main.js
+++ b/ui/js/src/kimchi.guest_edit_main.js
@@ -16,18 +16,110 @@
  * limitations under the License.
  */
 kimchi.guest_edit_main = function() {
-    var guestEditForm = $('#form-guest-edit');
+    var buttonContainer = $('#action-button-container');
+    $('#guest-edit-tabs').tabs({
+        beforeActivate: function(event, ui) {
+            var deactivated = ui['oldPanel'];
+            if($(deactivated).attr('id') === 'form-guest-edit-general') {
+                $(buttonContainer).addClass('hidden');
+            }
+            else {
+                $(buttonContainer).removeClass('hidden');
+            }
+        }
+    });
+
+    var guestEditForm = $('#form-guest-edit-general');
     var saveButton = $('#guest-edit-button-save');
-    kimchi.retrieveVM(kimchi.selectedGuest, function(guest) {
+
+    var refreshCDROMs = function() {
+        kimchi.listVMStorages({
+            vm: kimchi.selectedGuest,
+            storageType: 'cdrom'
+        }, function(storages) {
+            var rowHTML = $('#cdrom-row-tmpl').html();
+            var container = $('#guest-edit-cdrom-row-container');
+            $(container).empty();
+
+            $.each(storages, function(index, storage) {
+                storage['vm'] = kimchi.selectedGuest;
+                var templated = kimchi.template(rowHTML, storage);
+                container.append(templated);
+            });
+
+            var replaceCDROM = function(event) {
+                event.preventDefault();
+                kimchi.selectedGuestStorage = $(this).data('dev');
+                kimchi.window.open("guest-cdrom-edit.html");
+            };
+
+            $('input[type="text"][name="cdrom"]', container).on('click', replaceCDROM);
+            $('.replace', container).on('click', replaceCDROM);
+
+            $('.detach', container).on('click', function(e) {
+                event.preventDefault();
+                var settings = {
+                    title : i18n['KCHAPI6004M'],
+                    content : i18n['KCHVMCD6001M'],
+                    confirm : i18n['KCHAPI6002M'],
+                    cancel : i18n['KCHAPI6003M']
+                };
+
+                var dev = $(this).data('dev');
+                kimchi.confirm(settings, function() {
+                    kimchi.deleteVMStorage({
+                        vm: kimchi.selectedGuest,
+                        dev: dev
+                    }, function() {
+                        kimchi.topic('kimchi/vmCDROMDetached').publish();
+                    });
+                });
+            });
+        });
+    };
+
+    var initContent = function(guest) {
         guest['icon'] = guest['icon'] || 'images/icon-vm.png';
         for ( var prop in guest) {
             $('input[name="' + prop + '"]', guestEditForm).val(guest[prop]);
         }
-    });

-    $('#guest-edit-button-cancel').on('click', function() {
-        kimchi.window.close();
-    });
+        refreshCDROMs();
+
+        $('#guest-edit-attach-cdrom-button').on('click', function(event) {
+            event.preventDefault();
+            kimchi.window.open("guest-storage-add.html");
+        });
+
+        var messageNode = $('#message-container');
+        var onAttached = function(params) {
+            $(messageNode).empty();
+            kimchi.message.success(i18n['KCHVMCD6006M'], messageNode);
+            refreshCDROMs();
+        };
+        var onReplaced = function(params) {
+            $(messageNode).empty();
+            kimchi.message.success(i18n['KCHVMCD6007M'], messageNode);
+            refreshCDROMs();
+        };
+        var onDetached = function(params) {
+            $(messageNode).empty();
+            kimchi.message.success(i18n['KCHVMCD6008M'], messageNode);
+            refreshCDROMs();
+        };
+
+        kimchi.topic('kimchi/vmCDROMAttached').subscribe(onAttached);
+        kimchi.topic('kimchi/vmCDROMReplaced').subscribe(onReplaced);
+        kimchi.topic('kimchi/vmCDROMDetached').subscribe(onDetached);
+
+        kimchi.clearGuestEdit = function() {
+            kimchi.topic('kimchi/vmCDROMAttached').unsubscribe(onAttached);
+            kimchi.topic('kimchi/vmCDROMReplaced').unsubscribe(onReplaced);
+            kimchi.topic('kimchi/vmCDROMDetached').unsubscribe(onDetached);
+        };
+    };
+
+    kimchi.retrieveVM(kimchi.selectedGuest, initContent);

     var submitForm = function(event) {
         $(saveButton).prop('disabled', true);
@@ -42,6 +134,7 @@ kimchi.guest_edit_main = function() {
         }, function(err) {
             kimchi.message.error(err.responseJSON.reason);
         });
+
         event.preventDefault();
     };

diff --git a/ui/js/src/kimchi.guest_main.js b/ui/js/src/kimchi.guest_main.js
index 94fcf01..bbd8d3d 100644
--- a/ui/js/src/kimchi.guest_main.js
+++ b/ui/js/src/kimchi.guest_main.js
@@ -85,11 +85,28 @@ kimchi.vmdelete = function(event) {
     });
 };

+kimchi.vmmedia = function(event) {
+    var vm = $(this).closest('li[name=guest]');
+    var vm_id = vm.attr('id');
+    kimchi.selectedGuest = vm_id;
+    kimchi.window.open({
+        url: 'guest-media.html',
+        close: function() {
+            kimchi.clearGuestMedia();
+        }
+    });
+};
+
 kimchi.vmedit = function(event) {
     var vm = $(this).closest('li[name=guest]');
     var vm_id=vm.attr("id");
     kimchi.selectedGuest = vm_id;
-    kimchi.window.open("guest-edit.html");
+    kimchi.window.open({
+        url: 'guest-edit.html',
+        close: function() {
+            kimchi.clearGuestEdit();
+        }
+    });
 };

 kimchi.openVmConsole = function(event) {
@@ -233,6 +250,7 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) {
     if (vmRunningBool) {  //If the guest is not running, do not enable reset
         guestActions.find("[name=vm-reset]").on({click : kimchi.vmreset});
     }
+    guestActions.find("[name=vm-media]").on({click : kimchi.vmmedia});
     guestActions.find("[name=vm-edit]").on({click : kimchi.vmedit});
     guestActions.find("[name=vm-delete]").on({click : kimchi.vmdelete});

diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
index a461031..ba6ba2b 100644
--- a/ui/pages/guest-edit.html.tmpl
+++ b/ui/pages/guest-edit.html.tmpl
@@ -27,74 +27,114 @@
         &lt;div class="close"&gt;X&lt;/div&gt;
     &lt;/header&gt;
     &lt;div class="content"&gt;
-        &lt;form id="form-guest-edit"&gt;
-            &lt;fieldset class="guest-edit-fieldset"&gt;
-                &lt;div&gt;
-                    &lt;div class="guest-edit-wrapper-label"&gt;
-                        &lt;label for="guest-edit-id-textbox"&gt;
-                            $_("Name")
-                        &lt;/label&gt;
+        &lt;div id="guest-edit-tabs"&gt;
+            &lt;ul&gt;
+                &lt;li&gt;
+                    &lt;a href="#form-guest-edit-general"&gt;$_("General")&lt;/a&gt;
+                &lt;/li&gt;
+                &lt;li&gt;
+                    &lt;a href="#form-guest-edit-storage"&gt;$_("Storage")&lt;/a&gt;
+                &lt;/li&gt;
+            &lt;/ul&gt;
+            &lt;form id="form-guest-edit-general"&gt;
+                &lt;fieldset class="guest-edit-fieldset"&gt;
+                    &lt;div&gt;
+                        &lt;div class="guest-edit-wrapper-label"&gt;
+                            &lt;label for="guest-edit-id-textbox"&gt;
+                                $_("Name")
+                            &lt;/label&gt;
+                        &lt;/div&gt;
+                        &lt;div class="guest-edit-wrapper-controls"&gt;
+                            &lt;input id="guest-edit-id-textbox"
+                                name="name" type="text" /&gt;
+                        &lt;/div&gt;
                     &lt;/div&gt;
-                    &lt;div class="guest-edit-wrapper-controls"&gt;
-                        &lt;input id="guest-edit-id-textbox"
-                            name="name" type="text" /&gt;
+                    &lt;div&gt;
+                        &lt;div class="guest-edit-wrapper-label"&gt;
+                            &lt;label for="guest-edit-cores-textbox"&gt;
+                                $_("CPUs")
+                            &lt;/label&gt;
+                        &lt;/div&gt;
+                        &lt;div class="guest-edit-wrapper-controls"&gt;
+                            &lt;input
+                                id="guest-edit-cores-textbox"
+                                name="cpus"
+                                type="text"
+                                disabled="disabled" /&gt;
+                        &lt;/div&gt;
                     &lt;/div&gt;
-                &lt;/div&gt;
-                &lt;div&gt;
-                    &lt;div class="guest-edit-wrapper-label"&gt;
-                        &lt;label for="guest-edit-cores-textbox"&gt;
-                            $_("CPUs")
-                        &lt;/label&gt;
+                    &lt;div&gt;
+                        &lt;div class="guest-edit-wrapper-label"&gt;
+                            &lt;label for="guest-edit-memory-textbox"&gt;
+                                $_("Memory")
+                            &lt;/label&gt;
+                        &lt;/div&gt;
+                        &lt;div class="guest-edit-wrapper-controls"&gt;
+                            &lt;input id="guest-edit-memory-textbox"
+                                name="memory"
+                                type="text"
+                                disabled="disabled" /&gt;
+                        &lt;/div&gt;
                     &lt;/div&gt;
-                    &lt;div class="guest-edit-wrapper-controls"&gt;
-                        &lt;input
-                            id="guest-edit-cores-textbox"
-                            name="cpus"
-                            type="text"
-                            disabled="disabled" /&gt;
+                    &lt;div&gt;
+                        &lt;div class="guest-edit-wrapper-label"&gt;
+                            &lt;label for="guest-edit-icon-textbox"&gt;
+                                $_("Icon")
+                            &lt;/label&gt;
+                        &lt;/div&gt;
+                        &lt;div class="guest-edit-wrapper-controls"&gt;
+                            &lt;input
+                                id="guest-edit-icon-textbox"
+                                name="icon"
+                                type="text"
+                                disabled="disabled" /&gt;
+                        &lt;/div&gt;
                     &lt;/div&gt;
-                &lt;/div&gt;
-                &lt;div&gt;
-                    &lt;div class="guest-edit-wrapper-label"&gt;
-                        &lt;label for="guest-edit-memory-textbox"&gt;
-                            $_("Memory")
-                        &lt;/label&gt;
+                &lt;/fieldset&gt;
+            &lt;/form&gt;
+            &lt;form id="form-guest-edit-storage"&gt;
+                &lt;fieldset class="guest-edit-fieldset"&gt;
+                    &lt;div id="guest-edit-cdrom-row-container" class="guest-edit-cdrom-row-container"&gt;&lt;/div&gt;
+                    &lt;div&gt;
+                        &lt;button id="guest-edit-attach-cdrom-button"
+                            class="guest-edit-cdrom-button attach"
+                            title="$_("Attach")"&gt;
+                        &lt;/button&gt;
                     &lt;/div&gt;
-                    &lt;div class="guest-edit-wrapper-controls"&gt;
-                        &lt;input id="guest-edit-memory-textbox"
-                            name="memory"
-                            type="text"
-                            disabled="disabled" /&gt;
-                    &lt;/div&gt;
-                &lt;/div&gt;
-                &lt;div&gt;
-                    &lt;div class="guest-edit-wrapper-label"&gt;
-                        &lt;label for="guest-edit-icon-textbox"&gt;
-                            $_("Icon")
-                        &lt;/label&gt;
-                    &lt;/div&gt;
-                    &lt;div class="guest-edit-wrapper-controls"&gt;
-                        &lt;input
-                            id="guest-edit-icon-textbox"
-                            name="icon"
-                            type="text"
-                            disabled="disabled" /&gt;
-                    &lt;/div&gt;
-                &lt;/div&gt;
-            &lt;/fieldset&gt;
-        &lt;/form&gt;
+                &lt;/fieldset&gt;
+            &lt;/form&gt;
+        &lt;/div&gt;
     &lt;/div&gt;
     &lt;footer&gt;
-        &lt;div class="btn-group"&gt;
-            &lt;button id="guest-edit-button-cancel" class="btn-normal"&gt;
-                &lt;span class="text"&gt;$_("Cancel")&lt;/span&gt;
-            &lt;/button&gt;
+        &lt;div id="action-button-container" class="btn-group"&gt;
             &lt;button id="guest-edit-button-save" class="btn-normal"&gt;
                 &lt;span class="text"&gt;$_("Save")&lt;/span&gt;
             &lt;/button&gt;
         &lt;/div&gt;
+        &lt;div id="message-container"&gt;&lt;/div&gt;
     &lt;/footer&gt;
 &lt;/div&gt;
+&lt;script id="cdrom-row-tmpl" type="text/html"&gt;
+    &lt;div&gt;
+        &lt;div class="guest-edit-wrapper-label"&gt;
+            &lt;label for="cdrom-{dev}"&gt;{dev}&lt;/label&gt;
+        &lt;/div&gt;
+        &lt;div class="guest-edit-wrapper-controls"&gt;
+            &lt;input id="cdrom-{dev}" name="cdrom" type="text"
+                data-vm="{vm}" data-dev="{dev}"
+                value="{path}" readonly="readonly" /&gt;
+            &lt;button class="guest-edit-cdrom-button replace"
+                data-vm="{vm}" data-dev="{dev}"
+                title="$_("Replace")"&gt;
+            &lt;/button&gt;
+            &lt;button class="guest-edit-cdrom-button detach"
+                data-vm="{vm}" data-dev="{dev}"
+                title="$_("Detach")"&gt;
+            &lt;/button&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/script&gt;
+
 &lt;script type="text/javascript"&gt;
     kimchi.guest_edit_main();
 &lt;/script&gt;
diff --git a/ui/pages/guest.html.tmpl b/ui/pages/guest.html.tmpl
index 0115837..a9737a5 100644
--- a/ui/pages/guest.html.tmpl
+++ b/ui/pages/guest.html.tmpl
@@ -56,6 +56,7 @@
                         &lt;span class="text"&gt;$_("Actions")&lt;/span&gt;&lt;span class="arrow"&gt;&lt;/span&gt;
                         &lt;div class="popover actionsheet right-side" style="width: 250px"&gt;
                             &lt;button class="button-big shutoff-disabled" name="vm-console" &gt;&lt;span class="text"&gt;$_("Console")&lt;/span&gt;&lt;/button&gt;</pre>
      </blockquote>
      <br>
      <blockquote
        cite="mid:1394444648-18944-6-git-send-email-hlwang@linux.vnet.ibm.com"
        type="cite">
        <pre wrap="">+                            &lt;button class="button-big shutoff-disabled" name="vm-media"&gt;&lt;span class="text"&gt;$_("Manage Media")&lt;/span&gt;&lt;/button&gt;</pre>
      </blockquote>
      <br>
      Why this was added?<br>
      <br>
      <blockquote
        cite="mid:1394444648-18944-6-git-send-email-hlwang@linux.vnet.ibm.com"
        type="cite">
        <pre wrap="">                             &lt;button class="button-big running-disabled" name="vm-edit"&gt;&lt;span class="text"&gt;$_("Edit")&lt;/span&gt;&lt;/button&gt;
                             &lt;a class="button-big red " name="vm-delete"&gt;$_("Delete")&lt;/a&gt;
                         &lt;/div&gt;
</pre>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Kimchi-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Kimchi-devel@ovirt.org">Kimchi-devel@ovirt.org</a>
<a class="moz-txt-link-freetext" href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel">http://lists.ovirt.org/mailman/listinfo/kimchi-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>