void handleError(@Nonnull String error) throws DockerException { log.error(error); throw new DockerException(error); }
dockerClient.killContainer(container.id()); } catch (DockerException e) { e.printStackTrace();
outputStream.write(container.id().getBytes()); } catch (DockerException e) { getLogger().error("Error: " + e.getMessage()); e.printStackTrace(); } catch (InterruptedException e) { getLogger().error("Interrupted Error: " + e.getMessage());
public Result tag(final DockerClient dockerClient, String repository, String name) { String errMsg; try { dockerClient.tag(repository, name, true); return new Result().success(); } catch (DockerException e) { errMsg = e.getMessage(); logger.error("remove image exception.", e); } catch (InterruptedException e) { errMsg = e.getMessage(); logger.error("remove image exception.", e); } catch (Exception e) { errMsg = e.getMessage(); logger.error("remove image exception.", e); } return new Result().fail(errMsg); }
public Result pull(final DockerClient dockerClient, ReadOnlyImage readOnlyImage) { String repository = readOnlyImage.getRepository(); String errMsg; try { dockerClient.pull(repository); return new Result().success(); } catch (DockerException e) { errMsg = e.getMessage(); logger.error("pull image exception.", e); } catch (InterruptedException e) { errMsg = e.getMessage(); logger.error("pull image exception.", e); } catch (Exception e) { errMsg = e.getMessage(); logger.error("pull image exception.", e); } return new Result().fail(errMsg); }
/** * URL-encodes a string when used as a URL query parameter's value. * * @param unencoded A string that may contain characters not allowed in URL query parameters. * @return URL-encoded String * @throws DockerException if there's an UnsupportedEncodingException */ private String urlEncode(final String unencoded) throws DockerException { try { final String encode = URLEncoder.encode(unencoded, UTF_8.name()); return encode.replaceAll("\\+", "%20"); } catch (UnsupportedEncodingException e) { throw new DockerException(e); } }
public Result push(final DockerClient dockerClient, ReadOnlyImage readOnlyImage) { String repository = readOnlyImage.getRepository(); String errMsg; try { dockerClient.push(repository); return new Result().success(); } catch (DockerException e) { errMsg = e.getMessage(); logger.error("push image exception.", e); } catch (InterruptedException e) { errMsg = e.getMessage(); logger.error("push image exception.", e); } catch (Exception e) { errMsg = e.getMessage(); logger.error("push image exception.", e); } return new Result().fail(errMsg); }
@Override public void process(InputStream inputStream, OutputStream outputStream) throws IOException { try { List<Container> containers = docker.listContainers(); ObjectMapper mapper = new ObjectMapper(); outputStream.write(mapper.writeValueAsBytes(containers)); } catch (DockerException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } });
@Override public void progress(ProgressMessage message) throws DockerException { if (message.error() != null) { throw new DockerException(message.toString()); } log.info("build: {}", message); }
public Result build(final DockerClient dockerClient, String pathUri, ReadOnlyImage readOnlyImage) { String repository = readOnlyImage.getRepository(); String imageId; String errMsg = "build image failed."; try { imageId = dockerClient.build(Paths.get(pathUri), repository); return imageId == null ? new Result().fail(errMsg) : new Result().success(imageId); } catch (DockerException e) { errMsg = e.getMessage(); logger.error("build image exception.", e); } catch (InterruptedException e) { errMsg = e.getMessage(); logger.error("build image exception.", e); } catch (IOException e) { errMsg = e.getMessage(); logger.error("build image exception.", e); } catch (Exception e) { errMsg = e.getMessage(); logger.error("build image exception.", e); } return new Result().fail(errMsg); }
@Override public void process(InputStream inputStream) throws IOException { StringWriter writer = new StringWriter(); IOUtils.copy(inputStream, writer); String cc = writer.toString(); try { docker.startContainer(cc); } catch (DockerException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } getLogger().info("Successfully started container: " + cc); } });
@Override public void progress(ProgressMessage message) throws DockerException { if (message.error() != null) { throw new DockerException(message.toString()); } log.info("load: {}", message); }
public Result remove(final DockerClient dockerClient, ReadOnlyImage readOnlyImage) { String repository = readOnlyImage.getRepository(); String errMsg; try { List<RemovedImage> removedImageList = dockerClient.removeImage(repository); for (RemovedImage image : removedImageList) { logger.info("successfully removed image {}", image.imageId()); } return new Result().success(); } catch (DockerException e) { errMsg = e.getMessage(); logger.error("remove image exception.", e); } catch (InterruptedException e) { errMsg = e.getMessage(); logger.error("remove image exception.", e); } catch (Exception e) { errMsg = e.getMessage(); logger.error("remove image exception.", e); } return new Result().fail(errMsg); }
@Override public ModuleExposedData exposeData() { try { ModuleExposedData data = new ModuleExposedData(); data.addText(client.listContainers().size() + " containers running."); return data; } catch (DockerException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } return null; }
private String authHeader(final RegistryAuth registryAuth) throws DockerException { // the docker daemon requires that the X-Registry-Auth header is specified // with a non-empty string even if your registry doesn't use authentication if (registryAuth == null) { return "null"; } try { return Base64.encodeBase64String(ObjectMapperProvider .objectMapper() .writeValueAsBytes(registryAuth)); } catch (JsonProcessingException ex) { throw new DockerException("Could not encode X-Registry-Auth header", ex); } }
@Override public RegistryAuth authFor(final String imageName) throws DockerException { final String[] imageParts = imageName.split("/", 2); if (imageParts.length < 2 || !GCR_REGISTRIES.contains(imageParts[0])) { // not an image on GCR return null; } final AccessToken accessToken; try { accessToken = getAccessToken(); } catch (IOException e) { throw new DockerException(e); } return authForAccessToken(accessToken); }
@Override public void leaveSwarm(final boolean force) throws DockerException, InterruptedException { assertApiVersionIsAbove("1.24"); try { final WebTarget resource = resource().path("swarm").path("leave").queryParam("force", force); request(POST, String.class, resource, resource.request(APPLICATION_JSON_TYPE)); } catch (DockerRequestException e) { switch (e.status()) { case 500: throw new DockerException("server error", e); case 503: throw new DockerException("node is not part of a swarm", e); default: throw e; } } }
public ProgressMessage nextMessage(final String method, final URI uri) throws DockerException { try { return iterator.nextValue(); } catch (SocketTimeoutException e) { throw new DockerTimeoutException(method, uri, e); } catch (IOException e) { throw new DockerException(e); } }
@Override public void joinSwarm(final SwarmJoin swarmJoin) throws DockerException, InterruptedException { assertApiVersionIsAbove("1.24"); try { final WebTarget resource = resource().path("swarm").path("join"); request(POST, String.class, resource, resource.request(APPLICATION_JSON_TYPE), Entity.json(swarmJoin)); } catch (DockerRequestException e) { switch (e.status()) { case 400: throw new DockerException("bad parameter", e); case 500: throw new DockerException("server error", e); case 503: throw new DockerException("node is already part of a swarm", e); default: throw e; } } }
public boolean hasNextMessage(final String method, final URI uri) throws DockerException { try { return iterator.hasNextValue(); } catch (SocketTimeoutException e) { throw new DockerTimeoutException(method, uri, e); } catch (IOException e) { throw new DockerException(e); } }