@Override //Object
  public synchronized String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("STAGE DESCRIPTION BEGIN\n");
    builder.append("requestId=").append(requestId).append("\n");
    builder.append("stageId=").append(stageId).append("\n");
    builder.append("clusterName=").append(clusterName).append("\n");
    builder.append("logDir=").append(logDir).append("\n");
    builder.append("requestContext=").append(requestContext).append("\n");
    builder.append("commandParamsStage=").append(commandParamsStage).append("\n");
    builder.append("hostParamsStage=").append(hostParamsStage).append("\n");
    builder.append("status=").append(status).append("\n");
    builder.append("displayStatus=").append(displayStatus).append("\n");
    builder.append("Success Factors:\n");
    for (Role r : successFactors.keySet()) {
      builder.append("  role: ").append(r).append(", factor: ").append(successFactors.get(r)).append("\n");
    }
    for (HostRoleCommand hostRoleCommand : getOrderedHostRoleCommands()) {
      builder.append("HOST: ").append(hostRoleCommand.getHostName()).append(" :\n");
      builder.append(hostRoleCommand.getExecutionCommandWrapper().getJson());
      builder.append("\n");
      builder.append(hostRoleCommand);
      builder.append("\n");
    }
    builder.append("STAGE DESCRIPTION END\n");
    return builder.toString();
  }
Sets whether this stage supports automatically skipping failures of its
commands.

@param supportsAutoSkipOnFailure
         {@code true} if this stage supports automatically skipping
         failures of its commands.
ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java