in hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java [260:321]
static ContainerCommandResponseProto dispatchRequest(KeyValueHandler handler,
ContainerCommandRequestProto request, KeyValueContainer kvContainer,
DispatcherContext dispatcherContext) {
Type cmdType = request.getCmdType();
// Validate the request has been made to the correct datanode with the node id matching.
if (kvContainer != null) {
try {
handler.validateRequestDatanodeId(kvContainer.getContainerData().getReplicaIndex(),
request.getDatanodeUuid());
} catch (StorageContainerException e) {
return ContainerUtils.logAndReturnError(LOG, e, request);
}
}
switch (cmdType) {
case CreateContainer:
return handler.handleCreateContainer(request, kvContainer);
case ReadContainer:
return handler.handleReadContainer(request, kvContainer);
case UpdateContainer:
return handler.handleUpdateContainer(request, kvContainer);
case DeleteContainer:
return handler.handleDeleteContainer(request, kvContainer);
case ListContainer:
return handler.handleUnsupportedOp(request);
case CloseContainer:
return handler.handleCloseContainer(request, kvContainer);
case PutBlock:
return handler.handlePutBlock(request, kvContainer, dispatcherContext);
case GetBlock:
return handler.handleGetBlock(request, kvContainer);
case DeleteBlock:
return handler.handleDeleteBlock(request, kvContainer);
case ListBlock:
return handler.handleListBlock(request, kvContainer);
case ReadChunk:
return handler.handleReadChunk(request, kvContainer, dispatcherContext);
case DeleteChunk:
return handler.handleDeleteChunk(request, kvContainer);
case WriteChunk:
return handler.handleWriteChunk(request, kvContainer, dispatcherContext);
case StreamInit:
return handler.handleStreamInit(request, kvContainer, dispatcherContext);
case ListChunk:
return handler.handleUnsupportedOp(request);
case CompactChunk:
return handler.handleUnsupportedOp(request);
case PutSmallFile:
return handler
.handlePutSmallFile(request, kvContainer, dispatcherContext);
case GetSmallFile:
return handler.handleGetSmallFile(request, kvContainer);
case GetCommittedBlockLength:
return handler.handleGetCommittedBlockLength(request, kvContainer);
case FinalizeBlock:
return handler.handleFinalizeBlock(request, kvContainer);
case Echo:
return handler.handleEcho(request, kvContainer);
default:
return null;
}
}