Hi forks, I'm working on CS + XCP. I have a question:
When starting VM, Async job "startvm" is sent to XCP Host via xapi. Then we have to wait until xapi task responses. This code here: void startVM(Connection conn, Host host, VM vm, String vmName) throws XmlRpcException { Task task = null; try { * task = vm.startOnAsync(conn, host, false, true);* try { //poll every 1 seconds , timeout after 10 minutes *waitForTask(conn, task, 1000, 10 * 60 * 1000);* *checkForSuccess(conn, task);* } catch (Types.HandleInvalid e) { if (vm.getPowerState(conn) == Types.VmPowerState.RUNNING) { task = null; return; } throw new CloudRuntimeException("Shutdown VM catch HandleInvalid and VM is not in RUNNING state"); } } catch (XenAPIException e) { String msg = "Unable to start VM(" + vmName + ") on host(" + _host.uuid +") due to " + e.toString(); s_logger.warn(msg, e); throw new CloudRuntimeException(msg); }finally { if( task != null) { try { task.destroy(conn); } catch (Exception e1) { s_logger.debug("unable to destroy task(" + task.toString() + ") on host(" + _host.uuid +") due to " + e1.toString()); } } } } Can you explain how xapi task work? How xapi queue work? When its task responses? Thanks, -- N.g.U.y.e.N.A.n.H.t.U