@Override public StartupStatus checkStartupState(DockerClient dockerClient, String containerId) { InspectContainerResponse.ContainerState state = getCurrentState(dockerClient, containerId); if (!DockerStatus.isContainerStopped(state)) { return StartupStatus.NOT_YET_KNOWN; } if (DockerStatus.isContainerStopped(state) && DockerStatus.isContainerExitCodeSuccess(state)) { return StartupStatus.SUCCESSFUL; } else { return StartupStatus.FAILED; } } }
@Override public StartupStatus checkStartupState(DockerClient dockerClient, String containerId) { // record "now" before fetching status; otherwise the time to fetch the status // will contribute to how long the container has been running. Instant now = Instant.now(); InspectContainerResponse.ContainerState state = getCurrentState(dockerClient, containerId); if (DockerStatus.isContainerRunning(state, minimumRunningDuration, now)) { return StartupStatus.SUCCESSFUL; } else if (DockerStatus.isContainerStopped(state)) { return StartupStatus.FAILED; } return StartupStatus.NOT_YET_KNOWN; }
@Test public void testStopped() throws Exception { assertFalse(DockerStatus.isContainerStopped(running)); assertFalse(DockerStatus.isContainerStopped(runningVariant)); assertFalse(DockerStatus.isContainerStopped(shortRunning)); assertFalse(DockerStatus.isContainerStopped(created)); assertFalse(DockerStatus.isContainerStopped(createdVariant)); assertTrue(DockerStatus.isContainerStopped(exited)); assertFalse(DockerStatus.isContainerStopped(paused)); }
@Override public StartupStatus checkStartupState(DockerClient dockerClient, String containerId) { InspectContainerResponse.ContainerState state = getCurrentState(dockerClient, containerId); if (!DockerStatus.isContainerStopped(state)) { return StartupStatus.NOT_YET_KNOWN; } if (DockerStatus.isContainerStopped(state) && DockerStatus.isContainerExitCodeSuccess(state)) { return StartupStatus.SUCCESSFUL; } else { return StartupStatus.FAILED; } } }
@Override public StartupStatus checkStartupState(DockerClient dockerClient, String containerId) { // record "now" before fetching status; otherwise the time to fetch the status // will contribute to how long the container has been running. Instant now = Instant.now(); InspectContainerResponse.ContainerState state = getCurrentState(dockerClient, containerId); if (DockerStatus.isContainerRunning(state, minimumRunningDuration, now)) { return StartupStatus.SUCCESSFUL; } else if (DockerStatus.isContainerStopped(state)) { return StartupStatus.FAILED; } return StartupStatus.NOT_YET_KNOWN; }