private static void sendBlobStoreControlRequest(ServerAdminTool serverAdminTool, DataNodeId dataNodeId,
      PartitionId partitionId, short numReplicasCaughtUpPerPartition, BlobStoreControlAction storeControlRequestType)
      throws IOException, TimeoutException {
    ServerErrorCode errorCode =
        serverAdminTool.controlBlobStore(dataNodeId, partitionId, numReplicasCaughtUpPerPartition,
            storeControlRequestType);
    if (errorCode == ServerErrorCode.NoError) {
      LOGGER.info("{} control request has been performed for {} on {}", storeControlRequestType, partitionId,
          dataNodeId);
    } else {
      LOGGER.error("From {}, received server error code {} for {} request that performed on {}", dataNodeId, errorCode,
          storeControlRequestType, partitionId);
    }
  }
Sends a {@link BlobStoreControlAdminRequest} to {@code dataNodeId} to set enable status of controlling BlobStore
to {@code enable} for {@code partitionId}.
@param serverAdminTool the {@link ServerAdminTool} instance to use.
@param dataNodeId the {@link DataNodeId} to send the request to.
@param partitionId the partition id  on which the operation will take place. Can be {@code null}.
@param numReplicasCaughtUpPerPartition the minimum number of peers should catch up with the partition.
@param storeControlRequestType the type of control operation that will performed on certain store.
@throws IOException
@throws TimeoutException
ambry-tools/src/main/java/com/github/ambry/tools/admin/ServerAdminTool.java