]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-11077 log characteristics when processing CE task
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Thu, 26 Jul 2018 21:08:33 +0000 (23:08 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 2 Aug 2018 18:21:34 +0000 (20:21 +0200)
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/CeWorkerImpl.java
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/CeWorkerImplTest.java

index 9fc7e9ec281c94c70bfc0e79b501122759dfd01c..e0739cedafa0e4a94a5558354e1628c0da05bc92 100644 (file)
@@ -21,6 +21,7 @@ package org.sonar.ce.taskprocessor;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
@@ -179,10 +180,14 @@ public class CeWorkerImpl implements CeWorker {
   }
 
   private static Profiler startLogProfiler(CeTask task) {
-    return Profiler.create(LOG)
+    Profiler profiler = Profiler.create(LOG)
       .logTimeLast(true)
       .addContext("project", task.getComponentKey())
-      .addContext("type", task.getType())
+      .addContext("type", task.getType());
+    for (Map.Entry<String, String> characteristic : task.getCharacteristics().entrySet()) {
+      profiler.addContext(characteristic.getKey(), characteristic.getValue());
+    }
+    return profiler
       .addContext("id", task.getUuid())
       .addContext("submitter", task.getSubmitterUuid())
       .startInfo("Execute task");
index f7222a95a48ce086adcfe6b9fd7302201f2a32e6..80add0d3a3c51873e05e76f469a864719c6c4a99 100644 (file)
@@ -19,7 +19,9 @@
  */
 package org.sonar.ce.taskprocessor;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 import java.util.Random;
 import java.util.UUID;
@@ -228,7 +230,22 @@ public class CeWorkerImplTest {
   }
 
   @Test
-  public void do_not_display_submitter_param_in_log_when_submitterLogin_is_not_set_in_case_of_success() throws Exception {
+  public void log_task_characteristics() throws Exception {
+    when(queue.peek(anyString())).thenReturn(Optional.of(createCeTask(null, "pullRequest", "123", "branch", "foo")));
+    taskProcessorRepository.setProcessorForTask(CeTaskTypes.REPORT, taskProcessor);
+
+    underTest.call();
+
+    List<String> logs = logTester.logs(LoggerLevel.INFO);
+    assertThat(logs).hasSize(2);
+    for (int i = 0; i < 2; i++) {
+      assertThat(logs.get(i)).contains("pullRequest=123");
+      assertThat(logs.get(i)).contains("branch=foo");
+    }
+  }
+
+  @Test
+  public void do_not_log_submitter_param_if_anonymous_and_success() throws Exception {
     when(queue.peek(anyString())).thenReturn(Optional.of(createCeTask(null)));
     taskProcessorRepository.setProcessorForTask(CeTaskTypes.REPORT, taskProcessor);
 
@@ -238,12 +255,12 @@ public class CeWorkerImplTest {
     List<String> logs = logTester.logs(LoggerLevel.INFO);
     assertThat(logs).hasSize(2);
     for (int i = 0; i < 2; i++) {
-      assertThat(logs.get(i)).doesNotContain(" | submitter=");
+      assertThat(logs.get(i)).doesNotContain("submitter=");
     }
   }
 
   @Test
-  public void do_not_display_submitter_param_in_log_when_submitterLogin_is_not_set_in_case_of_error() throws Exception {
+  public void do_not_log_submitter_param_if_anonymous_and_error() throws Exception {
     CeTask ceTask = createCeTask(null);
     when(queue.peek(anyString())).thenReturn(Optional.of(ceTask));
     taskProcessorRepository.setProcessorForTask(ceTask.getType(), taskProcessor);
@@ -254,16 +271,16 @@ public class CeWorkerImplTest {
     verifyWorkerUuid();
     List<String> logs = logTester.logs(LoggerLevel.INFO);
     assertThat(logs).hasSize(2);
-    assertThat(logs.get(0)).doesNotContain(" | submitter=");
-    assertThat(logs.get(1)).doesNotContain(" | submitter=");
+    assertThat(logs.get(0)).doesNotContain("submitter=");
+    assertThat(logs.get(1)).doesNotContain("submitter=");
     logs = logTester.logs(LoggerLevel.ERROR);
     assertThat(logs).hasSize(1);
-    assertThat(logs.iterator().next()).doesNotContain(" | submitter=");
+    assertThat(logs.iterator().next()).doesNotContain("submitter=");
     assertThat(logTester.logs(LoggerLevel.DEBUG)).isEmpty();
   }
 
   @Test
-  public void display_submitterLogin_in_logs_when_set_in_case_of_success() throws Exception {
+  public void log_submitter_login_if_authenticated_and_success() throws Exception {
     when(queue.peek(anyString())).thenReturn(Optional.of(createCeTask("FooBar")));
     taskProcessorRepository.setProcessorForTask(CeTaskTypes.REPORT, taskProcessor);
 
@@ -272,8 +289,8 @@ public class CeWorkerImplTest {
     verifyWorkerUuid();
     List<String> logs = logTester.logs(LoggerLevel.INFO);
     assertThat(logs).hasSize(2);
-    assertThat(logs.get(0)).contains(" | submitter=FooBar");
-    assertThat(logs.get(1)).contains(" | submitter=FooBar | status=SUCCESS | time=");
+    assertThat(logs.get(0)).contains("submitter=FooBar");
+    assertThat(logs.get(1)).contains("submitter=FooBar | status=SUCCESS | time=");
     assertThat(logTester.logs(LoggerLevel.ERROR)).isEmpty();
     assertThat(logTester.logs(LoggerLevel.DEBUG)).isEmpty();
   }
@@ -502,12 +519,17 @@ public class CeWorkerImplTest {
     assertThat(workerUuidCaptor.getValue()).isEqualTo(workerUuid);
   }
 
-  private static CeTask createCeTask(@Nullable String submitterLogin) {
+  private static CeTask createCeTask(@Nullable String submitterLogin, String... characteristics) {
+    Map<String, String> characteristicMap = new HashMap<>();
+    for (int i = 0; i < characteristics.length; i += 2) {
+      characteristicMap.put(characteristics[i], characteristics[i + 1]);
+    }
     return new CeTask.Builder()
       .setOrganizationUuid("org1")
       .setUuid("TASK_1").setType(CeTaskTypes.REPORT)
       .setComponentUuid("PROJECT_1")
       .setSubmitterUuid(submitterLogin)
+      .setCharacteristics(characteristicMap)
       .build();
   }