You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by el...@apache.org on 2020/02/10 15:06:26 UTC

[hadoop-ozone] branch master updated: HDDS-2975. Print Freon summary to log in non-interactive mode

This is an automated email from the ASF dual-hosted git repository.

elek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 295d030  HDDS-2975. Print Freon summary to log in non-interactive mode
295d030 is described below

commit 295d0305a2ac11f3c0fbb6069d97ebf31b8c3133
Author: Doroszlai, Attila <ad...@apache.org>
AuthorDate: Mon Feb 10 15:54:38 2020 +0100

    HDDS-2975. Print Freon summary to log in non-interactive mode
    
    Closes #522
---
 .../hadoop/ozone/freon/BaseFreonGenerator.java     | 27 +++++++++++++++++-----
 .../java/org/apache/hadoop/ozone/freon/Freon.java  |  5 ++++
 .../org/apache/hadoop/ozone/freon/ProgressBar.java | 10 ++++++--
 3 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/BaseFreonGenerator.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/BaseFreonGenerator.java
index 9380970..624a658 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/BaseFreonGenerator.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/BaseFreonGenerator.java
@@ -19,13 +19,18 @@ package org.apache.hadoop.ozone.freon;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.InetSocketAddress;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.function.Consumer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import com.codahale.metrics.ScheduledReporter;
+import com.codahale.metrics.Slf4jReporter;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.hdds.scm.protocol.StorageContainerLocationProtocol;
 import org.apache.hadoop.hdds.scm.protocolPB.StorageContainerLocationProtocolClientSideTranslatorPB;
@@ -252,7 +257,8 @@ public class BaseFreonGenerator {
 
     executor = Executors.newFixedThreadPool(threadNo);
 
-    progressBar = new ProgressBar(System.out, testNo, successCounter::get);
+    progressBar = new ProgressBar(System.out, testNo, successCounter::get,
+        freonCommand.isInteractive());
     progressBar.start();
 
     startTime = System.currentTimeMillis();
@@ -276,12 +282,21 @@ public class BaseFreonGenerator {
    * Print out reports from the executed tests.
    */
   public void printReport() {
-    ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics).build();
+    ScheduledReporter reporter = freonCommand.isInteractive()
+        ? ConsoleReporter.forRegistry(metrics).build()
+        : Slf4jReporter.forRegistry(metrics).build();
     reporter.report();
-    System.out.println("Total execution time (sec): " + Math
-        .round((System.currentTimeMillis() - startTime) / 1000.0));
-    System.out.println("Failures: " + failureCounter.get());
-    System.out.println("Successful executions: " + successCounter.get());
+
+    List<String> messages = new LinkedList<>();
+    messages.add("Total execution time (sec): " +
+        Math.round((System.currentTimeMillis() - startTime) / 1000.0));
+    messages.add("Failures: " + failureCounter.get());
+    messages.add("Successful executions: " + successCounter.get());
+
+    Consumer<String> print = freonCommand.isInteractive()
+        ? System.out::println
+        : LOG::info;
+    messages.forEach(print);
   }
 
   /**
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/Freon.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/Freon.java
index e463281..d2f30f7 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/Freon.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/Freon.java
@@ -57,6 +57,8 @@ public class Freon extends GenericCli {
           + "and profile endpoint")
   private boolean httpServer = false;
 
+  private final boolean interactive = System.console() != null;
+
   private FreonHttpServer freonHttpServer;
   private OzoneConfiguration conf;
 
@@ -94,4 +96,7 @@ public class Freon extends GenericCli {
     new Freon().run(args);
   }
 
+  public boolean isInteractive() {
+    return interactive;
+  }
 }
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ProgressBar.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ProgressBar.java
index e98e8fb..86c9a95 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ProgressBar.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/ProgressBar.java
@@ -123,7 +123,7 @@ public class ProgressBar {
 
   private Runnable getProgressBar(final PrintStream stream) {
     return () -> {
-      stream.println();
+      println(stream);
       while (running && currentValue.getAsLong() < maxValue) {
         print(stream, currentValue.getAsLong());
         try {
@@ -134,7 +134,7 @@ public class ProgressBar {
         }
       }
       print(stream, maxValue);
-      stream.println();
+      println(stream);
       running = false;
     };
   }
@@ -152,6 +152,12 @@ public class ProgressBar {
     }
   }
 
+  private void println(PrintStream stream) {
+    if (interactive) {
+      stream.println();
+    }
+  }
+
   private void logProgressBar(PrintStream stream, long value) {
     double percent = 100.0 * value / maxValue;
     LOG.info(String


---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-commits-help@hadoop.apache.org