public AsyncCallFuture<CommandResult> createTemplateAsync(
TemplateInfo template, DataStore store) {
TemplateObject to = (TemplateObject) template;
AsyncCallFuture<CommandResult> future = new AsyncCallFuture<CommandResult>();
try {
to.stateTransit(TemplateEvent.CreateRequested);
} catch (NoTransitionException e) {
s_logger.debug("Failed to transit state:", e);
CommandResult result = new CommandResult();
result.setResult(e.toString());
future.complete(result);