Refine search
/** * Send a failed operation response. * * @param context the request context * @param errorCode the error code * @param message the operation message * @throws IOException for any error */ static void sendFailedResponse(final ManagementRequestContext<RegistrationContext> context, final byte errorCode, final String message) throws IOException { final ManagementResponseHeader header = ManagementResponseHeader.create(context.getRequestHeader()); final FlushableDataOutput output = context.writeMessage(header); try { // This is an error output.writeByte(DomainControllerProtocol.PARAM_ERROR); // send error code output.writeByte(errorCode); // error message output.writeUTF(message); // response end output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } }
@Override public void handleRequest(final DataInput input, final ActiveOperation.ResultHandler<Void> resultHandler, final ManagementRequestContext<Void> context) throws IOException { final ManagementResponseHeader response = ManagementResponseHeader.create(context.getRequestHeader()); final FlushableDataOutput output = context.writeMessage(response); try { output.write(ManagementProtocol.TYPE_PONG); output.writeLong(connectionId); output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } resultHandler.done(null); }
@Override protected void sendRequest(final ActiveOperation.ResultHandler<OperationResponse> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context, final FlushableDataOutput output) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("transmitting ExecuteRequest for %d", context.getOperationId()); // Write the operation final ExecuteRequestContext executionContext = context.getAttachment(); final List<InputStream> streams = executionContext.getInputStreams(); final ModelNode operation = executionContext.getOperation(); int inputStreamLength = 0; if (streams != null) { inputStreamLength = streams.size(); } output.write(ModelControllerProtocol.PARAM_OPERATION); operation.writeExternal(output); output.write(ModelControllerProtocol.PARAM_INPUTSTREAMS_LENGTH); output.writeInt(inputStreamLength); final Boolean sendIdentity = channelAssociation.getAttachments().getAttachment(SEND_IDENTITY); if (sendIdentity != null && sendIdentity) { ExecuteRequestContext attachment = context.getAttachment(); write(output, attachment.getSecurityIdentity(), attachment.getRemoteAddress()); } final Boolean sendInVm = channelAssociation.getAttachments().getAttachment(SEND_IN_VM); if (sendInVm != null && sendInVm) { ExecuteRequestContext attachment = context.getAttachment(); output.writeByte(ModelControllerProtocol.PARAM_IN_VM_CALL); output.writeBoolean(attachment.isInVmCall()); } }
try { final FlushableDataOutput output = comm.writeMessage(ManagementResponseHeader.create(comm.getRequestHeader())); try { output.write(DomainServerProtocol.PARAM_OK); updates.writeExternal(output); output.close(); } finally { StreamUtils.safeClose(output);
private void writeFile(final File localPath, final File file, final FlushableDataOutput output) throws IOException { output.writeByte(protocol.fileStart()); output.writeByte(protocol.paramFilePath()); output.writeUTF(getRelativePath(localPath, file)); output.writeByte(protocol.paramFileSize()); output.writeLong(file.length()); InputStream inputStream = null; try { inputStream = new FileInputStream(file); byte[] buffer = new byte[8192]; int len; while ((len = inputStream.read(buffer)) != -1) { output.write(buffer, 0, len); } } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException ignored) { } } } output.writeByte(protocol.fileEnd()); }
@Override void handleRequest(TimedStreamEntry entry, FlushableDataOutput output) throws IOException { //noinspection SynchronizationOnLocalVariableOrMethodParameter synchronized (entry) { InputStream input = entry.streamEntry.getStream(); int read = 0; byte[] buffer = new byte[BUFFER_SIZE]; do { // Set the timestamp on each loop so if there are blocking delays reading or writing // they don't accumulate entry.timestamp.set(System.currentTimeMillis()); int totalRead = 0; int remaining = BUFFER_SIZE; // Read a full buffer if possible before sending while (remaining > 0 && (read = input.read(buffer, totalRead, remaining)) != -1) { totalRead += read; remaining -= read; } if (totalRead > 0) { output.writeByte(ModelControllerProtocol.PARAM_INPUTSTREAM_LENGTH); output.writeInt(totalRead); output.writeByte(ModelControllerProtocol.PARAM_INPUTSTREAM_CONTENTS); output.write(buffer, 0, totalRead); } } while (read > -1); output.writeByte(ModelControllerProtocol.PARAM_END); } }
synchronized void sendResponse(final ModelNode result) { // only send a single response if (completed) { return; } completed = true; try { final FlushableDataOutput output = responseContext.writeMessage(response); try { output.write(ModelControllerProtocol.PARAM_RESPONSE); result.writeExternal(output); output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } resultHandler.done(result); } catch (IOException e) { resultHandler.failed(e); } }
@Override protected void sendRequest(final ActiveOperation.ResultHandler<ModelNode> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context, final FlushableDataOutput output) throws IOException { // Write the operation final ExecuteRequestContext executionContext = context.getAttachment(); final List<InputStream> streams = executionContext.getInputStreams(); final ModelNode operation = executionContext.getOperation(); int inputStreamLength = 0; if (streams != null) { inputStreamLength = streams.size(); } output.write(ModelControllerProtocol.PARAM_OPERATION); operation.writeExternal(output); output.write(ModelControllerProtocol.PARAM_INPUTSTREAMS_LENGTH); output.writeInt(inputStreamLength); }
public static <A> void writeResponse(final ResponseWriter writer, final ManagementRequestContext<A> context, final ManagementResponseHeader header) throws IOException { final FlushableDataOutput output = context.writeMessage(header); try { writer.write(output); output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); } finally { StreamUtils.safeClose(output); } }
@Override void handleRequest(String hostId, DataInput input, ManagementRequestContext<Void> context) throws IOException { domainController.unregisterRemoteHost(hostId, null); final FlushableDataOutput os = writeGenericResponseHeader(context); try { os.write(ManagementProtocol.RESPONSE_END); os.close(); } finally { StreamUtils.safeClose(os); } }
@Override protected void sendRequest(final ActiveOperation.ResultHandler<ModelNode> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context, final FlushableDataOutput output) throws IOException { output.write(status); }
static void sendResponse(final FlushableDataOutput output, final byte responseType, final ModelNode response) throws IOException { // response type output.writeByte(responseType); if(response != null) { // operation result response.writeExternal(output); } // response end output.writeByte(ManagementProtocol.RESPONSE_END); output.close(); }
@Override protected void sendRequest(final ActiveOperation.ResultHandler<OperationResponse> resultHandler, final ManagementRequestContext<ExecuteRequestContext> context, final FlushableDataOutput output) throws IOException { ControllerLogger.MGMT_OP_LOGGER.tracef("transmitting CompleteTxRequest (%s) for %d", status != ModelControllerProtocol.PARAM_ROLLBACK, context.getOperationId()); output.write(status); }
private void writeResponse(final File localPath, final FlushableDataOutput output) throws IOException { output.writeByte(protocol.paramNumFiles()); if (localPath == null || !localPath.exists()) { output.writeInt(-1); } else if (localPath.isFile()) { output.writeInt(1); writeFile(localPath, localPath, output); } else { final List<File> childFiles = getChildFiles(localPath); output.writeInt(childFiles.size()); for (File child : childFiles) { writeFile(localPath, child, output); } } }
@Override protected void sendRequest(ActiveOperation.ResultHandler<Void> registrationResultResultHandler, ManagementRequestContext<Void> voidManagementRequestContext, FlushableDataOutput output) throws IOException { output.writeByte(DomainControllerProtocol.PARAM_OK); subsystems.writeExternal(output); }
@Override protected void sendRequest(final ActiveOperation.ResultHandler<ModelNode> resultHandler, final ManagementRequestContext<Void> context, final FlushableDataOutput output) throws IOException { // output.write(DomainServerProtocol.PARAM_SERVER_NAME); output.writeUTF(serverProcessName); }