aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-ce
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2018-04-18 21:28:49 +0200
committerSonarTech <sonartech@sonarsource.com>2018-05-10 20:20:53 +0200
commita5b9a87ed5e97a553d6f6bde845be749497ab5ad (patch)
tree3e0af1430be8b83b57ee44853e1bc17e7f653da8 /server/sonar-ce
parent42c098776214ff3d6b94b273197a0a6e493043ea (diff)
downloadsonarqube-a5b9a87ed5e97a553d6f6bde845be749497ab5ad.tar.gz
sonarqube-a5b9a87ed5e97a553d6f6bde845be749497ab5ad.zip
SONAR-10592 display workers pause in System Info page
Diffstat (limited to 'server/sonar-ce')
-rw-r--r--server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatus.java5
-rw-r--r--server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java10
-rw-r--r--server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CeTasksMBeanImpl.java1
-rw-r--r--server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CEQueueStatusImplTest.java17
-rw-r--r--server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CeTasksMBeanImplTest.java9
5 files changed, 38 insertions, 4 deletions
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatus.java b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatus.java
index 3127d3fef32..c8e4fc45edd 100644
--- a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatus.java
+++ b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatus.java
@@ -19,6 +19,9 @@
*/
package org.sonar.ce.monitoring;
+import org.sonar.api.ce.ComputeEngineSide;
+
+@ComputeEngineSide
public interface CEQueueStatus {
/**
@@ -85,4 +88,6 @@ public interface CEQueueStatus {
* Time spent processing batch reports since startup, in milliseconds.
*/
long getProcessingTime();
+
+ boolean areWorkersPaused();
}
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java
index e9ac48c4727..e1e9c679c0b 100644
--- a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java
+++ b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CEQueueStatusImpl.java
@@ -19,10 +19,12 @@
*/
package org.sonar.ce.monitoring;
+import java.util.Optional;
import java.util.concurrent.atomic.AtomicLong;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.ce.CeQueueDto;
+import org.sonar.server.property.InternalProperties;
import static com.google.common.base.Preconditions.checkArgument;
@@ -70,6 +72,14 @@ public class CEQueueStatusImpl implements CEQueueStatus {
}
@Override
+ public boolean areWorkersPaused() {
+ try (DbSession dbSession = dbClient.openSession(false)) {
+ Optional<String> val = dbClient.internalPropertiesDao().selectByKey(dbSession, InternalProperties.COMPUTE_ENGINE_PAUSE);
+ return "true".equals(val.orElse(null));
+ }
+ }
+
+ @Override
public long getInProgressCount() {
return inProgress.get();
}
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CeTasksMBeanImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CeTasksMBeanImpl.java
index 421dbd5d885..ed62ab4bb21 100644
--- a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CeTasksMBeanImpl.java
+++ b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/CeTasksMBeanImpl.java
@@ -93,6 +93,7 @@ public class CeTasksMBeanImpl implements CeTasksMBean, Startable, SystemInfoSect
builder.addAttributesBuilder().setKey("Processing Time (ms)").setLongValue(getProcessingTime()).build();
builder.addAttributesBuilder().setKey("Worker Count").setLongValue(getWorkerCount()).build();
builder.addAttributesBuilder().setKey("Max Worker Count").setLongValue(getWorkerMaxCount()).build();
+ builder.addAttributesBuilder().setKey("Workers Paused").setBooleanValue(queueStatus.areWorkersPaused()).build();
return builder.build();
}
}
diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CEQueueStatusImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CEQueueStatusImplTest.java
index b860b9042f8..285c86ee4b0 100644
--- a/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CEQueueStatusImplTest.java
+++ b/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CEQueueStatusImplTest.java
@@ -19,14 +19,15 @@
*/
package org.sonar.ce.monitoring;
+import java.util.Optional;
import java.util.Random;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.Mockito;
import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
import org.sonar.db.ce.CeQueueDto;
+import org.sonar.server.property.InternalProperties;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -135,8 +136,20 @@ public class CEQueueStatusImplTest {
@Test
public void count_Pending_from_database() {
- when(dbClient.ceQueueDao().countByStatus(any(DbSession.class), eq(CeQueueDto.Status.PENDING))).thenReturn(42);
+ when(dbClient.ceQueueDao().countByStatus(any(), eq(CeQueueDto.Status.PENDING))).thenReturn(42);
assertThat(underTest.getPendingCount()).isEqualTo(42);
}
+
+ @Test
+ public void workers_pause_is_loaded_from_db() {
+ when(dbClient.internalPropertiesDao().selectByKey(any(), eq(InternalProperties.COMPUTE_ENGINE_PAUSE))).thenReturn(Optional.of("true"));
+
+ assertThat(underTest.areWorkersPaused()).isTrue();
+ }
+
+ @Test
+ public void workers_pause_is_false_by_default() {
+ assertThat(underTest.areWorkersPaused()).isFalse();
+ }
}
diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CeTasksMBeanImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CeTasksMBeanImplTest.java
index 8fae1b5b811..33e3416e8a6 100644
--- a/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CeTasksMBeanImplTest.java
+++ b/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CeTasksMBeanImplTest.java
@@ -88,11 +88,10 @@ public class CeTasksMBeanImplTest {
public void export_system_info() {
ProtobufSystemInfo.Section section = underTest.toProtobuf();
assertThat(section.getName()).isEqualTo("Compute Engine Tasks");
- assertThat(section.getAttributesCount()).isEqualTo(7);
+ assertThat(section.getAttributesCount()).isEqualTo(8);
}
private static class DumbCEQueueStatus implements CEQueueStatus {
-
@Override
public long getPendingCount() {
return PENDING_COUNT;
@@ -132,6 +131,12 @@ public class CeTasksMBeanImplTest {
public long getProcessingTime() {
return PROCESSING_TIME;
}
+
+ @Override
+ public boolean areWorkersPaused() {
+ return false;
+ }
+
private long methodNotImplemented() {
throw new UnsupportedOperationException("Not Implemented");
}