public Pair<ServerErrorCode, String> getBlobIndex(DataNodeId dataNodeId, BlobId blobId) throws Exception {
    AdminRequest adminRequest =
        new AdminRequest(AdminRequestOrResponseType.BlobIndex, null, correlationId.incrementAndGet(), CLIENT_ID);
    BlobIndexAdminRequest blobIndexAdminRequest = new BlobIndexAdminRequest(blobId, adminRequest);
    ResponseInfo response = sendRequestGetResponse(dataNodeId, blobId.getPartition(), blobIndexAdminRequest);
    AdminResponseWithContent adminResponse =
        AdminResponseWithContent.readFrom(new NettyByteBufDataInputStream(response.content()));
    response.release();
    ServerErrorCode errorCode = adminResponse.getError();
    String content = "";
    if (errorCode == ServerErrorCode.NoError) {
      content = new String(adminResponse.getContent());
    }
    return new Pair<>(errorCode, content);
  }
Get the blob index values for {@code blobId}
@param dataNodeId the {@link DataNodeId} to contact.
@param blobId the {@link BlobId} to operate on.
@return the {@link ServerErrorCode} and the json serialized content of blob index values.
@throws Exception
ambry-tools/src/main/java/com/github/ambry/tools/admin/ServerAdminTool.java