/** Asynchronously invokes cancel on the result handler for the operation */ private void cancel(final ManagementRequestContext<ExecuteRequestContext> context) { context.executeAsync(new ManagementRequestContext.AsyncTask<ExecuteRequestContext>() { @Override public void execute(ManagementRequestContext<ExecuteRequestContext> executeRequestContextManagementRequestContext) throws Exception { operation.getResultHandler().cancel(); } }, false); }
/** Asynchronously invokes cancel on the result handler for the operation */ private void cancel(final ManagementRequestContext<ExecuteRequestContext> context) { context.executeAsync(new ManagementRequestContext.AsyncTask<ExecuteRequestContext>() { @Override public void execute(ManagementRequestContext<ExecuteRequestContext> executeRequestContextManagementRequestContext) throws Exception { operation.getResultHandler().cancel(); } }, false); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<ServerInventory> context) throws IOException { context.executeAsync(new ManagementRequestContext.AsyncTask<ServerInventory>() { @Override public void execute(ManagementRequestContext<ServerInventory> serverInventoryManagementRequestContext) throws Exception { try { serverInventory.serverUnstable(serverProcessName); } finally { resultHandler.done(null); } } }); } }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<ServerInventory> context) throws IOException { context.executeAsync(new ManagementRequestContext.AsyncTask<ServerInventory>() { @Override public void execute(ManagementRequestContext<ServerInventory> serverInventoryManagementRequestContext) throws Exception { try { serverInventory.serverUnstable(serverProcessName); } finally { resultHandler.done(null); } } }); } }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Boolean> resultHandler, final ManagementRequestContext<Void> context) throws IOException { final byte param = input.readByte(); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> voidManagementRequestContext) throws Exception { if(param == DomainServerProtocol.PARAM_OK) { // Still in sync with the HC resultHandler.done(Boolean.TRUE); } else { // Out of sync, set restart-required resultHandler.done(Boolean.FALSE); } } }, false); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Boolean> resultHandler, final ManagementRequestContext<Void> context) throws IOException { final byte param = input.readByte(); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> voidManagementRequestContext) throws Exception { if(param == DomainServerProtocol.PARAM_OK) { // Still in sync with the HC resultHandler.done(Boolean.TRUE); } else { // Out of sync, set restart-required resultHandler.done(Boolean.FALSE); } } }); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Boolean> resultHandler, final ManagementRequestContext<Void> context) throws IOException { final byte param = input.readByte(); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> voidManagementRequestContext) throws Exception { if(param == DomainServerProtocol.PARAM_OK) { // Still in sync with the HC resultHandler.done(Boolean.TRUE); } else { // Out of sync, set restart-required resultHandler.done(Boolean.FALSE); } } }); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Boolean> resultHandler, final ManagementRequestContext<Void> context) throws IOException { final byte param = input.readByte(); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> voidManagementRequestContext) throws Exception { if(param == DomainServerProtocol.PARAM_OK) { // Still in sync with the HC resultHandler.done(Boolean.TRUE); } else { // Out of sync, set restart-required resultHandler.done(Boolean.FALSE); } } }, false); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<ServerInventory> context) throws IOException { final byte param = input.readByte(); // Started / Failed PARAM_OK final String message = input.readUTF(); // Server started/failed message context.executeAsync(new ManagementRequestContext.AsyncTask<ServerInventory>() { @Override public void execute(ManagementRequestContext<ServerInventory> serverInventoryManagementRequestContext) throws Exception { try { final ServerInventory inventory = context.getAttachment(); if(param == DomainServerProtocol.PARAM_OK) { inventory.serverStarted(serverProcessName); } else { inventory.serverStartFailed(serverProcessName); } } finally { resultHandler.done(null); } } }); } }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<ModelNode> resultHandler, final ManagementRequestContext<Void> context) throws IOException { context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> context) throws Exception { final ManagementResponseHeader response = ManagementResponseHeader.create(context.getRequestHeader()); final FlushableDataOutput output = context.writeMessage(response); try { output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } } }); resultHandler.cancel(); } }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<ModelNode> resultHandler, final ManagementRequestContext<Void> context) throws IOException { context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> context) throws Exception { final ManagementResponseHeader response = ManagementResponseHeader.create(context.getRequestHeader()); final FlushableDataOutput output = context.writeMessage(response); try { output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } } }); resultHandler.cancel(); } }
@Override public void sendRequest(final ActiveOperation.ResultHandler<OperationResponse> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("sending CompleteTxRequest for %d", context.getOperationId()); context.executeAsync(new ManagementRequestContext.AsyncTask<ExecuteRequestContext>() { @Override public void execute(ManagementRequestContext<ExecuteRequestContext> context) throws Exception { sendRequestInternal(resultHandler, context); } }, false); }
@Override public void sendRequest(final ActiveOperation.ResultHandler<OperationResponse> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("sending CompleteTxRequest for %d", context.getOperationId()); context.executeAsync(new ManagementRequestContext.AsyncTask<ExecuteRequestContext>() { @Override public void execute(ManagementRequestContext<ExecuteRequestContext> context) throws Exception { sendRequestInternal(resultHandler, context); } }, false); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<Void> context) throws IOException { expectHeader(input, DomainControllerProtocol.PARAM_SERVER_ID); final String serverName = input.readUTF(); expectHeader(input, DomainControllerProtocol.PARAM_HOST_ID); final String hostName = input.readUTF(); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> context) throws Exception { try { HostControllerLogger.ROOT_LOGGER.managedServerUnstable(serverName, hostName); } finally { resultHandler.done(null); } } }); } }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<Void> context) throws IOException { expectHeader(input, DomainControllerProtocol.PARAM_SERVER_ID); final String serverName = input.readUTF(); expectHeader(input, DomainControllerProtocol.PARAM_HOST_ID); final String hostName = input.readUTF(); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> context) throws Exception { try { HostControllerLogger.ROOT_LOGGER.managedServerUnstable(serverName, hostName); } finally { resultHandler.done(null); } } }); } }
@Override public void sendRequest(final ActiveOperation.ResultHandler<OperationResponse> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("sending ExecuteRequest for %d", context.getOperationId()); // WFLY-3090 Protect the communication channel from getting closed due to administrative // cancellation of the management op by using a separate thread to send context.executeAsync(new ManagementRequestContext.AsyncTask<ExecuteRequestContext>() { @Override public void execute(ManagementRequestContext<ExecuteRequestContext> context) throws Exception { sendRequestInternal(resultHandler, context); } }, false); }
@Override public void sendRequest(final ActiveOperation.ResultHandler<OperationResponse> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("sending ExecuteRequest for %d", context.getOperationId()); // WFLY-3090 Protect the communication channel from getting closed due to administrative // cancellation of the management op by using a separate thread to send context.executeAsync(new ManagementRequestContext.AsyncTask<ExecuteRequestContext>() { @Override public void execute(ManagementRequestContext<ExecuteRequestContext> context) throws Exception { sendRequestInternal(resultHandler, context); } }, false); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context) throws IOException { final ModelNode operation = new ModelNode(); ProtocolUtils.expectHeader(input, ModelControllerProtocol.PARAM_OPERATION); operation.readExternal(input); ProtocolUtils.expectHeader(input, ModelControllerProtocol.PARAM_INPUTSTREAMS_LENGTH); final int attachmentsLength = input.readInt(); context.executeAsync(new ManagementRequestContext.AsyncTask<ExecuteRequestContext>() { @Override public void execute(ManagementRequestContext<ExecuteRequestContext> context) throws Exception { doExecute(operation, attachmentsLength, context); } }); }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<ModelNode> resultHandler, final ManagementRequestContext<Void> context) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("Cancellation of %d requested", context.getOperationId()); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> context) throws Exception { final ManagementResponseHeader response = ManagementResponseHeader.create(context.getRequestHeader()); final FlushableDataOutput output = context.writeMessage(response); try { output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } } }, false); resultHandler.cancel(); } }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<ModelNode> resultHandler, final ManagementRequestContext<Void> context) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("Cancellation of %d requested", context.getOperationId()); context.executeAsync(new ManagementRequestContext.AsyncTask<Void>() { @Override public void execute(ManagementRequestContext<Void> context) throws Exception { final ManagementResponseHeader response = ManagementResponseHeader.create(context.getRequestHeader()); final FlushableDataOutput output = context.writeMessage(response); try { output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } } }, false); resultHandler.cancel(); } }