Skip to content

Commit

Permalink
Reorganize some code, preparing further migration to the new low leve…
Browse files Browse the repository at this point in the history
…l client
  • Loading branch information
gesellix committed Dec 18, 2021
1 parent 058dfc4 commit c567653
Show file tree
Hide file tree
Showing 12 changed files with 59 additions and 63 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
package de.gesellix.docker.client

import de.gesellix.docker.engine.EngineResponse

class DockerClientException extends RuntimeException {

def detail
EngineResponse detail

DockerClientException(Throwable cause) {
this(cause, null)
}

DockerClientException(Throwable cause, detail = [:]) {
DockerClientException(Throwable cause, EngineResponse detail) {
super(cause)
this.detail = detail
}

@Override
String toString() {
if (detail instanceof String) {
return "DockerClientException{detail=$detail} ${super.toString()}"
}
else {
return "DockerClientException{...} ${super.toString()}"
}
return "DockerClientException{...} ${super.toString()}"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ import static java.net.Proxy.NO_PROXY
@Slf4j
class DockerClientImpl implements DockerClient {

DockerResponseHandler responseHandler
RepositoryTagParser repositoryTagParser
QueryUtil queryUtil

Expand Down Expand Up @@ -110,15 +109,14 @@ class DockerClientImpl implements DockerClient {
this.httpClient = new OkDockerClient(dockerClientConfig, proxy)
log.info("using docker at '${env.dockerHost}'")

this.responseHandler = new DockerResponseHandler()
this.repositoryTagParser = new RepositoryTagParser()
this.queryUtil = new QueryUtil()

this.manageSystem = new ManageSystemClient(engineApiClient)
this.manageAuthentication = new ManageAuthenticationClient(engineApiClient, authConfigReader)
this.manageImage = new ManageImageClient(engineApiClient, manageAuthentication)
this.manageDistribution = new ManageDistributionService(engineApiClient)
this.manageContainer = new ManageContainerClient(engineApiClient, httpClient, responseHandler)
this.manageContainer = new ManageContainerClient(engineApiClient, httpClient)
this.manageVolume = new ManageVolumeClient(engineApiClient)
this.manageNetwork = new ManageNetworkClient(engineApiClient)
this.manageSwarm = new ManageSwarmClient(engineApiClient)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.gesellix.docker.client
package de.gesellix.docker.client.container

import de.gesellix.docker.client.DockerClientException
import de.gesellix.docker.engine.EngineResponse
import groovy.util.logging.Slf4j

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package de.gesellix.docker.client.container

import de.gesellix.docker.client.DockerResponseHandler
import de.gesellix.docker.client.EngineResponseContent
import de.gesellix.docker.client.repository.RepositoryTagParser
import de.gesellix.docker.engine.AttachConfig
Expand Down Expand Up @@ -43,10 +42,10 @@ class ManageContainerClient implements ManageContainer {
private ArchiveUtil archiveUtil
private RepositoryTagParser repositoryTagParser

ManageContainerClient(EngineApiClient client, EngineClient engineClient, DockerResponseHandler responseHandler) {
ManageContainerClient(EngineApiClient client, EngineClient engineClient) {
this.client = client
this.engineClient = engineClient
this.responseHandler = responseHandler
this.responseHandler = new DockerResponseHandler()
this.repositoryTagParser = new RepositoryTagParser()
this.queryUtil = new QueryUtil()
this.archiveUtil = new ArchiveUtil()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package de.gesellix.docker.client.stack

import de.gesellix.docker.client.DockerClient
import de.gesellix.docker.client.EnvFileParser
import de.gesellix.docker.client.LocalDocker
import de.gesellix.docker.client.stack.types.StackConfig
import de.gesellix.docker.client.stack.types.StackSecret
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.gesellix.docker.client
package de.gesellix.docker.client.stack

class EnvFileParser {

Expand Down
39 changes: 39 additions & 0 deletions client/src/main/java/de/gesellix/docker/client/DockerClient.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package de.gesellix.docker.client;

import de.gesellix.docker.client.authentication.ManageAuthentication;
import de.gesellix.docker.client.checkpoint.ManageCheckpoint;
import de.gesellix.docker.client.config.ManageConfig;
import de.gesellix.docker.client.container.ManageContainer;
import de.gesellix.docker.client.distribution.ManageDistribution;
import de.gesellix.docker.client.image.ManageImage;
import de.gesellix.docker.client.network.ManageNetwork;
import de.gesellix.docker.client.node.ManageNode;
import de.gesellix.docker.client.plugin.ManagePlugin;
import de.gesellix.docker.client.secret.ManageSecret;
import de.gesellix.docker.client.service.ManageService;
import de.gesellix.docker.client.stack.ManageStack;
import de.gesellix.docker.client.swarm.ManageSwarm;
import de.gesellix.docker.client.system.ManageSystem;
import de.gesellix.docker.client.tasks.ManageTask;
import de.gesellix.docker.client.volume.ManageVolume;

public interface DockerClient
extends ManageAuthentication,
ManageCheckpoint,
ManageContainer,
ManageImage,
ManageDistribution,
ManageNetwork,
ManageNode,
ManagePlugin,
ManageSecret,
ManageConfig,
ManageService,
ManageStack,
ManageSwarm,
ManageSystem,
ManageTask,
ManageVolume {

String getSwarmMangerAddress();
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ class DockerClientImplSpec extends Specification {

def setup() {
dockerClient.httpClient = httpClient
dockerClient.responseHandler = Mock(DockerResponseHandler)

dockerClient.manageSystem = Mock(ManageSystem)
dockerClient.manageNode = Mock(ManageNode)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.gesellix.docker.client
package de.gesellix.docker.client.container

import de.gesellix.docker.client.DockerClientException
import de.gesellix.docker.engine.EngineResponse
import de.gesellix.docker.engine.EngineResponseStatus
import spock.lang.Specification
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package de.gesellix.docker.client.container

import de.gesellix.docker.client.DockerResponseHandler
import de.gesellix.docker.engine.EngineClient
import de.gesellix.docker.remote.api.ContainerConfig
import de.gesellix.docker.remote.api.ContainerCreateRequest
Expand Down Expand Up @@ -37,13 +36,11 @@ class ManageContainerClientTest extends Specification {
ManageContainerClient service
EngineApiClient client = Mock(EngineApiClient)
EngineClient httpClient = Mock(EngineClient)
DockerResponseHandler responseHandler = Mock(DockerResponseHandler)

def setup() {
service = Spy(ManageContainerClient, constructorArgs: [
client,
httpClient,
responseHandler])
httpClient])
}

def "export container"() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.gesellix.docker.client
package de.gesellix.docker.client.stack

import de.gesellix.docker.client.DockerClient
import de.gesellix.testutil.ResourceReader
import spock.lang.Specification

Expand Down

0 comments on commit c567653

Please sign in to comment.