@Test public void secondary_does_not_clear_the_memory_space_of_the_specified_process_number() throws IOException { File dir = temp.newFolder(); try (DefaultProcessCommands commands = DefaultProcessCommands.main(dir, PROCESS_NUMBER)) { commands.setUp(); commands.setHttpUrl("bla"); commands.setOperational(); } try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(dir, PROCESS_NUMBER)) { assertThat(commands.isUp()).isTrue(); assertThat(commands.getHttpUrl()).isEqualTo("bla"); assertThat(commands.isOperational()).isTrue(); } }
@Test public void acknowledgeAskForRestart_resets_askForRestart_has_no_effect_when_no_restart_asked() throws Exception { File dir = temp.newFolder(); try (DefaultProcessCommands commands = DefaultProcessCommands.main(dir, PROCESS_NUMBER)) { commands.askForRestart(); assertThat(commands.askedForRestart()).isTrue(); commands.acknowledgeAskForRestart(); assertThat(commands.askedForRestart()).isFalse(); } }
@Test public void ask_for_stop() throws Exception { File dir = temp.newFolder(); try (DefaultProcessCommands commands = DefaultProcessCommands.main(dir, PROCESS_NUMBER)) { assertThat(commands.askedForStop()).isFalse(); commands.askForStop(); assertThat(commands.askedForStop()).isTrue(); } }
private boolean isOperational() { try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(sharedDir, ProcessId.WEB_SERVER.getIpcIndex())) { return processCommands.isOperational(); } }
private void registerHttpUrl() { int processNumber = parseInt(processProps.getProperty(PROPERTY_PROCESS_INDEX)); File shareDir = new File(processProps.getProperty(PROPERTY_SHARED_PATH)); try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(shareDir, processNumber)) { String url = getUrl(); commands.setHttpUrl(url); LoggerFactory.getLogger(getClass()).debug("System Info HTTP server listening at {}", url); } }
private <T> T call(ActionClient<T> actionClient) { try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(ipcSharedDir, COMPUTE_ENGINE.getIpcIndex())) { if (commands.isUp()) { return actionClient.call(commands.getHttpUrl() + "/" + actionClient.getPath()); } return actionClient.getDefault(); } catch (Exception e) { throw new IllegalStateException("Failed to call HTTP server of process " + COMPUTE_ENGINE, e); } }
private <T> T call(ProcessMethod<T> command, int processNumber) { File shareDir = nonNullValueAsFile(PROPERTY_SHARED_PATH); try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(shareDir, processNumber)) { return command.callOn(commands); } }
private void setUpWithHttpUrl(ProcessId processId) { try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(ipcSharedDir, processId.getIpcIndex())) { processCommands.setUp(); processCommands.setHttpUrl(format("http://%s:%d", server.getHostName(), server.getPort())); } } }
@Test public void start_publishes_URL_in_IPC() { try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(this.sharedDir, 1)) { assertThat(commands.getHttpUrl()).startsWith("http://127.0.0.1:"); } }
@Test public void isCeOperational_reads_shared_memory_operational_flag_in_location_3() throws IOException { File tmpDir = temp.newFolder().getAbsoluteFile(); settings.setProperty(PROPERTY_SHARED_PATH, tmpDir.getAbsolutePath()); boolean expected = new Random().nextBoolean(); if (expected) { try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(tmpDir, 3)) { processCommands.setOperational(); } } ProcessCommandWrapperImpl underTest = new ProcessCommandWrapperImpl(settings.asConfig()); assertThat(underTest.isCeOperational()).isEqualTo(expected); }
@Test public void requestSQRestart_updates_shareMemory_file() throws IOException { File tmpDir = temp.newFolder().getAbsoluteFile(); settings.setProperty(PROPERTY_SHARED_PATH, tmpDir.getAbsolutePath()); settings.setProperty(PROPERTY_PROCESS_INDEX, PROCESS_NUMBER); ProcessCommandWrapperImpl underTest = new ProcessCommandWrapperImpl(settings.asConfig()); underTest.requestSQRestart(); try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(tmpDir, PROCESS_NUMBER)) { assertThat(processCommands.askedForRestart()).isTrue(); } }
@Test public void requestSQStop_updates_shareMemory_file() throws IOException { File tmpDir = temp.newFolder().getAbsoluteFile(); settings.setProperty(PROPERTY_SHARED_PATH, tmpDir.getAbsolutePath()); settings.setProperty(PROPERTY_PROCESS_INDEX, PROCESS_NUMBER); ProcessCommandWrapperImpl underTest = new ProcessCommandWrapperImpl(settings.asConfig()); underTest.requestStop(); try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(tmpDir, PROCESS_NUMBER)) { assertThat(processCommands.askedForStop()).isTrue(); } }
@Test public void acknowledgeAskForRestart_has_no_effect_when_no_restart_asked() throws Exception { File dir = temp.newFolder(); try (DefaultProcessCommands commands = DefaultProcessCommands.main(dir, PROCESS_NUMBER)) { assertThat(commands.askedForRestart()).isFalse(); commands.acknowledgeAskForRestart(); assertThat(commands.askedForRestart()).isFalse(); } }
@Test public void ask_for_restart() throws Exception { File dir = temp.newFolder(); try (DefaultProcessCommands commands = DefaultProcessCommands.main(dir, PROCESS_NUMBER)) { assertThat(commands.askedForRestart()).isFalse(); commands.askForRestart(); assertThat(commands.askedForRestart()).isTrue(); } }
private <T> T call(ActionClient<T> actionClient) { try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(ipcSharedDir, COMPUTE_ENGINE.getIpcIndex())) { if (commands.isUp()) { return actionClient.call(commands.getHttpUrl() + "/" + actionClient.getPath()); } return actionClient.getDefault(); } catch (Exception e) { throw new IllegalStateException("Failed to call HTTP server of process " + COMPUTE_ENGINE, e); } }
@Test public void notifyOperational_updates_shareMemory_file() throws IOException { File tmpDir = temp.newFolder().getAbsoluteFile(); settings.setProperty(PROPERTY_SHARED_PATH, tmpDir.getAbsolutePath()); settings.setProperty(PROPERTY_PROCESS_INDEX, PROCESS_NUMBER); ProcessCommandWrapperImpl underTest = new ProcessCommandWrapperImpl(settings.asConfig()); underTest.notifyOperational(); try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(tmpDir, PROCESS_NUMBER)) { assertThat(processCommands.isOperational()).isTrue(); } }
public static StopRequestWatcherImpl create(AppSettings settings, Scheduler scheduler, FileSystem fs) { DefaultProcessCommands commands = DefaultProcessCommands.secondary(fs.getTempDir(), ProcessId.APP.getIpcIndex()); return new StopRequestWatcherImpl(settings, scheduler, commands); }
private void registerHttpUrl() { int processNumber = parseInt(processProps.getProperty(PROPERTY_PROCESS_INDEX)); File shareDir = new File(processProps.getProperty(PROPERTY_SHARED_PATH)); try (DefaultProcessCommands commands = DefaultProcessCommands.secondary(shareDir, processNumber)) { String url = getUrl(); commands.setHttpUrl(url); LoggerFactory.getLogger(getClass()).debug("System Info HTTP server listening at {}", url); } }
@Test public void main_clears_the_memory_space_of_the_specified_process_number() throws IOException { File dir = temp.newFolder(); try (DefaultProcessCommands commands = DefaultProcessCommands.main(dir, PROCESS_NUMBER)) { commands.setUp(); commands.setHttpUrl("bla"); commands.setOperational(); } try (DefaultProcessCommands commands = DefaultProcessCommands.main(dir, PROCESS_NUMBER)) { assertThat(commands.isUp()).isFalse(); assertThat(commands.getHttpUrl()).isEmpty(); assertThat(commands.isOperational()).isFalse(); } }