Search in sources :

Example 1 with TYPE

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());
            }
        }
    });
}
Also used : Action0(rx.functions.Action0) MalformedURLException(java.net.MalformedURLException) VirtualMachineTaskStatus(io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus) TYPE(io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus.TYPE)

Example 2 with TYPE

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);
            }
        }
    });
}
Also used : TaskStatus(org.apache.mesos.Protos.TaskStatus) Protos(org.apache.mesos.Protos) MesosExecutorDriver(org.apache.mesos.MesosExecutorDriver) TYPE(io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus.TYPE)

Aggregations

TYPE (io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus.TYPE)2 VirtualMachineTaskStatus (io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus)1 MalformedURLException (java.net.MalformedURLException)1 MesosExecutorDriver (org.apache.mesos.MesosExecutorDriver)1 Protos (org.apache.mesos.Protos)1 TaskStatus (org.apache.mesos.Protos.TaskStatus)1 Action0 (rx.functions.Action0)1