]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10898 Number of CE workers not taken into account in all nodes
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Wed, 20 Jun 2018 08:05:38 +0000 (10:05 +0200)
committerSonarTech <sonartech@sonarsource.com>
Fri, 13 Jul 2018 18:21:28 +0000 (20:21 +0200)
15 files changed:
server/sonar-ce/src/main/java/org/sonar/ce/CeHttpModule.java
server/sonar-ce/src/main/java/org/sonar/ce/configuration/CeConfiguration.java
server/sonar-ce/src/main/java/org/sonar/ce/configuration/CeConfigurationImpl.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/EnabledCeWorkerController.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/EnabledCeWorkerControllerImpl.java
server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/RefreshWorkerCountAction.java [deleted file]
server/sonar-ce/src/test/java/org/sonar/ce/configuration/CeConfigurationImplTest.java
server/sonar-ce/src/test/java/org/sonar/ce/configuration/CeConfigurationRule.java
server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java
server/sonar-ce/src/test/java/org/sonar/ce/monitoring/CeTasksMBeanImplTest.java
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/EnabledCeWorkerControllerImplTest.java
server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/RefreshWorkerCountActionTest.java [deleted file]
server/sonar-server/src/main/java/org/sonar/server/ce/http/CeHttpClient.java
server/sonar-server/src/main/java/org/sonar/server/ce/http/CeHttpClientImpl.java
server/sonar-server/src/test/java/org/sonar/server/ce/http/CeHttpClientTest.java

index 08e5af8ecfe588e5280bad061098efd754df16ca..223e289811bb1ea4f999fc8260c63a76863dc60a 100644 (file)
@@ -22,7 +22,6 @@ package org.sonar.ce;
 import org.sonar.ce.httpd.CeHttpServer;
 import org.sonar.ce.logging.ChangeLogLevelHttpAction;
 import org.sonar.ce.systeminfo.SystemInfoHttpAction;
-import org.sonar.ce.taskprocessor.RefreshWorkerCountAction;
 import org.sonar.core.platform.Module;
 
 public class CeHttpModule extends Module {
@@ -31,7 +30,6 @@ public class CeHttpModule extends Module {
     add(
       CeHttpServer.class,
       SystemInfoHttpAction.class,
-      ChangeLogLevelHttpAction.class,
-      RefreshWorkerCountAction.class);
+      ChangeLogLevelHttpAction.class);
   }
 }
