Hi
----- Original Message -----
From: "力波 王" <wlbleaboy(a)126.com>
To: "Oved Ourfali" <oourfali(a)redhat.com>
Cc: devel(a)ovirt.org
Sent: Friday, August 8, 2014 10:34:38 AM
Subject: Re: [ovirt-devel] add a ***Command for a button
hi, Oved:
I don’t know how to add a VdcAction,
Is this could work:
public enum VdcActionType {
Unknown(0, QuotaDependency.NONE),
Backup(9000, QuotaDependency.NONE),
Yes
I don’t know whether is it need a ActionGroup.
You may not need to set ActionGroup for this
More info about oVirt Command architecture you can found at [1].
Martin Perina
[1]
http://www.ovirt.org/Backend_modules_bll
发件人: Oved Ourfali < oourfali(a)redhat.com >
日期: Fri, 8 Aug 2014 04:20:58 -0400 (EDT)
至: 力波 王 < wlbleaboy(a)126.com >
抄送: < devel(a)ovirt.org >
主题: Re: [ovirt-devel] add a ***Command for a button
Hi
Didn't do a too deep code review, but from a first glance
You need to add a new VdcActionType that is called BackupInfo, and use that
when you call RunAction.
Hope it helps,
Oved
On Aug 8, 2014 11:11 AM, =?UTF-8?B?5Yqb5rOiIOeOiw==?= < wlbleaboy(a)126.com >
wrote:
Hi, everyone:
I added a button on the Template Tab, in the client side, It’s OK,
Added the button’s callback like this:
=======================================================================
private void backup()
{
BackupInfoParameters param = new BackupInfoParameters();
Frontend.RunAction(VdcActionType.Unknown, param, new
IFrontendActionAsyncCallback() {
@Override
public void executed(FrontendActionAsyncResult result) {
}
});
}
=======================================================================
The BackupInfoCommand.java is :
=======================================================================
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 = 1;
try{
Runtime.getRuntime().exec("touch /tmp/tmp.txt");
}catch (IOException e){
e.printStackTrace();
}
}
}
=======================================================================
And the BackupInfoParameters.java is:
=======================================================================
package org.ovirt.engine.core.common.action;
/**
* Created by leaboy on 8/7/14.
*/
public class BackupInfoParameters extends VdcActionParametersBase implements
java.io.Serializable{
private static final long serialVersionUID = -1363077467684414051L;
private VdcActionType _actionType;
//public BackupInfoParameters(){}
public BackupInfoParameters(){_actionType = VdcActionType.Unknown;}
public VdcActionType getActionType() {
return _actionType;
}
}
=======================================================================
Built the code success, but when I clicked the button, got a dialog with the
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 = null;
// Evaluate and set the correlationId on the parameters, fails on invalid
correlation id
returnValue =
ExecutionHandler.evaluateCorrelationId(commandBase.getParameters());
if (returnValue != null) {
log.warnFormat("CanDoAction of action {0} failed. Reasons: {1}",
commandBase.getActionType(),
StringUtils.join(returnValue.getCanDoActionMessages(), ','));
}
// Set the correlation-id on the command
commandBase.setCorrelationId(commandBase.getParameters().getCorrelationId());
return returnValue;
}
_______________________________________________ Devel mailing list
Devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel
_______________________________________________
Devel mailing list
Devel(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel