@Override public void pauseContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); containerAction(containerId, "pause"); }
@Override public void unpauseContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); containerAction(containerId, "unpause"); }
@Override public void killContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); containerAction(containerId, "kill"); }
@Override public void startContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); log.info("Starting container with Id: {}", containerId); containerAction(containerId, "start"); }
@Override public void restartContainer(String containerId, int secondsToWaitBeforeRestart) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); checkNotNull(secondsToWaitBeforeRestart, "secondsToWait"); MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<>(); queryParameters.add("t", String.valueOf(secondsToWaitBeforeRestart)); containerAction(containerId, "restart", queryParameters); }
@Override public void killContainer(final String containerId, final Signal signal) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<>(); queryParameters.add("signal", signal.getName()); containerAction(containerId, "kill", queryParameters); }
private void containerAction(final String containerId, final String action, final MultivaluedMap<String, String> queryParameters) throws DockerException, InterruptedException { try { WebTarget resource = resource() .path("containers").path(containerId).path(action); for (Map.Entry<String, List<String>> queryParameter : queryParameters.entrySet()) { for (String parameterValue : queryParameter.getValue()) { resource = resource.queryParam(queryParameter.getKey(), parameterValue); } } request(POST, resource, resource.request()); } catch (DockerRequestException e) { switch (e.status()) { case 404: throw new ContainerNotFoundException(containerId, e); default: throw e; } } }
@Override public void pauseContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); containerAction(containerId, "pause"); }
@Override public void unpauseContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); containerAction(containerId, "unpause"); }
@Override public void killContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); containerAction(containerId, "kill"); }
@Override public void startContainer(final String containerId) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); log.info("Starting container with Id: {}", containerId); containerAction(containerId, "start"); }
@Override public void restartContainer(String containerId, int secondsToWaitBeforeRestart) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); checkNotNull(secondsToWaitBeforeRestart, "secondsToWait"); MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<>(); queryParameters.add("t", String.valueOf(secondsToWaitBeforeRestart)); containerAction(containerId, "restart", queryParameters); }
@Override public void killContainer(final String containerId, final Signal signal) throws DockerException, InterruptedException { checkNotNull(containerId, "containerId"); MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<>(); queryParameters.add("signal", signal.getName()); containerAction(containerId, "kill", queryParameters); }
private void containerAction(final String containerId, final String action, final MultivaluedMap<String, String> queryParameters) throws DockerException, InterruptedException { try { WebTarget resource = resource() .path("containers").path(containerId).path(action); for (Map.Entry<String, List<String>> queryParameter : queryParameters.entrySet()) { for (String parameterValue : queryParameter.getValue()) { resource = resource.queryParam(queryParameter.getKey(), parameterValue); } } request(POST, resource, resource.request()); } catch (DockerRequestException e) { switch (e.status()) { case 404: throw new ContainerNotFoundException(containerId, e); default: throw e; } } }