Search in sources :

Example 1 with RegisterExecutorMessage

use of mesos.internal.Messages.RegisterExecutorMessage in project jesos by groupon.

the class InternalExecutorDriver method start.

//
// ========================================================================
//
// Mesos ExecutorDriver API
//
// ========================================================================
//
@Override
public Status start() {
    if (!context.isStateMachine(DRIVER_NOT_STARTED)) {
        return context.getStateMachine();
    }
    try {
        driverStart();
        //
        // Register with Mesos Slave
        //
        final RegisterExecutorMessage message = RegisterExecutorMessage.newBuilder().setFrameworkId(context.getFrameworkId()).setExecutorId(context.getExecutorId()).build();
        eventBus.post(new RemoteMessageEnvelope(context.getDriverUPID(), context.getSlaveUPID(), message));
        context.setStateMachine(DRIVER_RUNNING);
    } catch (final Exception e) {
        context.setStateMachine(DRIVER_ABORTED);
        LOG.error(e, "Failed to create executor process for '%s'", context.getSlaveUPID());
        eventBus.post(new ExecutorCallback() {

            @Override
            public Runnable getCallback(final Executor executor, final ExecutorDriver executorDriver) {
                return new Runnable() {

                    @Override
                    public void run() {
                        final String message = format("Failed to create scheduler process for '%s': %s", context.getSlaveUPID(), e.getMessage());
                        LOG.debug("calling error(driver, %s)", message);
                        executor.error(executorDriver, message);
                    }
                };
            }
        });
    }
    return context.getStateMachine();
}
Also used : RegisterExecutorMessage(mesos.internal.Messages.RegisterExecutorMessage) RemoteMessageEnvelope(com.groupon.mesos.executor.ExecutorMessageEnvelope.RemoteMessageEnvelope) Executor(org.apache.mesos.Executor) ByteString(com.google.protobuf.ByteString) ExecutorDriver(org.apache.mesos.ExecutorDriver) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException)

Aggregations

ByteString (com.google.protobuf.ByteString)1 RemoteMessageEnvelope (com.groupon.mesos.executor.ExecutorMessageEnvelope.RemoteMessageEnvelope)1 IOException (java.io.IOException)1 ExecutionException (java.util.concurrent.ExecutionException)1 RegisterExecutorMessage (mesos.internal.Messages.RegisterExecutorMessage)1 Executor (org.apache.mesos.Executor)1 ExecutorDriver (org.apache.mesos.ExecutorDriver)1