index 8b040467e4b171a56bf68143bd45ad4a10cb12de..a44cbd0c650e4d1bfd551f5dc6b766402a6b184f 100644 (file)
@@ -21,11 +21,6 @@ package org.sonar.ce.configuration;
 
 public interface CeConfiguration {
 
-  /**
-   * Requests {@link CeConfiguration} to refresh its state, if it has any.
-   */
-  void refresh();
-
   /**
    * The maximum number of workers to process CeTasks concurrently, integer strictly greater than 0.
    */
index 53fd4707614fd0d0c5c6d75f0ce2146539d7945b..b2956f44f11f9b6fba16f6931ea9800ebefdcedf 100644 (file)
@@ -20,6 +20,7 @@
 package org.sonar.ce.configuration;
 
 import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
 import org.picocontainer.Startable;
 import org.sonar.api.config.Configuration;
 import org.sonar.api.utils.MessageException;
@@ -53,20 +54,22 @@ public class CeConfigurationImpl implements CeConfiguration, Startable {
   private int workerCount;
 
   public CeConfigurationImpl(Configuration configuration) {
-    this.workerCountProvider = null;
-    this.workerThreadCount = DEFAULT_WORKER_THREAD_COUNT;
-    this.workerCount = DEFAULT_WORKER_COUNT;
-    this.gracefultStopTimeoutInMs = configuration.getInt(SONAR_CE_GRACEFUL_STOP_TIME_OUT_IN_MS).orElse(GRACEFUL_STOP_TIMEOUT);
+    this(configuration, null);
   }
 
-  public CeConfigurationImpl(Configuration configuration, WorkerCountProvider workerCountProvider) {
+  public CeConfigurationImpl(Configuration configuration, @Nullable WorkerCountProvider workerCountProvider) {
     this.workerCountProvider = workerCountProvider;
-    this.workerThreadCount = MAX_WORKER_THREAD_COUNT;
-    this.workerCount = readWorkerCount(workerCountProvider);
     this.gracefultStopTimeoutInMs = configuration.getInt(SONAR_CE_GRACEFUL_STOP_TIME_OUT_IN_MS).orElse(GRACEFUL_STOP_TIMEOUT);
+    if (workerCountProvider == null) {
+      this.workerCount = DEFAULT_WORKER_COUNT;
+      this.workerThreadCount = DEFAULT_WORKER_THREAD_COUNT;
+    } else {
+      this.workerCount = readWorkerCount(workerCountProvider);
+      this.workerThreadCount = MAX_WORKER_THREAD_COUNT;
+    }
   }
 
-  private static int readWorkerCount(WorkerCountProvider workerCountProvider) {
+  private static synchronized int readWorkerCount(WorkerCountProvider workerCountProvider) {
     int value = workerCountProvider.get();
     if (value < DEFAULT_WORKER_COUNT || value > MAX_WORKER_THREAD_COUNT) {
       throw parsingError(value);
@@ -76,13 +79,13 @@ public class CeConfigurationImpl implements CeConfiguration, Startable {
 
   private static MessageException parsingError(int value) {
     return MessageException.of(format(
-        "Worker count '%s' is invalid. It must an integer strictly greater than 0 and less or equal to 10",
-        value));
+      "Worker count '%s' is invalid. It must be an integer strictly greater than 0 and less or equal to 10",
+      value));
   }
 
   @Override
   public void start() {
-    //
+    // nothing to do
   }
 
   @Override
@@ -90,13 +93,6 @@ public class CeConfigurationImpl implements CeConfiguration, Startable {
     // nothing to do
   }
 
-  @Override
-  public void refresh() {
-    if (workerCountProvider != null) {
-      this.workerCount = readWorkerCount(workerCountProvider);
-    }
-  }
-
   @Override
   public int getWorkerMaxCount() {
     return workerThreadCount;
@@ -104,6 +100,9 @@ public class CeConfigurationImpl implements CeConfiguration, Startable {
 
   @Override
   public int getWorkerCount() {
+    if (workerCountProvider != null) {
+      workerCount = readWorkerCount(workerCountProvider);
+    }
     return workerCount;
   }
 
index 7757f08ac59f6dab74ff28ae81b743a5509f4544..e11063d311c2b35e495bdacd8edb4cda304862ad 100644 (file)
@@ -27,11 +27,6 @@ public interface EnabledCeWorkerController {
   interface ProcessingRecorderHook extends AutoCloseable {
   }
 
-  /**
-   * Requests the {@link EnabledCeWorkerController} to refresh its state, if it has any.
-   */
-  void refresh();
-
   /**
    * Returns {@code true} if the specified {@link CeWorker} is enabled
    */
index a438ad8bd691beb30a82c91aa23a298c8ea76961..7370647a589396643bcd254212fc8382e985b4de 100644 (file)
 package org.sonar.ce.taskprocessor;
 
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
 import org.sonar.api.utils.log.Loggers;
 import org.sonar.ce.configuration.CeConfiguration;
 
 public class EnabledCeWorkerControllerImpl implements EnabledCeWorkerController {
   private final ConcurrentHashMap<CeWorker, Status> map = new ConcurrentHashMap<>();
   private final CeConfiguration ceConfiguration;
-  private final AtomicInteger workerCount;
 
   enum Status {
     PROCESSING, PAUSED
@@ -35,23 +33,16 @@ public class EnabledCeWorkerControllerImpl implements EnabledCeWorkerController
 
   public EnabledCeWorkerControllerImpl(CeConfiguration ceConfiguration) {
     this.ceConfiguration = ceConfiguration;
-    this.workerCount = new AtomicInteger(ceConfiguration.getWorkerCount());
     logEnabledWorkerCount();
   }
 
   private void logEnabledWorkerCount() {
-    if (workerCount.get() > 1) {
-      Loggers.get(EnabledCeWorkerController.class).info("Compute Engine will use {} concurrent workers to process tasks", this.workerCount);
+    int workerCount = ceConfiguration.getWorkerCount();
+    if (workerCount > 1) {
+      Loggers.get(EnabledCeWorkerController.class).info("Compute Engine will use {} concurrent workers to process tasks", workerCount);
     }
   }
 
-  @Override
-  public void refresh() {
-    ceConfiguration.refresh();
-    this.workerCount.set(ceConfiguration.getWorkerCount());
-    logEnabledWorkerCount();
-  }
-
   @Override
   public ProcessingRecorderHook registerProcessingFor(CeWorker ceWorker) {
     return new ProcessingRecorderHookImpl(ceWorker);
@@ -70,7 +61,7 @@ public class EnabledCeWorkerControllerImpl implements EnabledCeWorkerController
    */
   @Override
   public boolean isEnabled(CeWorker ceWorker) {
-    return ceWorker.getOrdinal() < workerCount.get();
+    return ceWorker.getOrdinal() < ceConfiguration.getWorkerCount();
   }
 
   private class ProcessingRecorderHookImpl implements ProcessingRecorderHook {
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/RefreshWorkerCountAction.java b/server/sonar-ce/src/main/java/org/sonar/ce/taskprocessor/RefreshWorkerCountAction.java
deleted file mode 100644 (file)
index 225f457..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 SonarSource SA
- * mailto:info 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.ce.taskprocessor;
-
-import fi.iki.elonen.NanoHTTPD;
-import org.sonar.ce.httpd.HttpAction;
-
-import static fi.iki.elonen.NanoHTTPD.MIME_PLAINTEXT;
-import static fi.iki.elonen.NanoHTTPD.newFixedLengthResponse;
-import static fi.iki.elonen.NanoHTTPD.Response.Status.METHOD_NOT_ALLOWED;
-import static fi.iki.elonen.NanoHTTPD.Response.Status.OK;
-
-public class RefreshWorkerCountAction implements HttpAction {
-  private static final String PATH = "refreshWorkerCount";
-
-  private final EnabledCeWorkerController enabledCeWorkerController;
-
-  public RefreshWorkerCountAction(EnabledCeWorkerController enabledCeWorkerController) {
-    this.enabledCeWorkerController = enabledCeWorkerController;
-  }
-
-  @Override
-  public void register(ActionRegistry registry) {
-    registry.register(PATH, this);
-  }
-
-  @Override
-  public NanoHTTPD.Response serve(NanoHTTPD.IHTTPSession session) {
-    if (session.getMethod() != NanoHTTPD.Method.POST) {
-      return newFixedLengthResponse(METHOD_NOT_ALLOWED, MIME_PLAINTEXT, null);
-    }
-
-    enabledCeWorkerController.refresh();
-
-    return newFixedLengthResponse(OK, MIME_PLAINTEXT, null);
-  }
-}
index 29068c986a8d3376b35b2ccb84939d1b25fb80b9..5eb33c75c05fedae5f4d77346c6f1e2e5418b4c7 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.ce.configuration;
 
 import java.util.Random;
-import java.util.stream.IntStream;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -96,7 +95,7 @@ public class CeConfigurationImplTest {
   private void expectMessageException(int value) {
     expectedException.expect(MessageException.class);
     expectedException.expectMessage("Worker count '" + value + "' is invalid. " +
-      "It must an integer strictly greater than 0 and less or equal to 10");
+      "It must be an integer strictly greater than 0 and less or equal to 10");
   }
 
   @Test
@@ -117,50 +116,6 @@ public class CeConfigurationImplTest {
       .isEqualTo(2L);
   }
 
-  @Test
-  public void refresh_does_not_change_any_value_when_there_is_no_WorkerCountProvider() {
-    CeConfigurationImpl underTest = new CeConfigurationImpl(EMPTY_CONFIGURATION);
-    long cleanCeTasksInitialDelay = underTest.getCleanCeTasksInitialDelay();
-    long cleanCeTasksDelay = underTest.getCleanCeTasksDelay();
-    long queuePollingDelay = underTest.getQueuePollingDelay();
-    int workerThreadCount = underTest.getWorkerMaxCount();
-    int workerCount = underTest.getWorkerCount();
-
-    IntStream.range(0, 1 + abs(new Random().nextInt(10)))
-      .forEach(ignored -> {
-        underTest.refresh();
-        assertThat(underTest.getCleanCeTasksInitialDelay()).isEqualTo(cleanCeTasksInitialDelay);
-        assertThat(underTest.getCleanCeTasksDelay()).isEqualTo(cleanCeTasksDelay);
-        assertThat(underTest.getQueuePollingDelay()).isEqualTo(queuePollingDelay);
-        assertThat(underTest.getWorkerMaxCount()).isEqualTo(workerThreadCount);
-        assertThat(underTest.getWorkerCount()).isEqualTo(workerCount);
-      });
-  }
-
-  @Test
-  public void refresh_updates_only_workerCount_from_WorkerCountProvider_when_there_WorkerCountProvider_is_present() {
-    workerCountProvider.set(randomValidWorkerCount());
-    CeConfigurationImpl underTest = new CeConfigurationImpl(EMPTY_CONFIGURATION, workerCountProvider);
-    long cleanCeTasksInitialDelay = underTest.getCleanCeTasksInitialDelay();
-    long cleanCeTasksDelay = underTest.getCleanCeTasksDelay();
-    long queuePollingDelay = underTest.getQueuePollingDelay();
-    int workerThreadCount = underTest.getWorkerMaxCount();
-
-    IntStream.range(0, 1 + abs(new Random().nextInt(10)))
-      .forEach(ignored -> {
-        int newWorkerCount = randomValidWorkerCount();
-        workerCountProvider.set(newWorkerCount);
-
-        underTest.refresh();
-
-        assertThat(underTest.getCleanCeTasksInitialDelay()).isEqualTo(cleanCeTasksInitialDelay);
-        assertThat(underTest.getCleanCeTasksDelay()).isEqualTo(cleanCeTasksDelay);
-        assertThat(underTest.getQueuePollingDelay()).isEqualTo(queuePollingDelay);
-        assertThat(underTest.getWorkerMaxCount()).isEqualTo(workerThreadCount);
-        assertThat(underTest.getWorkerCount()).isEqualTo(newWorkerCount);
-      });
-  }
-
   private static final class SimpleWorkerCountProvider implements WorkerCountProvider {
     private int value = 0;
 
index 86d9d87a49f2180cdff9e86d5ae2df5422bd31b5..6468e34a31498d4b2186a755624f32c8025714e0 100644 (file)
@@ -19,7 +19,6 @@
  */
 package org.sonar.ce.configuration;
 
-import java.util.function.Consumer;
 import org.junit.rules.ExternalResource;
 
 import static com.google.common.base.Preconditions.checkArgument;
@@ -33,18 +32,6 @@ public class CeConfigurationRule extends ExternalResource implements CeConfigura
   private long queuePollingDelay = 2 * 1000L;
   private long cancelWornOutsInitialDelay = 1L;
   private long cancelWornOutsDelay = 10L;
-  private Consumer<CeConfigurationRule> refreshCallHook;
-
-  @Override
-  public void refresh() {
-    if (this.refreshCallHook != null) {
-      this.refreshCallHook.accept(this);
-    }
-  }
-
-  public void setRefreshCallHook(Consumer<CeConfigurationRule> refreshCallHook) {
-    this.refreshCallHook = refreshCallHook;
-  }
 
   @Override
   public int getWorkerMaxCount() {
index c9efd801a3798b8dc8bd8a458a247229c3837530..0ed296016757e98689b506b773ffc71fea78a9ed 100644 (file)
@@ -100,7 +100,7 @@ public class ComputeEngineContainerImplTest {
             + 72 // level 4
             + 6 // content of CeConfigurationModule
             + 4 // content of CeQueueModule
-            + 4 // content of CeHttpModule
+            + 3 // content of CeHttpModule
             + 3 // content of CeTaskCommonsModule
             + 4 // content of ProjectAnalysisTaskModule
             + 7 // content of CeTaskProcessorModule
index 33e3416e8a6ab80eb2d56337709ea33190604b91..cada6ab59aab24a427c41be1ab7118c49c9ebf9e 100644 (file)
@@ -144,11 +144,6 @@ public class CeTasksMBeanImplTest {
   }
   private static class DumbCeConfiguration implements CeConfiguration {
 
-    @Override
-    public void refresh() {
-      throw new UnsupportedOperationException("Refresh is not implemented");
-    }
-
     @Override
     public int getWorkerMaxCount() {
       return WORKER_MAX_COUNT;
index c2c7726d2be636edc4d06004c20d1e53eedf6488..54c90fb1b7fd3533096060a2f9e6a60558241740 100644 (file)
@@ -93,46 +93,16 @@ public class EnabledCeWorkerControllerImplTest {
   }
 
   @Test
-  public void workerCount_is_loaded_in_constructor() {
-    when(ceWorker.getOrdinal()).thenReturn(randomWorkerCount);
-    assertThat(underTest.isEnabled(ceWorker)).isFalse();
-
-    ceConfigurationRule.setWorkerCount(randomWorkerCount + 1);
-    assertThat(underTest.isEnabled(ceWorker)).isFalse();
-  }
+  public void workerCount_is_always_reloaded() {
+    when(ceWorker.getOrdinal()).thenReturn(1);
 
-  @Test
-  public void refresh_reloads_workerCount() {
-    when(ceWorker.getOrdinal()).thenReturn(randomWorkerCount);
+    ceConfigurationRule.setWorkerCount(1);
     assertThat(underTest.isEnabled(ceWorker)).isFalse();
-    ceConfigurationRule.setRefreshCallHook((rule) -> rule.setWorkerCount(randomWorkerCount + 1));
-
-    underTest.refresh();
 
+    ceConfigurationRule.setWorkerCount(2);
     assertThat(underTest.isEnabled(ceWorker)).isTrue();
   }
 
-  @Test
-  public void refresh_writes_info_log_if_workerCount_is_greater_than_1() {
-    logTester.clear();
-    int newWorkerCount = randomWorkerCount + 1;
-    ceConfigurationRule.setRefreshCallHook((rule) -> rule.setWorkerCount(newWorkerCount));
-
-    underTest.refresh();
-
-    verifyInfoLog(newWorkerCount);
-  }
-
-  @Test
-  public void refresh_writes_no_info_log_if_workerCount_is_1() {
-    logTester.clear();
-    ceConfigurationRule.setRefreshCallHook((rule) -> rule.setWorkerCount(1));
-
-    underTest.refresh();
-
-    assertThat(logTester.logs()).isEmpty();
-  }
-
   private void verifyInfoLog(int workerCount) {
     assertThat(logTester.logs()).hasSize(1);
     assertThat(logTester.logs(LoggerLevel.INFO))
diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/RefreshWorkerCountActionTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/taskprocessor/RefreshWorkerCountActionTest.java
deleted file mode 100644 (file)
index ea9a3a7..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2018 SonarSource SA
- * mailto:info 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.ce.taskprocessor;
-
-import fi.iki.elonen.NanoHTTPD;
-import org.junit.Test;
-import org.sonar.ce.httpd.HttpAction;
-
-import static fi.iki.elonen.NanoHTTPD.Method.GET;
-import static fi.iki.elonen.NanoHTTPD.Method.POST;
-import static fi.iki.elonen.NanoHTTPD.Response.Status.METHOD_NOT_ALLOWED;
-import static fi.iki.elonen.NanoHTTPD.Response.Status.OK;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.sonar.ce.httpd.CeHttpUtils.createHttpSession;
-
-public class RefreshWorkerCountActionTest {
-  private EnabledCeWorkerController enabledCeWorkerController = mock(EnabledCeWorkerController.class);
-  private RefreshWorkerCountAction underTest = new RefreshWorkerCountAction(enabledCeWorkerController);
-
-  @Test
-  public void register_to_path_changeLogLevel() {
-    HttpAction.ActionRegistry actionRegistry = mock(HttpAction.ActionRegistry.class);
-
-    underTest.register(actionRegistry);
-
-    verify(actionRegistry).register("refreshWorkerCount", underTest);
-  }
-
-  @Test
-  public void serves_METHOD_NOT_ALLOWED_error_when_method_is_not_POST() {
-    NanoHTTPD.Response response = underTest.serve(createHttpSession(GET));
-
-    assertThat(response.getStatus()).isEqualTo(METHOD_NOT_ALLOWED);
-    verifyZeroInteractions(enabledCeWorkerController);
-  }
-
-  @Test
-  public void call_EnabledCeWorkerController_refresh_on_POST() {
-    NanoHTTPD.Response response = underTest.serve(createHttpSession(POST));
-
-    assertThat(response.getStatus()).isEqualTo(OK);
-    verify(enabledCeWorkerController).refresh();
-    verifyNoMoreInteractions(enabledCeWorkerController);
-  }
-}
index 5bb79bdf3a9de576bfa6c32c21f105b98fe281d5..26c7662cc03ff1f2e79a062be42ac9f01eae2bdd 100644 (file)
@@ -27,6 +27,4 @@ public interface CeHttpClient {
   Optional<ProtobufSystemInfo.SystemInfo> retrieveSystemInfo();
 
   void changeLogLevel(LoggerLevel level);
-
-  void refreshCeWorkerCount();
 }
index 10be9371722cf7ed49f6672eec00fbaf13a5f8cb..b6f04b6682a6827504192185f2427d337cb1bdb0 100644 (file)
@@ -123,44 +123,6 @@ public class CeHttpClientImpl implements CeHttpClient {
     }
   }
 
-  @Override
-  public void refreshCeWorkerCount() {
-    call(RefreshCeWorkerCountActionClient.INSTANCE);
-  }
-
-  private enum RefreshCeWorkerCountActionClient implements ActionClient<Void> {
-    INSTANCE;
-
-    @Override
-    public String getPath() {
-      return "refreshWorkerCount";
-    }
-
-    @Override
-    public Void getDefault() {
-      return null;
-    }
-
-    @Override
-    public Void call(String url) throws Exception {
-      okhttp3.Request request = new okhttp3.Request.Builder()
-        .post(RequestBody.create(null, new byte[0]))
-        .url(url)
-        .build();
-      try (okhttp3.Response response = new OkHttpClient().newCall(request).execute()) {
-        if (response.code() != 200) {
-          throw new IOException(
-            String.format(
-              "Failed to trigger refresh of CE Worker count. Code was '%s' and response was '%s' for url '%s'",
-              response.code(),
-              response.body().string(),
-              url));
-        }
-        return null;
-      }
-    }
-  }
-
   private <T> T call(ActionClient<T> actionClient) {
     try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(ipcSharedDir, COMPUTE_ENGINE.getIpcIndex())) {
       if (commands.isUp()) {
index bd918c6782db0ac048322b024928ad42b5b42372..fc21c004270deac9b233f9608b44c15c7bab7153 100644 (file)
@@ -133,31 +133,6 @@ public class CeHttpClientTest {
     underTest.changeLogLevel(LoggerLevel.INFO);
   }
 
-  @Test
-  public void refreshCeWorkerCount_throws_ISE_if_http_error() {
-    String message = "blah";
-    server.enqueue(new MockResponse().setResponseCode(500).setBody(message));
-    // initialize registration of process
-    setUpWithHttpUrl(ProcessId.COMPUTE_ENGINE);
-
-    expectedException.expect(IllegalStateException.class);
-    expectedException.expectMessage("Failed to call HTTP server of process " + ProcessId.COMPUTE_ENGINE);
-    expectedException.expectCause(hasType(IOException.class)
-        .andMessage(format("Failed to trigger refresh of CE Worker count. Code was '500' and response was 'blah' for url " +
-            "'http://%s:%s/refreshWorkerCount'", server.getHostName(), server.getPort())));
-
-    underTest.refreshCeWorkerCount();
-  }
-
-  @Test
-  public void refreshCeWorkerCount_does_not_fail_when_http_code_is_200() {
-    server.enqueue(new MockResponse().setResponseCode(200));
-
-    setUpWithHttpUrl(ProcessId.COMPUTE_ENGINE);
-
-    underTest.refreshCeWorkerCount();
-  }
-
   private void setUpWithHttpUrl(ProcessId processId) {
     try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(ipcSharedDir, processId.getIpcIndex())) {
       processCommands.setUp();