Hi, Oved:
Get the new error :
Error while executing action: A Request to the Server failed: This
application is out of date, please click the refresh button on your
browser. ( The client cannot accept BackupInfo )
In the public VdcReturnValueBase executeAction()
actionAllowed is false
ÔÚ 8/8/14, 16:52£¬ "Martin Perina" <mperina(a)redhat.com> ÐŽÈë:
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