@Override
 public void writeTo(StreamOutput out) throws IOException {
   super.writeTo(out);
   indicesLevelRequest.writeTo(out);
   int size = shards.size();
   out.writeVInt(size);
   for (int i = 0; i < size; i++) {
     shards.get(i).writeTo(out);
   }
   out.writeString(nodeId);
 }
 @Override
 public void readFrom(StreamInput in) throws IOException {
   super.readFrom(in);
   indicesLevelRequest = readRequestFrom(in);
   int size = in.readVInt();
   shards = new ArrayList<>(size);
   for (int i = 0; i < size; i++) {
     shards.add(ShardRouting.readShardRoutingEntry(in));
   }
   nodeId = in.readString();
 }