------=_Part_3646799_2033535669.1407486058409
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Hi Didn't do a too deep code review, but from a first glance=20
You need to add a new VdcActionType that is called BackupInfo, and use tha=
t when you call RunAction. Hope it helps,=20
Oved On Aug 8, 2014 11:11 AM, =3D?UTF-8?B?5Yqb5rOiIOeOiw=3D=3D?=3D <wlblea=
boy(a)126.com> wrote:
Hi, everyone:
I added a button on the Template Tab, in the client side, It=E2=80=99s OK,
Added the button=E2=80=99s callback like this:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
private void backup()
{
BackupInfoParameters param =3D new BackupInfoParameters();
Frontend.RunAction(VdcActionType.Unknown, param, new
IFrontendActionAsyncCallback() {
@Override
public void executed(FrontendActionAsyncResult result) {
}
});
}
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
The BackupInfoCommand.java is :
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.bll.utils.PermissionSubject;
import org.ovirt.engine.core.common.action.BackupInfoParameters;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
/**
* Created by leaboy on 8/7/14.
*/
public class BackupInfoCommand <T extends BackupInfoParameters> extends
CommandBase<T>{
public BackupInfoCommand(T parameters){
super(parameters);
}
@Override
public List<PermissionSubject> getPermissionCheckSubjects() {
return Collections.emptyList();
}
@Override
protected boolean canDoAction() {
return true;
}
@Override
protected void executeCommand() {
int a;
a =3D 1;
try{
Runtime.getRuntime().exec("touch /tmp/tmp.txt");
}catch (IOException e){
e.printStackTrace();
}
}
}
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
And the BackupInfoParameters.java is:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
package org.ovirt.engine.core.common.action;
/**
* Created by leaboy on 8/7/14.
*/
public class BackupInfoParameters extends VdcActionParametersBase implement=
s
java.io.Serializable{
private static final long serialVersionUID =3D -1363077467684414051L;
private VdcActionType _actionType;
//public BackupInfoParameters(){}
public BackupInfoParameters(){_actionType =3D VdcActionType.Unknown;}
public VdcActionType getActionType() {
return _actionType;
}
}
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Built the code success, but when I clicked the button, got a dialog with th=
e
error info:
Error while executing action: A Request to the Server failed with the
following Status Code: 500
I debug it , find the error is raised at :
protected VdcReturnValueBase evaluateCorrelationId(CommandBase<?>
commandBase) {
VdcReturnValueBase returnValue =3D null;
// Evaluate and set the correlationId on the parameters, fails on
invalid correlation id
returnValue =3D
ExecutionHandler.evaluateCorrelationId(commandBase.getParameters());
if (returnValue !=3D null) {
log.warnFormat("CanDoAction of action {0} failed. Reasons: {1}"=
,
commandBase.getActionType(),
StringUtils.join(returnValue.getCanDoActionMessages(),
','));
}
// Set the correlation-id on the command
=20
commandBase.setCorrelationId(commandBase.getParameters().getCorrelationId()=
)
;
return returnValue;
}
------=_Part_3646799_2033535669.1407486058409
Content-Type: multipart/related;
boundary="----=_Part_3646800_431746878.1407486058409"
------=_Part_3646800_431746878.1407486058409
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<html><body><div><p dir=3D"ltr">Hi</p>
<p dir=3D"ltr">Didn't do a too deep code review, but from a first
glance <b=
r>
You need to add a new VdcActionType that is called BackupInfo, and use that=
when you call RunAction. </p>
<p dir=3D"ltr">Hope it helps, <br>
Oved</p>
<div class=3D"quote">On Aug 8, 2014 11:11 AM,
=3D?UTF-8?B?5Yqb5rOiIOeOiw=3D=
=3D?=3D &lt;wlbleaboy(a)126.com&gt; wrote:<br
type=3D'attribution'></div><br>=
<div><head></head><body style=3D"word-wrap: break-word;
-webkit-nbsp-mode: =
space; -webkit-line-break: after-white-space; font-size: 14px; font-family:=
=E5=AE=8B=E4=BD=93, sans-serif;"><div style=3D"color: rgb(0, 0,
0);">Hi, e=
veryone:</div><div style=3D"color: rgb(0, 0, 0);"><span
class=3D"Apple-tab-=
span" style=3D"white-space:pre">=09</span>I added a button on the
Template =
Tab, in the client side, It’s OK,</div><div style=3D"color: rgb(0,
0,=
0);"><img src=3D"cid:871E2E8A-B375-456F-B2CF-9E25AB718A23"
type=3D"image/p=
ng"></div><div style=3D"color: rgb(0, 0,
0);"><br></div><div style=3D"color=
: rgb(0, 0, 0);">Added the button’s callback like
this:</div><div sty=
le=3D"color: rgb(0, 0, 0);">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D</div><div style=3D"color: rgb(0, 0,
0);"> private v=
oid backup()</div><div style=3D"color: rgb(0, 0, 0);">
{</div>=
<div style=3D"color: rgb(0, 0, 0);">
BackupInfoP=
arameters param =3D new BackupInfoParameters();</div><div style=3D"color:
r=
gb(0, 0, 0);">
Frontend.RunAction(VdcActionType.=
Unknown, param, new IFrontendActionAsyncCallback() {</div><div
style=3D"col=
or: rgb(0, 0, 0);">
@Override</div=
<div style=3D"color: rgb(0, 0, 0);">
&nb=
sp; public void
executed(FrontendActionAsyncResult result) {</div><div styl=
e=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color:
rgb(0, 0, 0);">&n=
bsp; }</div><div
style=3D"color: rgb(0, =
0, 0);"> });</div><div
style=3D"color: rgb(0, 0,=
0);"> }</div><div style=3D"color: rgb(0, 0,
0);">=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div
style=3D"colo=
r: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0,
0);">The BackupI=
nfoCommand.java is :</div><div style=3D"color: rgb(0, 0,
0);">=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div
style=3D"colo=
r: rgb(0, 0, 0);">package org.ovirt.engine.core.bll;</div><div
style=3D"col=
or: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0,
0);">import org=
.ovirt.engine.core.bll.utils.PermissionSubject;</div><div style=3D"color:
r=
gb(0, 0, 0);">import org.ovirt.engine.core.common.action.BackupInfoParamete=
rs;</div><div style=3D"color: rgb(0, 0,
0);"><br></div><div style=3D"color:=
rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0,
0);">import java.i=
o.IOException;</div><div style=3D"color: rgb(0, 0, 0);">import
java.util.Co=
llections;</div><div style=3D"color: rgb(0, 0, 0);">import
java.util.List;<=
/div><div style=3D"color: rgb(0, 0, 0);"><br></div><div
style=3D"color: rgb=
(0, 0, 0);">/**</div><div style=3D"color: rgb(0, 0,
0);"> * Created by=
leaboy on 8/7/14.</div><div style=3D"color: rgb(0, 0,
0);"> */</div><=
div style=3D"color: rgb(0, 0, 0);">public class BackupInfoCommand <T
ext=
ends BackupInfoParameters> extends CommandBase<T>{</div><div
style=
=3D"color: rgb(0, 0, 0);"> public BackupInfoCommand(T
paramete=
rs){</div><div style=3D"color: rgb(0, 0, 0);">
s=
uper(parameters);</div><div style=3D"color: rgb(0, 0,
0);"> }<=
/div><div style=3D"color: rgb(0, 0, 0);"><br></div><div
style=3D"color: rgb=
(0, 0, 0);"> @Override</div><div
style=3D"color: rgb(0, 0, 0);=
"> public List<PermissionSubject>
getPermissionCheckSubj=
ects() {</div><div style=3D"color: rgb(0, 0, 0);">
&nbs=
p; return Collections.emptyList();</div><div style=3D"color: rgb(0, 0,
0);"=
}</div><div style=3D"color: rgb(0,
0, 0);"><br></div><div st=
yle=3D"color: rgb(0, 0,
0);"> @Override</div><div style=3D"col=
or: rgb(0, 0, 0);"> protected boolean canDoAction()
{</div><di=
v style=3D"color: rgb(0, 0, 0);">
return true;</=
div><div style=3D"color: rgb(0, 0, 0);">
}</div><div style=3D"=
color: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0,
0);"><br></d=
iv><div style=3D"color: rgb(0, 0, 0);">
@Override</div><div st=
yle=3D"color: rgb(0, 0, 0);"> protected void
executeCommand() =
{</div><div style=3D"color: rgb(0, 0, 0);">
int =
a;</div><div style=3D"color: rgb(0, 0, 0);">
a =
=3D 1;</div><div style=3D"color: rgb(0, 0, 0);">
=
try{</div><div style=3D"color: rgb(0, 0, 0);">
=
Runtime.getRuntime().exec("touch
/tmp/tmp.txt");</div><div st=
yle=3D"color: rgb(0, 0, 0);">
}catch (IOExceptio=
n e){</div><div style=3D"color: rgb(0, 0, 0);">
=
e.printStackTrace();</div><div style=3D"color: rgb(0,
0, 0);"=
}</div><div
style=3D"color: rgb(0, 0, 0);"><br=
</div><div style=3D"color: rgb(0, 0, 0);">
}</div><div style=
=3D"color: rgb(0, 0,
0);">}</div><div style=3D"color: rgb(0, 0, 0);">=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div style=
=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color:
rgb(0, 0, 0);">And=
the BackupInfoParameters.java is:</div><div style=3D"color: rgb(0, 0,
0);"=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><di=
v style=3D"color: rgb(0, 0, 0);">package org.ovirt.engine.core.common.actio=
n;</div><div style=3D"color: rgb(0, 0,
0);"><br></div><div style=3D"color: =
rgb(0, 0, 0);">/**</div><div style=3D"color: rgb(0, 0,
0);"> * Created=
by leaboy on 8/7/14.</div><div style=3D"color: rgb(0, 0,
0);"> */</di=
v><div style=3D"color: rgb(0, 0, 0);">public class BackupInfoParameters
ext=
ends VdcActionParametersBase implements java.io.Serializable{</div><div sty=
le=3D"color: rgb(0, 0, 0);"> private static final long
serialV=
ersionUID =3D -1363077467684414051L;</div><div style=3D"color: rgb(0, 0,
0)=
;"> private VdcActionType _actionType;</div><div
style=3D"colo=
r: rgb(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0,
0);"> &nbs=
p; //public BackupInfoParameters(){}</div><div style=3D"color: rgb(0, 0,
0)=
;"><br></div><div style=3D"color: rgb(0, 0,
0);"> public Backu=
pInfoParameters(){_actionType =3D VdcActionType.Unknown;}</div><div style=
=3D"color: rgb(0, 0, 0);"><br></div><div style=3D"color:
rgb(0, 0, 0);">&nb=
sp; public VdcActionType getActionType() {</div><div
style=3D"color:=
rgb(0, 0, 0);"> return
_actionType;</div><div s=
tyle=3D"color: rgb(0, 0, 0);"> }</div><div
style=3D"color: rgb=
(0, 0, 0);">}</div><div style=3D"color: rgb(0, 0,
0);">=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div style=3D"color:
rgb=
(0, 0, 0);"><br></div><div style=3D"color: rgb(0, 0,
0);">Built the code su=
ccess, but when I clicked the button, got a dialog with the error info:</di=
v><div style=3D"color: rgb(0, 0,
0);"><br></div><div><b><font color=3D"#ff2=
600">Error while executing action: A Request to the Server failed with the =
following Status Code: 500</font></b></div><div style=3D"color:
rgb(0, 0, 0=
);"><br></div><div style=3D"color: rgb(0, 0, 0);">I
debug it , find the err=
or is raised at :</div><div style=3D"color: rgb(0, 0,
0);"><br></div><div><=
div style=3D"color: rgb(0, 0, 0);">protected VdcReturnValueBase evaluateCor=
relationId(CommandBase<?> commandBase) {</div><div
style=3D"color: rg=
b(0, 0, 0);"> VdcReturnValueBase
returnValue =3D=
null;</div><div style=3D"color: rgb(0, 0,
0);"><br></div><div style=3D"col=
or: rgb(0, 0, 0);"> // Evaluate and set
the corr=
elationId on the parameters, fails on invalid correlation
id</div><div>&nbs=
p; <b> <font
color=3D"#ff2600">returnValue =3D Executio=
nHandler.evaluateCorrelationId(commandBase.getParameters());</font></b></di=
v><div style=3D"color: rgb(0, 0, 0);">
if (retur=
nValue !=3D null) {</div><div style=3D"color: rgb(0, 0,
0);"> =
log.warnFormat("CanDoAction of action {0}
faile=
d. Reasons: {1}", commandBase.getActionType(),</div><div
style=3D"color: rg=
b(0, 0, 0);">
=
StringUtils.join(returnValue.getCanDoActionMessages(),
','));</div>=
<div style=3D"color: rgb(0, 0, 0);"><br></div><div
style=3D"color: rgb(0, 0=
, 0);"> }</div><div
style=3D"color: rgb(0, 0, 0)=
;"> // Set the correlation-id on the
command</di=
v><div style=3D"color: rgb(0, 0, 0);">
commandBa=
se.setCorrelationId(commandBase.getParameters().getCorrelationId());</div><=
div style=3D"color: rgb(0, 0, 0);">
return retur=
nValue;</div><div style=3D"color: rgb(0, 0, 0);">
}</div></div=
</div></body></html>
------=_Part_3646800_431746878.1407486058409
Content-type: image/png; name="871E2E8A-B375-456F-B2CF-9E25AB718A23.png"
Content-ID: <871E2E8A-B375-456F-B2CF-9E25AB718A23>
Content-disposition: inline;
filename="871E2E8A-B375-456F-B2CF-9E25AB718A23.png"
Content-transfer-encoding: base64
iVBORw0KGgoAAAANSUhEUgAAAxMAAAA+CAYAAABQgEYlAAAKQWlDQ1BJQ0MgUHJvZmlsZQAA
SA2dlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJj
RRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFY
FO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3
QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnO
Gbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J
8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyO
MBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2
JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/K
v4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR
6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMkbj96An3r
WxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0gS4w
AixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfA
DXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgY
KoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvh
SrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHk
AwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3E
VmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/Bi
fCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7Y
QbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRP
ShxFQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TX
l3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGS
txJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPK
UgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2q
bapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqX
NMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNY
Z6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/
YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1
u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJpr
XWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuE
fdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hwodRV
25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+
Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHB
u4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uN
FksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNc
lrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyR
BJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10z
PSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTk
muRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41l
G99uit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr
31l9V/ndzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mP
ZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFt
xWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sT
q+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3O
HS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5
cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972
un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm9
9Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV
0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0x5Hp7E/4
T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAqqElEQVR4Ae2dB9xUxfX3D0qvIiJNlGIEaQqo
qBAb2LBiL1hfg4lKyD8xiW9MLB+NbzRIokYTjRV7B/OqCIgVsYAo2AAVEQRBEJAOiv/9zpOz
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
PYC9OnUB1oMPPuhOoPsgtGvXbrPb+vhu7o477ui+mfvRRx8JF3d8+umnsuuuu/pRs7Jr/o0b
N07H40AwV463bds27VaOFi0bn171KQxb3z9fe751smTJEjnyyCPT+PMZUurjsssuc4e1s+Hv
7bffloceekj+/ve/ZxOtYGGDZeHQMt+IHjZsmOy///455cPtl9yCaWQIGAKGgCFgCBgChkA5
IlBQZQIA+DzoaaedlhgLvp3LjxuUp02blpcyofmfeuqp6fwXL14szz77rAwePNh9vjTtUYaW
bLHNp4gIytw9UIg6QQF68sknHTtckHb66afLlClTZO+9986HxS0S1y8LDHzyySdy0UUXyQsv
vJD1N6DXrl0rDzzwQGJlgjqxr2RtkWq3TA0BQ8AQMAQMAUMgAoGCKxMR+bjv2E+YMEG4Fpxb
khFUoa+++kqmT5/u7idYvny5vPTSS+7ijqh0snXn2nEEsDVr1rh8EWLJE8GMFYwDDjhAFi5c
KFOnTnXP8IDAiN+3334rPDNzzIVsb731lixYsMDNqBOGuM8884yblW7RooVjDcWlR48ebiY+
LK+quH8BgX/ZsmWOHy44GTt2rJxwwgnpcsGr3nLMVe3cBRFWFnB47733XF117NhRvv76a1f+
QtYJfEDgRRu4+uqrXX2gTO62227yhz/8wdXXLbfcIqxE4D5o0CA55ZRTXDz941bI6667Tv7x
j3+4S15QVm688Ubnfc0110jv3r1l++23l7vvvltat24tK1askFWrVslf//rXzVbONM1czM6d
OzsllVWLli1byh133OH4pn1xg+Uf//hHhyEmdzmsX79ejj32WDnxxBMd/19++aVceeWVDoeb
b75Z3n33XamZuk2cuJdffrlT5u677z53sdzhhx/usAjLA0XTyBAwBAwBQ8AQMAQMgWIjULQz
E3PmzHGC1PHHHy9cwoHw6xMXdSDAcwNgIYl82YrCZSAoEaxUIMwdd9xxTmhj
ZpmtUPDDVpWj
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
TkSuQmCC
------=_Part_3646800_431746878.1407486058409
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Devel mailing list
Devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel
------=_Part_3646800_431746878.1407486058409--
------=_Part_3646799_2033535669.1407486058409--