use of io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus.TYPE in project mantis by Netflix.
the class VirtualMachineWorkerServiceLocalImpl method start.
@Override
public void start() {
logger.info("Starting VirtualMachineWorkerServiceLocalImpl");
Schedulers.newThread().createWorker().schedule(new Action0() {
@Override
public void call() {
try {
WrappedExecuteStageRequest request = null;
request = createExecuteStageRequest();
setupRequestFailureHandler(request.getRequest().getTimeoutToReportStart(), request.getRequestSubject(), new Action0() {
@Override
public void call() {
logger.error("launch error");
}
});
logger.info("onNext'ing WrappedExecuteStageRequest: {}", request.toString());
executeStageRequestObserver.onNext(request);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}, 2, TimeUnit.SECONDS);
// subscribe to vm task updates on current thread
vmTaskStatusObservable.subscribe(new Action1<VirtualMachineTaskStatus>() {
@Override
public void call(VirtualMachineTaskStatus vmTaskStatus) {
TYPE type = vmTaskStatus.getType();
if (type == TYPE.COMPLETED) {
logger.info("Got COMPLETED state for " + vmTaskStatus.getTaskId());
} else if (type == TYPE.STARTED) {
logger.info("Would send RUNNING state to mesos, worker started for " + vmTaskStatus.getTaskId());
}
}
});
}
use of io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus.TYPE in project mantis by Netflix.
the class VirualMachineWorkerServiceMesosImpl method start.
@Override
public void start() {
logger.info("Registering Mantis Worker with Mesos executor callbacks");
mesosDriver = new MesosExecutorDriver(new MesosExecutorCallbackHandler(executeStageRequestObserver));
// launch driver on background thread
executor.execute(new Runnable() {
@Override
public void run() {
try {
mesosDriver.run();
} catch (Exception e) {
logger.error("Failed to register Mantis Worker with Mesos executor callbacks", e);
}
}
});
// subscribe to vm task updates on current thread
vmTaskStatusObservable.subscribe(new Action1<VirtualMachineTaskStatus>() {
@Override
public void call(VirtualMachineTaskStatus vmTaskStatus) {
TYPE type = vmTaskStatus.getType();
if (type == TYPE.COMPLETED) {
Protos.Status status = mesosDriver.sendStatusUpdate(TaskStatus.newBuilder().setTaskId(TaskID.newBuilder().setValue(vmTaskStatus.getTaskId()).build()).setState(TaskState.TASK_FINISHED).build());
logger.info("Sent COMPLETED state to mesos, driver status=" + status);
} else if (type == TYPE.STARTED) {
Protos.Status status = mesosDriver.sendStatusUpdate(TaskStatus.newBuilder().setTaskId(TaskID.newBuilder().setValue(vmTaskStatus.getTaskId()).build()).setState(TaskState.TASK_RUNNING).build());
logger.info("Sent RUNNING state to mesos, driver status=" + status);
}
}
});
}
Aggregations