diff options
author | Daniel Schwarz <daniel.schwarz@sonarsource.com> | 2017-09-18 13:28:57 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2017-09-26 23:49:38 +0200 |
commit | 257d4d9b268cdd2e517d75c42f2eee83a80cfdd1 (patch) | |
tree | 8d8bd0379d6b1b13ff9d6c6538a357bd1a7874a6 /tests/src | |
parent | 50a29c569f8448a939877de1918ab3ff937366b8 (diff) | |
download | sonarqube-257d4d9b268cdd2e517d75c42f2eee83a80cfdd1.tar.gz sonarqube-257d4d9b268cdd2e517d75c42f2eee83a80cfdd1.zip |
SONAR-9802 allow to change the log level of a cluster
Diffstat (limited to 'tests/src')
-rw-r--r-- | tests/src/test/java/org/sonarqube/tests/cluster/ClusterTest.java | 54 | ||||
-rw-r--r-- | tests/src/test/java/org/sonarqube/tests/cluster/Node.java | 2 |
2 files changed, 36 insertions, 20 deletions
diff --git a/tests/src/test/java/org/sonarqube/tests/cluster/ClusterTest.java b/tests/src/test/java/org/sonarqube/tests/cluster/ClusterTest.java index 2fab9bedb0b..a6afc2ca1fb 100644 --- a/tests/src/test/java/org/sonarqube/tests/cluster/ClusterTest.java +++ b/tests/src/test/java/org/sonarqube/tests/cluster/ClusterTest.java @@ -19,12 +19,14 @@ */ package org.sonarqube.tests.cluster; +import com.google.gson.internal.LinkedTreeMap; import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.OrchestratorBuilder; import com.sonar.orchestrator.db.DefaultDatabase; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.function.BinaryOperator; import java.util.function.Consumer; import java.util.stream.IntStream; @@ -38,8 +40,9 @@ import org.junit.rules.TemporaryFolder; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.ws.WsSystem; -import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.HttpException; +import org.sonarqube.ws.client.issue.SearchWsRequest; +import util.ItUtils; import static com.google.common.base.Preconditions.checkState; import static org.assertj.core.api.Assertions.assertThat; @@ -70,24 +73,6 @@ public class ClusterTest { db.stop(); } - /** - * TODO WIP - */ - @Test - public void wip() throws Exception { - try (Cluster cluster = newCluster(3, 2)) { - cluster.getNodes().forEach(Node::start); - - Node app = cluster.getAppNode(0); - app.waitForHealthGreen(); - - System.out.println("-----------------------------------------------------------------------"); - String json = app.wsClient().wsConnector().call(new GetRequest("api/system/info")).content(); - System.out.println(json); - System.out.println("-----------------------------------------------------------------------"); - } - } - @Test public void test_high_availability_topology() throws Exception { try (Cluster cluster = newCluster(3, 2)) { @@ -265,6 +250,37 @@ public class ClusterTest { } @Test + public void set_log_level_affects_all_nodes() throws Exception { + try (Cluster cluster = newCluster(2, 2)) { + cluster.getNodes().forEach(Node::start); + cluster.getAppNodes().forEach(Node::waitForStatusUp); + + cluster.getAppNodes().forEach(node -> { + assertThat(node.webLogsContain(" TRACE web[")).isFalse(); + }); + + cluster.getAppNode(0).wsClient().system().changeLogLevel("TRACE"); + + cluster.getAppNodes().forEach(node -> { + + // do something, that will produce logging + node.wsClient().issues().search(new SearchWsRequest()); + + // check logs + assertThat(node.webLogsContain(" TRACE web[")).isTrue(); + }); + + Map<String, Object> data = ItUtils.jsonToMap(cluster.getAppNode(0).wsClient().system().info().content()); + ArrayList<Object> applicationNodes = (ArrayList<Object>) data.get("Application Nodes"); + applicationNodes.forEach(node -> { + LinkedTreeMap<Object, Object> nodeData = (LinkedTreeMap<Object, Object>) node; + LinkedTreeMap<Object, Object> ceLoggingData = (LinkedTreeMap<Object, Object>) nodeData.get("Compute Engine Logging"); + assertThat(ceLoggingData.get("Logs Level")).as("Compute engine logs level of a node").isEqualTo("TRACE"); + }); + } + } + + @Test public void restart_action_is_not_allowed_for_cluster_nodes() throws Exception { try (Cluster cluster = newCluster(2, 1)) { cluster.getNodes().forEach(Node::start); diff --git a/tests/src/test/java/org/sonarqube/tests/cluster/Node.java b/tests/src/test/java/org/sonarqube/tests/cluster/Node.java index e8846c28042..5b684ac4a24 100644 --- a/tests/src/test/java/org/sonarqube/tests/cluster/Node.java +++ b/tests/src/test/java/org/sonarqube/tests/cluster/Node.java @@ -207,7 +207,7 @@ class Node { return content.hasText(message); } - private boolean webLogsContain(String message) { + boolean webLogsContain(String message) { if (orchestrator.getServer() == null) { return false; } |