public int onNode()

in harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructure.java [85:122]


  public int onNode(final Node node, final String[] shellCommand) throws IOException {
    try (final SSHClient client = getSSHClient(node.getAddress());
        final Session session = client.startSession()) {
      final String script = "'" + String.join("' '", shellCommand) + "'";
      logger.debug("Executing {} on {}", script, node.getAddress());
      try (final Session.Command cmd = session.exec(script)) {
        final CompletableFuture<Void> copyStdout =
            copyStreamAsynchronously(cmd.getInputStream(), System.out);
        final CompletableFuture<Void> copyStdErr =
            copyStreamAsynchronously(cmd.getErrorStream(), System.err);

        cmd.join();
        copyStdout.join();
        copyStdErr.join();

        final Boolean coreDumped = cmd.getExitWasCoreDumped();
        if (null != coreDumped && coreDumped) {
          logger.error("Core dumped for {} on {}", script, node.getAddress());
        }
        final String errorMessage = cmd.getExitErrorMessage();
        if (null != errorMessage) {
          logger.error("Exit error message for {} on {} was \"{}\"", script, node.getAddress(),
              errorMessage);
        }
        final Signal exitSignal = cmd.getExitSignal();
        if (null != exitSignal) {
          logger.error("Exit signal for {} on {} was {}", script, node.getAddress(), exitSignal);
        }

        final Integer exitStatus = cmd.getExitStatus();
        if (null == exitStatus) {
          logger.error("Exit status for {} on {} was null", script, node.getAddress());
          return -1;
        }
        return exitStatus;
      }
    }
  }