package com.neverwinterdp.scribengin.service;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.neverwinterdp.scribengin.dataflow.DataflowDescriptor;
import com.neverwinterdp.util.ExceptionUtil;
import com.neverwinterdp.vm.VM;
import com.neverwinterdp.vm.command.Command;
import com.neverwinterdp.vm.command.CommandResult;
public class VMScribenginServiceCommand {
static public class DataflowDeployCommand extends Command {
@JsonProperty
private DataflowDescriptor descriptor ;
public DataflowDeployCommand() { }
public DataflowDeployCommand(DataflowDescriptor dataflowDescriptor) {
this.descriptor = dataflowDescriptor;
}
@Override
public CommandResult<Boolean> execute(VM vm) {
CommandResult<Boolean> result = new CommandResult<Boolean>();
VMScribenginServiceApp app = (VMScribenginServiceApp) vm.getVMApplication();
try {
app.getScribenginService().deploy(descriptor);
result.setResult(true);
} catch (Exception e) {
result.setResult(false);
result.setErrorStacktrace(ExceptionUtil.getStackTrace(e));
}
return result;
}
}
static public class ShutdownCommand extends Command {
public ShutdownCommand() { }
@Override
public CommandResult<Boolean> execute(VM vm) {
CommandResult<Boolean> result = new CommandResult<Boolean>();
VMScribenginServiceApp app = (VMScribenginServiceApp) vm.getVMApplication();
try {
app.getScribenginService();
result.setResult(true);
} catch (Exception e) {
result.setResult(false);
result.setErrorStacktrace(ExceptionUtil.getStackTrace(e));
}
return result;
}
}
}