@Override
  public void registerNewDataNode(
      final DataNodeWrapper newDataNodeWrapper, final boolean isNeedVerify) {
    // Start new DataNode
    final List<String> dataNodeEndpoints =
        Collections.singletonList(newDataNodeWrapper.getIpAndPortString());
    final RequestDelegate<Void> dataNodesDelegate =
        new ParallelRequestDelegate<>(dataNodeEndpoints, NODE_START_TIMEOUT);
    dataNodesDelegate.addRequest(
        () -> {
          newDataNodeWrapper.start();
          return null;
        });
    try {
      dataNodesDelegate.requestAll();
    } catch (final SQLException e) {
      logger.error("Start dataNodes failed", e);
      throw new AssertionError();
    }

    if (isNeedVerify) {
      // Test whether register success
      checkClusterStatusWithoutUnknown();
    }
  }
Get connection to ConfigNode-Leader in ClusterIT environment

<p>Notice: The caller should always use try-with-resource to invoke this interface in order to
return client to ClientPool automatically

@return {@link SyncConfigNodeIServiceClient} that connects to the ConfigNode-Leader
integration-test/src/main/java/org/apache/iotdb/it/env/cluster/env/AbstractEnv.java