@Override
  public MoveRegionResponse moveRegion(RpcController controller, MoveRegionRequest req)
    throws ServiceException {
    final byte[] encodedRegionName = req.getRegion().getValue().toByteArray();
    RegionSpecifierType type = req.getRegion().getType();
    final byte[] destServerName = (req.hasDestServerName())
      ? Bytes.toBytes(ProtobufUtil.toServerName(req.getDestServerName()).getServerName())
      : null;
    MoveRegionResponse mrr = MoveRegionResponse.newBuilder().build();

    if (type != RegionSpecifierType.ENCODED_REGION_NAME) {
      LOG.warn("moveRegion specifier type: expected: " + RegionSpecifierType.ENCODED_REGION_NAME
        + " actual: " + type);
    }

    try {
      server.checkInitialized();
      server.move(encodedRegionName, destServerName);
    } catch (IOException ioe) {
      throw new ServiceException(ioe);
    }
    return mrr;
  }
Checks if the specified snapshot is done.
@return true if the snapshot is in file system ready to use, false if the snapshot is in the
        process of completing
@throws ServiceException wrapping UnknownSnapshotException if invalid snapshot, or a wrapped
                         HBaseSnapshotException with progress failure reason.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java