@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<RegistrationContext> context) throws IOException { final byte status = input.readByte(); final String message = input.readUTF(); // Perhaps use message when the host failed final RegistrationContext registration = context.getAttachment(); // Complete the registration registration.completeRegistration(context, status == DomainControllerProtocol.PARAM_OK); }
/** * Create the transformers. This will remotely resolve the subsystem versions. * * @param extensions the extensions * @throws OperationFailedException */ private void processSubsystems(final Transformers transformers, final ModelNode extensions) throws OperationFailedException { this.transformers = transformers; final ModelNode subsystems = executeBlocking(new IOTask<ModelNode>() { @Override void sendMessage(FlushableDataOutput output) throws IOException { sendResponse(output, DomainControllerProtocol.PARAM_OK, extensions); } }); if(failed) { throw new OperationFailedException(new ModelNode("failed to setup transformers")); } final TransformationTarget target = transformers.getTarget(); for(final Property subsystem : subsystems.asPropertyList()) { final String subsystemName = subsystem.getName(); final ModelNode version = subsystem.getValue(); target.addSubsystemVersion(subsystemName, ModelVersion.fromString(version.asString())); } }
failed(SlaveRegistrationException.ErrorCode.HOST_ALREADY_EXISTS, DomainControllerMessages.MESSAGES.slaveAlreadyRegistered(hostName)); ModelNode result = operationExecutor.execute(READ_DOMAIN_MODEL, OperationMessageHandler.logging, this, OperationAttachments.EMPTY, handler); if (FAILED.equals(result.get(OUTCOME).asString())) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, result.get(FAILURE_DESCRIPTION).asString()); return; failed(e); return; sendCompletedMessage();
registrationContext.failed(SlaveRegistrationException.ErrorCode.HOST_ALREADY_EXISTS, failureDescription); context.getFailureDescription().set(failureDescription); return; if (as711) { final OperationFailedException failure = HostControllerLogger.ROOT_LOGGER.unsupportedManagementVersionForHost(major, minor, 1, 2); registrationContext.failed(SlaveRegistrationException.ErrorCode.INCOMPATIBLE_VERSION, failure.getMessage()); throw failure;
registrationContext.failed(SlaveRegistrationException.ErrorCode.HOST_ALREADY_EXISTS, failureDescription); context.getFailureDescription().set(failureDescription); return; if (as711) { final OperationFailedException failure = HostControllerLogger.ROOT_LOGGER.unsupportedManagementVersionForHost(major, minor, 1, 2); registrationContext.failed(SlaveRegistrationException.ErrorCode.INCOMPATIBLE_VERSION, failure.getMessage()); throw failure;
failed(SlaveRegistrationException.ErrorCode.HOST_ALREADY_EXISTS, DomainControllerLogger.ROOT_LOGGER.slaveAlreadyRegistered(hostName)); failed(SlaveRegistrationException.ErrorCode.UNKNOWN, result.get(FAILURE_DESCRIPTION).asString()); return; failed(e); return; sendCompletedMessage();
registrationContext.failed(SlaveRegistrationException.ErrorCode.HOST_ALREADY_EXISTS, failureDescription); context.getFailureDescription().set(failureDescription); context.stepCompleted(); final OperationFailedException failure = HostControllerMessages.MESSAGES.unsupportedManagementVersionForHost( major, minor, 1, 2); registrationContext.failed(failure); throw failure;
failed(SlaveRegistrationException.ErrorCode.HOST_ALREADY_EXISTS, DomainControllerLogger.ROOT_LOGGER.slaveAlreadyRegistered(hostName)); failed(SlaveRegistrationException.ErrorCode.UNKNOWN, result.get(FAILURE_DESCRIPTION).asString()); return; failed(e); return; sendCompletedMessage();
task.sendMessage(output); } catch (IOException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.failedToSendMessage(e.getMessage())); throw new IllegalStateException(e); } finally { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.failedToSendResponseHeader(e.getMessage())); throw new IllegalStateException(e); return task.get(); } catch (InterruptedException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.registrationTaskGotInterrupted()); throw new IllegalStateException(e); } catch (ExecutionException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.registrationTaskFailed(e.getMessage())); throw new IllegalStateException(e);
task.sendMessage(output); } catch (IOException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, e.getMessage()); throw new IllegalStateException(e); } finally { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, e.getMessage()); throw new IllegalStateException(e); return task.get(); } catch (InterruptedException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, e.getMessage()); throw new IllegalStateException(e); } catch (ExecutionException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, e.getMessage()); throw new IllegalStateException(e);
task.sendMessage(output); } catch (IOException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.failedToSendMessage(e.getMessage())); throw new IllegalStateException(e); } finally { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.failedToSendResponseHeader(e.getMessage())); throw new IllegalStateException(e); return task.get(); } catch (InterruptedException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.registrationTaskGotInterrupted()); throw new IllegalStateException(e); } catch (ExecutionException e) { failed(SlaveRegistrationException.ErrorCode.UNKNOWN, DomainControllerLogger.ROOT_LOGGER.registrationTaskFailed(e.getMessage())); throw new IllegalStateException(e);
final Boolean registered = executeBlocking(new IOTask<Boolean>() { @Override void sendMessage(final FlushableDataOutput output) throws IOException {
case DomainControllerProtocol.REGISTER_HOST_CONTROLLER_REQUEST: { final RegistrationContext context = new RegistrationContext(domainController.getExtensionRegistry(), true, domainHostExcludeRegistry); context.activeOperation = handlers.registerActiveOperation(header.getBatchId(), context, context); final RegistrationContext context = new RegistrationContext(domainController.getExtensionRegistry(), false, domainHostExcludeRegistry); context.activeOperation = handlers.registerActiveOperation(header.getBatchId(), context, context);
case DomainControllerProtocol.REGISTER_HOST_CONTROLLER_REQUEST: { final RegistrationContext context = new RegistrationContext(domainController.getExtensionRegistry(), true, domainHostExcludeRegistry); context.activeOperation = handlers.registerActiveOperation(header.getBatchId(), context, context); final RegistrationContext context = new RegistrationContext(domainController.getExtensionRegistry(), false, domainHostExcludeRegistry); context.activeOperation = handlers.registerActiveOperation(header.getBatchId(), context, context);
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<RegistrationContext> context) throws IOException { expectHeader(input, DomainControllerProtocol.PARAM_HOST_ID); final String hostName = input.readUTF(); final ModelNode hostInfo = new ModelNode(); hostInfo.readExternal(input); final RegistrationContext registration = context.getAttachment(); registration.initialize(hostName, hostInfo, context); if (domainController.getCurrentRunningMode() == RunningMode.ADMIN_ONLY) { registration.failed(SlaveRegistrationException.ErrorCode.MASTER_IS_ADMIN_ONLY, DomainControllerLogger.ROOT_LOGGER.adminOnlyModeCannotAcceptSlaves(RunningMode.ADMIN_ONLY)); return; } if (!domainController.getLocalHostInfo().isMasterDomainController()) { registration.failed(SlaveRegistrationException.ErrorCode.HOST_IS_NOT_MASTER, DomainControllerLogger.ROOT_LOGGER.slaveControllerCannotAcceptOtherSlaves()); return; } // Read the domain model async, this will block until the registration process is complete context.executeAsync(new ManagementRequestContext.AsyncTask<RegistrationContext>() { @Override public void execute(ManagementRequestContext<RegistrationContext> context) throws Exception { if (Thread.currentThread().isInterrupted()) throw new IllegalStateException("interrupted"); registration.processRegistration(); } }, registrationExecutor); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<RegistrationContext> context) throws IOException { expectHeader(input, DomainControllerProtocol.PARAM_HOST_ID); final String hostName = input.readUTF(); final ModelNode hostInfo = new ModelNode(); hostInfo.readExternal(input); final RegistrationContext registration = context.getAttachment(); registration.initialize(hostName, hostInfo, context); if (domainController.getCurrentRunningMode() == RunningMode.ADMIN_ONLY) { registration.failed(SlaveRegistrationException.ErrorCode.MASTER_IS_ADMIN_ONLY, DomainControllerMessages.MESSAGES.adminOnlyModeCannotAcceptSlaves(RunningMode.ADMIN_ONLY)); return; } if (!domainController.getLocalHostInfo().isMasterDomainController()) { registration.failed(SlaveRegistrationException.ErrorCode.HOST_IS_NOT_MASTER, DomainControllerMessages.MESSAGES.slaveControllerCannotAcceptOtherSlaves()); return; } // Read the domain model async, this will block until the registration process is complete context.executeAsync(new ManagementRequestContext.AsyncTask<RegistrationContext>() { @Override public void execute(ManagementRequestContext<RegistrationContext> context) throws Exception { registration.processRegistration(); } }, registrations); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<RegistrationContext> context) throws IOException { expectHeader(input, DomainControllerProtocol.PARAM_HOST_ID); final String hostName = input.readUTF(); final ModelNode hostInfo = new ModelNode(); hostInfo.readExternal(input); final RegistrationContext registration = context.getAttachment(); registration.initialize(hostName, hostInfo, context); if (domainController.getCurrentRunningMode() == RunningMode.ADMIN_ONLY) { registration.failed(SlaveRegistrationException.ErrorCode.MASTER_IS_ADMIN_ONLY, DomainControllerLogger.ROOT_LOGGER.adminOnlyModeCannotAcceptSlaves(RunningMode.ADMIN_ONLY)); return; } if (!domainController.getLocalHostInfo().isMasterDomainController()) { registration.failed(SlaveRegistrationException.ErrorCode.HOST_IS_NOT_MASTER, DomainControllerLogger.ROOT_LOGGER.slaveControllerCannotAcceptOtherSlaves()); return; } // Read the domain model async, this will block until the registration process is complete context.executeAsync(new ManagementRequestContext.AsyncTask<RegistrationContext>() { @Override public void execute(ManagementRequestContext<RegistrationContext> context) throws Exception { if (Thread.currentThread().isInterrupted()) throw new IllegalStateException("interrupted"); registration.processRegistration(); } }, registrationExecutor); }
/** * Create the transformers. This will remotely resolve the subsystem versions. * * @param extensions the extensions * @throws OperationFailedException */ private void processSubsystems(final Transformers transformers, final ModelNode extensions) throws OperationFailedException { this.transformers = transformers; final ModelNode subsystems = executeBlocking(new IOTask<ModelNode>() { @Override void sendMessage(FlushableDataOutput output) throws IOException { sendResponse(output, DomainControllerProtocol.PARAM_OK, extensions); } }); if(failed) { throw new OperationFailedException("failed to setup transformers"); } final TransformationTarget target = transformers.getTarget(); for(final Property subsystem : subsystems.asPropertyList()) { final String subsystemName = subsystem.getName(); final ModelNode version = subsystem.getValue(); target.addSubsystemVersion(subsystemName, ModelVersion.fromString(version.asString())); } }
/** * Create the transformers. This will remotely resolve the subsystem versions. * * @param extensions the extensions * @throws OperationFailedException */ private void processSubsystems(final Transformers transformers, final ModelNode extensions) throws OperationFailedException { this.transformers = transformers; final ModelNode subsystems = executeBlocking(new IOTask<ModelNode>() { @Override void sendMessage(FlushableDataOutput output) throws IOException { sendResponse(output, DomainControllerProtocol.PARAM_OK, extensions); } }); if(failed) { throw new OperationFailedException("failed to setup transformers"); } final TransformationTarget target = transformers.getTarget(); for(final Property subsystem : subsystems.asPropertyList()) { final String subsystemName = subsystem.getName(); final ModelNode version = subsystem.getValue(); target.addSubsystemVersion(subsystemName, ModelVersion.fromString(version.asString())); } }
void failed(SlaveRegistrationException.ErrorCode error, String message) { byte errorCode = error.getCode(); if(completed.compareAndSet(false, true)) { failed = true; final IOTask<?> task = this.task; if(task != null) { task.setFailed(); } try { sendFailedResponse(responseChannel, errorCode, message); } catch (IOException e) { DOMAIN_LOGGER.debugf(e, "failed to process message"); } activeOperation.getResultHandler().done(null); addFailureEvent(error); } }