From 8b1d592143d088dd2202031fc3c579d1096eee81 Mon Sep 17 00:00:00 2001
From: Georg Pfuetzenreuter
Date: Fri, 6 May 2022 10:21:15 +0200
Subject: Init Docker API

Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
---
 .../java/net/libertacasa/pubsh/web/Docker.java     | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 src/main/java/net/libertacasa/pubsh/web/Docker.java

(limited to 'src/main')

diff --git a/src/main/java/net/libertacasa/pubsh/web/Docker.java b/src/main/java/net/libertacasa/pubsh/web/Docker.java
new file mode 100644
index 0000000..0c407f0
--- /dev/null
+++ b/src/main/java/net/libertacasa/pubsh/web/Docker.java
@@ -0,0 +1,51 @@
+package net.libertacasa.pubsh.web;
+
+import java.time.Duration;
+import java.util.List;
+import java.util.stream.Collectors;
+import com.github.dockerjava.api.DockerClient;
+import com.github.dockerjava.api.model.Image;
+import com.github.dockerjava.core.DefaultDockerClientConfig;
+import com.github.dockerjava.core.DockerClientConfig;
+import com.github.dockerjava.core.DockerClientImpl;
+import com.github.dockerjava.httpclient5.ApacheDockerHttpClient;
+import com.github.dockerjava.transport.DockerHttpClient;
+
+public class Docker {
+	
+	static DockerClientConfig DockerConfig = DefaultDockerClientConfig.createDefaultConfigBuilder()
+		    .withDockerHost("tcp://sweetsuse:2375")
+		    .withDockerTlsVerify(false)
+		    .build();	
+	
+	static DockerHttpClient httpClient = new ApacheDockerHttpClient.Builder()
+		    .dockerHost(DockerConfig.getDockerHost())
+		    .sslConfig(DockerConfig.getSSLConfig())
+		    .maxConnections(100)
+		    .connectionTimeout(Duration.ofSeconds(30))
+		    .responseTimeout(Duration.ofSeconds(45))
+		    .build();
+	
+	static DockerClient dockerClient = DockerClientImpl.getInstance(DockerConfig, httpClient);
+	
+	public static List<String> getImageChecksums() {
+		List<Image> imageQuery;
+		List<String> imageList;
+		imageQuery = dockerClient.listImagesCmd().exec();
+		imageList = imageQuery.stream().map(Image::getId).collect(Collectors.toList());
+		return imageList;
+	}
+	
+	public static List<Image> getImages() {
+		List<Image> imageQuery;
+		imageQuery = dockerClient.listImagesCmd().exec();
+		return imageQuery;
+	}	
+	
+	public static List<com.github.dockerjava.api.model.Container> getContainers() {
+		List<com.github.dockerjava.api.model.Container> containerQuery;
+		containerQuery = dockerClient.listContainersCmd().withShowAll(true).exec();
+		return containerQuery;
+	}
+	
+}
-- 
cgit v1.2.3