aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-08-11 15:36:07 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2016-08-16 08:20:14 +0200
commit825c3a67f6e5b7906a6f611201033cc5d1949fcb (patch)
treefe6c463ef969016bb02bc8cb15620d0b46546927
parent38f1c64828b60cbfc9fe0d5c6ddfafc56a02364f (diff)
downloadsonarqube-825c3a67f6e5b7906a6f611201033cc5d1949fcb.tar.gz
sonarqube-825c3a67f6e5b7906a6f611201033cc5d1949fcb.zip
SONAR-7834 remove internal WS /api/ce/logs
-rw-r--r--server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java1
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/ce/ws/CeWsModule.java1
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/ce/ws/LogsAction.java137
-rw-r--r--server/sonar-server/src/main/resources/org/sonar/server/ce/ws/logs-example.log84
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java10
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/CeWsModuleTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java17
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/LogsActionTest.java159
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java6
9 files changed, 4 insertions, 413 deletions
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
index 8c8b06ad653..0146a253f5b 100644
--- a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
+++ b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
@@ -598,7 +598,6 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer {
// JvmPropsMonitor.class, no Monitor in CE, responsibility of Web Server
// DatabaseMonitor.class, no Monitor in CE, responsibility of Web Server
// MigrateDbAction.class, no Web Service in CE
- // LogsAction.class, no Web Service in CE
// ChangeLogLevelAction.class, no Web Service in CE
// DbMigrationStatusAction.class, no Web Service in CE
diff --git a/server/sonar-server/src/main/java/org/sonar/server/ce/ws/CeWsModule.java b/server/sonar-server/src/main/java/org/sonar/server/ce/ws/CeWsModule.java
index ac527405405..4b4f73c9ed0 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/ce/ws/CeWsModule.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/ce/ws/CeWsModule.java
@@ -31,7 +31,6 @@ public class CeWsModule extends Module {
CancelAction.class,
CancelAllAction.class,
IsQueueEmptyWs.class,
- LogsAction.class,
ComponentAction.class,
SubmitAction.class,
TaskFormatter.class,
diff --git a/server/sonar-server/src/main/java/org/sonar/server/ce/ws/LogsAction.java b/server/sonar-server/src/main/java/org/sonar/server/ce/ws/LogsAction.java
deleted file mode 100644
index 9b9f744910a..00000000000
--- a/server/sonar-server/src/main/java/org/sonar/server/ce/ws/LogsAction.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.server.ce.ws;
-
-import com.google.common.base.Optional;
-import java.io.File;
-import java.io.IOException;
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
-import org.apache.commons.io.FileUtils;
-import org.sonar.api.server.ws.Request;
-import org.sonar.api.server.ws.Response;
-import org.sonar.api.server.ws.WebService;
-import org.sonar.api.web.UserRole;
-import org.sonar.ce.log.CeLogging;
-import org.sonar.ce.log.LogFileRef;
-import org.sonar.core.permission.GlobalPermissions;
-import org.sonar.core.util.Uuids;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.ce.CeActivityDto;
-import org.sonar.db.ce.CeQueueDto;
-import org.sonar.server.exceptions.NotFoundException;
-import org.sonar.server.user.UserSession;
-import org.sonarqube.ws.MediaTypes;
-
-import static java.lang.String.format;
-
-public class LogsAction implements CeWsAction {
-
- public static final String ACTION = "logs";
- public static final String PARAM_TASK_UUID = "taskId";
-
- private final DbClient dbClient;
- private final UserSession userSession;
- private final CeLogging ceLogging;
-
- public LogsAction(DbClient dbClient, UserSession userSession, CeLogging ceLogging) {
- this.dbClient = dbClient;
- this.userSession = userSession;
- this.ceLogging = ceLogging;
- }
-
- @Override
- public void define(WebService.NewController controller) {
- WebService.NewAction action = controller.createAction(ACTION)
- .setDescription("Logs of a task. Format of response is plain text. HTTP code 404 is returned if the task does not exist or if logs are not available. <br/>" +
- "Requires system administration permission or project administration permission.")
- .setResponseExample(getClass().getResource("logs-example.log"))
- .setInternal(true)
- .setSince("5.2")
- .setHandler(this);
-
- action
- .createParam(PARAM_TASK_UUID)
- .setRequired(true)
- .setDescription("Id of task")
- .setExampleValue(Uuids.UUID_EXAMPLE_01);
- }
-
- @Override
- public void handle(Request wsRequest, Response wsResponse) throws Exception {
- String taskUuid = wsRequest.mandatoryParam(PARAM_TASK_UUID);
- LogFileRefComponentUuidTuple refAndComponentUuid = loadLogRef(taskUuid);
- checkPermissions(refAndComponentUuid.componentUuid);
- Optional<File> logFile = ceLogging.getFile(refAndComponentUuid.logFileRef);
- if (logFile.isPresent()) {
- writeFile(logFile.get(), wsResponse);
- } else {
- throw new NotFoundException(format("Logs of task %s not found", taskUuid));
- }
- }
-
- private void checkPermissions(@Nullable String componentUuid) {
- if (componentUuid == null) {
- userSession.checkPermission(GlobalPermissions.SYSTEM_ADMIN);
- } else {
- userSession.checkComponentUuidPermission(UserRole.ADMIN, componentUuid);
- }
- }
-
- private LogFileRefComponentUuidTuple loadLogRef(String taskUuid) {
- DbSession dbSession = dbClient.openSession(false);
- try {
- Optional<CeQueueDto> queueDto = dbClient.ceQueueDao().selectByUuid(dbSession, taskUuid);
- if (queueDto.isPresent()) {
- return new LogFileRefComponentUuidTuple(LogFileRef.from(queueDto.get()), queueDto.get().getComponentUuid());
- }
- Optional<CeActivityDto> activityDto = dbClient.ceActivityDao().selectByUuid(dbSession, taskUuid);
- if (activityDto.isPresent()) {
- return new LogFileRefComponentUuidTuple(LogFileRef.from(activityDto.get()), activityDto.get().getComponentUuid());
- }
- throw new NotFoundException(format("Task %s not found", taskUuid));
-
- } finally {
- dbClient.closeSession(dbSession);
- }
- }
-
- private static void writeFile(File file, Response wsResponse) {
- try {
- Response.Stream stream = wsResponse.stream();
- stream.setMediaType(MediaTypes.TXT);
- FileUtils.copyFile(file, stream.output());
- } catch (IOException e) {
- throw new IllegalStateException("Fail to copy compute engine log file to HTTP response: " + file.getAbsolutePath(), e);
- }
- }
-
- private static class LogFileRefComponentUuidTuple {
- private final LogFileRef logFileRef;
- @CheckForNull
- private final String componentUuid;
-
- private LogFileRefComponentUuidTuple(LogFileRef logFileRef, @Nullable String componentUuid) {
- this.logFileRef = logFileRef;
- this.componentUuid = componentUuid;
- }
- }
-}
diff --git a/server/sonar-server/src/main/resources/org/sonar/server/ce/ws/logs-example.log b/server/sonar-server/src/main/resources/org/sonar/server/ce/ws/logs-example.log
deleted file mode 100644
index 054509ae856..00000000000
--- a/server/sonar-server/src/main/resources/org/sonar/server/ce/ws/logs-example.log
+++ /dev/null
@@ -1,84 +0,0 @@
-2015.11.02 10:25:16 INFO [o.s.s.c.t.CeWorkerRunnableImpl] Execute task | project=com.sonarsource:java-markdown | id=AVDHg9OnLPOCEbN7mM58
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExtractReportStep] Analysis report extracted | compressedSize=63 KB
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Extract report | time=75ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] SonarQube plugins:
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - Git 1.0 (scmgit)
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - SVN 1.2 (scmsvn)
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - Java 3.6 (java)
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] Settings for module: com.sonarsource:java-markdown
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.binaries=/Users/teryk/Projects/java-markdown/target/classes
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.core.id=20151102092209
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.core.startTime=2015-11-02T09:22:09+0100
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.core.version=5.3-SNAPSHOT
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.host.url=http://localhost:9000
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.java.binaries=/Users/teryk/Projects/java-markdown/target/classes
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.java.libraries=/Users/teryk/.m2/repository/org/easytesting/fest-assert/1.4/fest-assert-1.4.jar,/Users/teryk/.m2/repository/org/easytesting/fest-util/1.1.6/fest-util-1.1.6.jar
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.java.test.libraries=/Users/teryk/Projects/java-markdown/target/classes,/Users/teryk/.m2/repository/junit/junit/4.11/junit-4.11.jar,/Users/teryk/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar,/Users/teryk/.m2/repository/org/easytesting/fest-assert/1.4/fest-assert-1.4.jar,/Users/teryk/.m2/repository/org/easytesting/fest-util/1.1.6/fest-util-1.1.6.jar
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.libraries=/Users/teryk/.m2/repository/org/easytesting/fest-assert/1.4/fest-assert-1.4.jar,/Users/teryk/.m2/repository/org/easytesting/fest-util/1.1.6/fest-util-1.1.6.jar
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.links.ci=
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.links.homepage=http://maven.apache.org
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.links.issue=
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.links.scm=
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.links.scm_dev=
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.maven.projectDependencies=[{"k":"junit:junit","v":"4.11","s":"test","d":[{"k":"org.hamcrest:hamcrest-core","v":"1.3","s":"test","d":[]}]},{"k":"org.easytesting:fest-assert","v":"1.4","s":"compile","d":[{"k":"org.easytesting:fest-util","v":"1.1.6","s":"compile","d":[]}]}]
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.moduleKey=com.sonarsource:java-markdown
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.mojoUseRunner=true
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.permission.template.default=default_template
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.projectBaseDir=/Users/teryk/Projects/java-markdown
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.projectBuildDir=/Users/teryk/Projects/java-markdown/target
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.projectKey=com.sonarsource:java-markdown
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.projectName=Java Markdown
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.projectVersion=1.0-SNAPSHOT
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.qualitygate=1
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.sourceEncoding=UTF-8
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.sources=/Users/teryk/Projects/java-markdown/pom.xml,/Users/teryk/Projects/java-markdown/src/main/java
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.tests=/Users/teryk/Projects/java-markdown/src/test/java
-2015.11.02 10:25:17 INFO [o.s.s.c.s.LogScannerContextStep] - sonar.working.directory=/Users/teryk/Projects/java-markdown/target/sonar
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Log scanner context | time=3ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Build tree of components | time=36ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Validate project | time=4ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Load debt model | time=5ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Load quality profiles | time=121ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Load Quality gate | time=8ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Load differential periods | time=30ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute size measures | time=29ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute new coverage | time=39ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute coverage measures | time=11ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute comment measures | time=6ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Copy custom measures | time=29ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute duplication measures | time=3ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute language distribution | time=17ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute test measures | time=2ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute complexity measures | time=24ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Load measure computers | time=2ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] Execution time for each component visitor:
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] - LoadComponentUuidsHavingOpenIssuesVisitor | time=5ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] - IntegrateIssuesVisitor | time=182ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] - CloseIssuesOnRemovedComponentsVisitor | time=0ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] - SqaleMeasuresVisitor | time=4ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] - SqaleNewMeasuresVisitor | time=0ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] - LastCommitVisitor | time=0ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ExecuteVisitorsStep] - MeasureComputersVisitor | time=3ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Execute component visitors | time=198ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute measure variations | time=3ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Computes Quality Gate measures | time=6ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Compute Quality profile measures | time=1ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Generate Quality profile events | time=4ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Generate Quality gate events | time=2ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Persist components | time=25ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Persist snapshots | time=26ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Persist measures | time=212ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Persist issues | time=59ms
-2015.11.02 10:25:17 INFO [o.s.s.c.s.ComputationStepExecutor] Persist project links | time=6ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Persist events | time=4ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Persist duplications | time=2ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Persist sources | time=286ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Persist tests | time=16ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Enable snapshot | time=8ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Index components | time=60ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Purge db | time=27ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Apply permissions | time=2ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Index issues | time=77ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Index tests | time=50ms
-2015.11.02 10:25:18 INFO [o.s.s.c.s.ComputationStepExecutor] Send issue notifications | time=2ms
-2015.11.02 10:25:18 INFO [o.s.s.c.t.CeWorkerRunnableImpl] Executed task | project=com.sonarsource:java-markdown | id=AVDHg9OnLPOCEbN7mM58 | time=1706ms
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
index e2a4792de59..2eb1ce43430 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
@@ -20,13 +20,11 @@
package org.sonar.server.ce.ws;
-import com.google.common.base.Optional;
import com.google.common.base.Throwables;
import java.io.IOException;
import java.util.Collections;
import java.util.Date;
import java.util.List;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -34,7 +32,6 @@ import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
import org.sonar.ce.log.CeLogging;
-import org.sonar.ce.log.LogFileRef;
import org.sonar.ce.taskprocessor.CeTaskProcessor;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbTester;
@@ -56,9 +53,7 @@ import org.sonarqube.ws.client.ce.CeWsParameters;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import static org.sonar.api.utils.DateUtils.formatDate;
import static org.sonar.api.utils.DateUtils.formatDateTime;
import static org.sonar.db.component.ComponentTesting.newDeveloper;
@@ -86,11 +81,6 @@ public class ActivityActionTest {
ActivityAction underTest = new ActivityAction(userSession, dbTester.getDbClient(), formatter, new CeTaskProcessor[] {mock(CeTaskProcessor.class)});
WsActionTester ws = new WsActionTester(underTest);
- @Before
- public void setUp() {
- when(ceLogging.getFile(any(LogFileRef.class))).thenReturn(Optional.absent());
- }
-
@Test
public void get_all_past_activity() {
globalAdmin();
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CeWsModuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CeWsModuleTest.java
index ddcd9422a37..2049f653d14 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CeWsModuleTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/CeWsModuleTest.java
@@ -30,6 +30,6 @@ public class CeWsModuleTest {
public void verify_count_of_added_components() {
ComponentContainer container = new ComponentContainer();
new CeWsModule().configure(container);
- assertThat(container.size()).isEqualTo(12 + 2 /* injected by ComponentContainer */);
+ assertThat(container.size()).isEqualTo(11 + 2 /* injected by ComponentContainer */);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java
index 7be3ae0f6fb..282e87da55f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java
@@ -19,15 +19,11 @@
*/
package org.sonar.server.ce.ws;
-import com.google.common.base.Optional;
-import java.io.File;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
import org.sonar.ce.log.CeLogging;
-import org.sonar.ce.log.LogFileRef;
import org.sonar.core.util.Protobuf;
import org.sonar.db.DbTester;
import org.sonar.db.ce.CeActivityDto;
@@ -40,9 +36,7 @@ import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsCe;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
public class ComponentActionTest {
@@ -57,11 +51,6 @@ public class ComponentActionTest {
ComponentAction underTest = new ComponentAction(userSession, dbTester.getDbClient(), formatter);
WsActionTester tester = new WsActionTester(underTest);
- @Before
- public void setUp() {
- when(ceLogging.getFile(any(LogFileRef.class))).thenReturn(Optional.<File>absent());
- }
-
@Test
public void empty_queue_and_empty_activity() {
userSession.addComponentUuidPermission(UserRole.USER, "PROJECT_1", "PROJECT_1");
@@ -109,9 +98,9 @@ public class ComponentActionTest {
insertActivity("T5", "PROJECT_1", CeActivityDto.Status.CANCELED);
TestResponse wsResponse = tester.newRequest()
- .setParam("componentId", "PROJECT_1")
- .setMediaType(MediaTypes.PROTOBUF)
- .execute();
+ .setParam("componentId", "PROJECT_1")
+ .setMediaType(MediaTypes.PROTOBUF)
+ .execute();
WsCe.ProjectResponse response = Protobuf.read(wsResponse.getInputStream(), WsCe.ProjectResponse.parser());
assertThat(response.getQueueCount()).isEqualTo(0);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/LogsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/LogsActionTest.java
deleted file mode 100644
index 7a5277bb522..00000000000
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/LogsActionTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.server.ce.ws;
-
-import com.google.common.base.Optional;
-import java.io.File;
-import java.io.IOException;
-import javax.annotation.Nullable;
-import org.apache.commons.io.FileUtils;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.sonar.api.utils.System2;
-import org.sonar.api.web.UserRole;
-import org.sonar.db.DbTester;
-import org.sonar.db.ce.CeQueueDto;
-import org.sonar.db.ce.CeTaskTypes;
-import org.sonar.ce.log.CeLogging;
-import org.sonar.ce.log.LogFileRef;
-import org.sonar.server.exceptions.ForbiddenException;
-import org.sonar.server.exceptions.NotFoundException;
-import org.sonarqube.ws.MediaTypes;
-import org.sonar.server.tester.UserSessionRule;
-import org.sonar.server.ws.TestResponse;
-import org.sonar.server.ws.WsActionTester;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-public class LogsActionTest {
-
- @Rule
- public UserSessionRule userSession = UserSessionRule.standalone();
-
- @Rule
- public TemporaryFolder temp = new TemporaryFolder();
-
- @Rule
- public DbTester dbTester = DbTester.create(System2.INSTANCE);
-
- CeLogging ceLogging = mock(CeLogging.class);
- LogsAction underTest = new LogsAction(dbTester.getDbClient(), userSession, ceLogging);
- WsActionTester tester = new WsActionTester(underTest);
-
- @Test
- public void return_task_logs_if_available() throws IOException {
- globalAdministrator();
-
- // task must exist in database
- insert("TASK_1", null);
- File logFile = temp.newFile();
- FileUtils.write(logFile, "{logs}");
- when(ceLogging.getFile(new LogFileRef(CeTaskTypes.REPORT, "TASK_1", null))).thenReturn(Optional.of(logFile));
-
- TestResponse response = tester.newRequest()
- .setParam("taskId", "TASK_1")
- .execute();
-
- assertThat(response.getMediaType()).isEqualTo(MediaTypes.TXT);
- assertThat(response.getInput()).isEqualTo("{logs}");
- }
-
- @Test
- public void return_task_logs_when_project_admin() throws Exception {
- userSession.addProjectUuidPermissions(UserRole.ADMIN, "PROJECT_UUID");
-
- // task must exist in database
- insert("TASK_1", "PROJECT_UUID");
- File logFile = temp.newFile();
- FileUtils.write(logFile, "{logs}");
- when(ceLogging.getFile(new LogFileRef(CeTaskTypes.REPORT, "TASK_1", "PROJECT_UUID"))).thenReturn(Optional.of(logFile));
-
- TestResponse response = tester.newRequest()
- .setParam("taskId", "TASK_1")
- .execute();
-
- assertThat(response.getMediaType()).isEqualTo(MediaTypes.TXT);
- assertThat(response.getInput()).isEqualTo("{logs}");
- }
-
- /**
- * The parameter taskId is present but empty. It's considered as
- * a valid task which does not exist
- */
- @Test(expected = NotFoundException.class)
- public void return_404_if_task_id_is_empty() {
- globalAdministrator();
- tester.newRequest()
- .setParam("taskId", "")
- .execute();
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void bad_request_if_task_id_is_missing() {
- globalAdministrator();
- tester.newRequest()
- .execute();
- }
-
- @Test(expected = NotFoundException.class)
- public void return_404_if_task_logs_are_not_available() {
- globalAdministrator();
- insert("TASK_1", null);
- when(ceLogging.getFile(new LogFileRef(CeTaskTypes.REPORT, "TASK_1", null))).thenReturn(Optional.<File>absent());
-
- tester.newRequest()
- .setParam("taskId", "TASK_1")
- .execute();
- }
-
- @Test(expected = NotFoundException.class)
- public void return_404_if_task_does_not_exist() {
- globalAdministrator();
- tester.newRequest()
- .setParam("taskId", "TASK_1")
- .execute();
- }
-
- @Test(expected = ForbiddenException.class)
- public void require_admin_permission() {
- insert("TASK_1", null);
- tester.newRequest()
- .setParam("taskId", "TASK_1")
- .execute();
- }
-
- private void globalAdministrator() {
- userSession.setGlobalPermissions(UserRole.ADMIN);
- }
-
- private CeQueueDto insert(String taskUuid, @Nullable String componentUuid) {
- CeQueueDto queueDto = new CeQueueDto();
- queueDto.setTaskType(CeTaskTypes.REPORT);
- queueDto.setComponentUuid(componentUuid);
- queueDto.setUuid(taskUuid);
- queueDto.setStatus(CeQueueDto.Status.IN_PROGRESS);
- dbTester.getDbClient().ceQueueDao().insert(dbTester.getSession(), queueDto);
- dbTester.getSession().commit();
- return queueDto;
- }
-}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java
index 8584d97a4f3..d9cd5ab51eb 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java
@@ -19,15 +19,12 @@
*/
package org.sonar.server.ce.ws;
-import com.google.common.base.Optional;
-import java.io.File;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.api.utils.System2;
import org.sonar.ce.log.CeLogging;
-import org.sonar.ce.log.LogFileRef;
import org.sonar.core.util.Protobuf;
import org.sonar.db.DbTester;
import org.sonar.db.ce.CeActivityDto;
@@ -44,9 +41,7 @@ import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsCe;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import static org.sonar.core.permission.GlobalPermissions.PROVISIONING;
import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION;
import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
@@ -75,7 +70,6 @@ public class TaskActionTest {
@Before
public void setUp() {
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), PROJECT);
- when(ceLogging.getFile(any(LogFileRef.class))).thenReturn(Optional.<File>absent());
}
@Test