org.testcontainers.dockerclient.AuditLoggingDockerClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of testcontainers Show documentation
Show all versions of testcontainers Show documentation
Isolated container management for Java code testing
// Generated by delombok at Sun Aug 05 21:14:34 UTC 2018
package org.testcontainers.dockerclient;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.*;
import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Proxy;
import java.util.function.BiConsumer;
import static org.testcontainers.utility.AuditLogger.doLog;
/**
* Wrapper for {@link DockerClient} to facilitate 'audit logging' of potentially destruction actions using
* {@link org.testcontainers.utility.AuditLogger}.
*/
@SuppressWarnings("unchecked")
public class AuditLoggingDockerClient implements DockerClient {
@java.lang.SuppressWarnings("all")
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AuditLoggingDockerClient.class);
private final DockerClient wrappedClient;
public AuditLoggingDockerClient(DockerClient wrappedClient) {
this.wrappedClient = wrappedClient;
}
@Override
public CreateContainerCmd createContainerCmd(@NotNull String image) {
return wrappedCommand(CreateContainerCmd.class, wrappedClient.createContainerCmd(image), (cmd, res) -> doLog("CREATE", image, res.getId(), cmd), (cmd, e) -> doLog("CREATE", image, null, cmd, e));
}
@Override
public StartContainerCmd startContainerCmd(@NotNull String containerId) {
return wrappedCommand(StartContainerCmd.class, wrappedClient.startContainerCmd(containerId), (cmd, res) -> doLog("START", null, containerId, cmd), (cmd, e) -> doLog("START", null, containerId, cmd, e));
}
@Override
public RemoveContainerCmd removeContainerCmd(@NotNull String containerId) {
return wrappedCommand(RemoveContainerCmd.class, wrappedClient.removeContainerCmd(containerId), (cmd, res) -> doLog("REMOVE", null, containerId, cmd), (cmd, e) -> doLog("REMOVE", null, containerId, cmd, e));
}
@Override
public StopContainerCmd stopContainerCmd(@NotNull String containerId) {
return wrappedCommand(StopContainerCmd.class, wrappedClient.stopContainerCmd(containerId), (cmd, res) -> doLog("STOP", null, containerId, cmd), (cmd, e) -> doLog("STOP", null, containerId, cmd, e));
}
@Override
public KillContainerCmd killContainerCmd(@NotNull String containerId) {
return wrappedCommand(KillContainerCmd.class, wrappedClient.killContainerCmd(containerId), (cmd, res) -> doLog("KILL", null, containerId, cmd), (cmd, e) -> doLog("KILL", null, containerId, cmd, e));
}
@Override
public CreateNetworkCmd createNetworkCmd() {
return wrappedCommand(CreateNetworkCmd.class, wrappedClient.createNetworkCmd(), (cmd, res) -> doLog("CREATE_NETWORK", null, null, cmd), (cmd, e) -> doLog("CREATE_NETWORK", null, null, cmd, e));
}
@Override
public RemoveNetworkCmd removeNetworkCmd(@NotNull String networkId) {
return wrappedCommand(RemoveNetworkCmd.class, wrappedClient.removeNetworkCmd(networkId), (cmd, res) -> doLog("REMOVE_NETWORK", null, null, cmd), (cmd, e) -> doLog("REMOVE_NETWORK", null, null, cmd, e));
}
private , R> T wrappedCommand(Class clazz, T cmd, BiConsumer successConsumer, BiConsumer failureConsumer) {
return (T) Proxy.newProxyInstance(clazz.getClassLoader(), new Class[] {clazz}, (proxy, method, args) -> {
if (method.getName().equals("exec")) {
try {
R r = (R) method.invoke(cmd, args);
successConsumer.accept(cmd, r);
return r;
} catch (Exception e) {
failureConsumer.accept(cmd, e);
throw e;
}
} else {
return method.invoke(cmd, args);
}
});
}
@SuppressWarnings("unused")
private interface InterceptedMethods {
CreateContainerCmd createContainerCmd(String image);
StartContainerCmd startContainerCmd(String containerId);
RemoveContainerCmd removeContainerCmd(String containerId);
StopContainerCmd stopContainerCmd(String containerId);
KillContainerCmd killContainerCmd(String containerId);
CreateNetworkCmd createNetworkCmd();
RemoveNetworkCmd removeNetworkCmd(String networkId);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.model.AuthConfig authConfig() throws com.github.dockerjava.api.exception.DockerException {
return this.wrappedClient.authConfig();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.AuthCmd authCmd() {
return this.wrappedClient.authCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InfoCmd infoCmd() {
return this.wrappedClient.infoCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.PingCmd pingCmd() {
return this.wrappedClient.pingCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.VersionCmd versionCmd() {
return this.wrappedClient.versionCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.PullImageCmd pullImageCmd(final java.lang.String arg0) {
return this.wrappedClient.pullImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.PushImageCmd pushImageCmd(final java.lang.String arg0) {
return this.wrappedClient.pushImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.PushImageCmd pushImageCmd(final com.github.dockerjava.api.model.Identifier arg0) {
return this.wrappedClient.pushImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.CreateImageCmd createImageCmd(final java.lang.String arg0, final java.io.InputStream arg1) {
return this.wrappedClient.createImageCmd(arg0, arg1);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.LoadImageCmd loadImageCmd(final java.io.InputStream arg0) {
return this.wrappedClient.loadImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.SearchImagesCmd searchImagesCmd(final java.lang.String arg0) {
return this.wrappedClient.searchImagesCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.RemoveImageCmd removeImageCmd(final java.lang.String arg0) {
return this.wrappedClient.removeImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ListImagesCmd listImagesCmd() {
return this.wrappedClient.listImagesCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InspectImageCmd inspectImageCmd(final java.lang.String arg0) {
return this.wrappedClient.inspectImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.SaveImageCmd saveImageCmd(final java.lang.String arg0) {
return this.wrappedClient.saveImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ListContainersCmd listContainersCmd() {
return this.wrappedClient.listContainersCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ExecCreateCmd execCreateCmd(final java.lang.String arg0) {
return this.wrappedClient.execCreateCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InspectContainerCmd inspectContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.inspectContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.WaitContainerCmd waitContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.waitContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.AttachContainerCmd attachContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.attachContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ExecStartCmd execStartCmd(final java.lang.String arg0) {
return this.wrappedClient.execStartCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InspectExecCmd inspectExecCmd(final java.lang.String arg0) {
return this.wrappedClient.inspectExecCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.LogContainerCmd logContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.logContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.CopyArchiveFromContainerCmd copyArchiveFromContainerCmd(final java.lang.String arg0, final java.lang.String arg1) {
return this.wrappedClient.copyArchiveFromContainerCmd(arg0, arg1);
}
@java.lang.Deprecated
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.CopyFileFromContainerCmd copyFileFromContainerCmd(final java.lang.String arg0, final java.lang.String arg1) {
return this.wrappedClient.copyFileFromContainerCmd(arg0, arg1);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.CopyArchiveToContainerCmd copyArchiveToContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.copyArchiveToContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ContainerDiffCmd containerDiffCmd(final java.lang.String arg0) {
return this.wrappedClient.containerDiffCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.UpdateContainerCmd updateContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.updateContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.RenameContainerCmd renameContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.renameContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.RestartContainerCmd restartContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.restartContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.CommitCmd commitCmd(final java.lang.String arg0) {
return this.wrappedClient.commitCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.BuildImageCmd buildImageCmd() {
return this.wrappedClient.buildImageCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.BuildImageCmd buildImageCmd(final java.io.File arg0) {
return this.wrappedClient.buildImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.BuildImageCmd buildImageCmd(final java.io.InputStream arg0) {
return this.wrappedClient.buildImageCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.TopContainerCmd topContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.topContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.TagImageCmd tagImageCmd(final java.lang.String arg0, final java.lang.String arg1, final java.lang.String arg2) {
return this.wrappedClient.tagImageCmd(arg0, arg1, arg2);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.PauseContainerCmd pauseContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.pauseContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.UnpauseContainerCmd unpauseContainerCmd(final java.lang.String arg0) {
return this.wrappedClient.unpauseContainerCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.EventsCmd eventsCmd() {
return this.wrappedClient.eventsCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.StatsCmd statsCmd(final java.lang.String arg0) {
return this.wrappedClient.statsCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.CreateVolumeCmd createVolumeCmd() {
return this.wrappedClient.createVolumeCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InspectVolumeCmd inspectVolumeCmd(final java.lang.String arg0) {
return this.wrappedClient.inspectVolumeCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.RemoveVolumeCmd removeVolumeCmd(final java.lang.String arg0) {
return this.wrappedClient.removeVolumeCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ListVolumesCmd listVolumesCmd() {
return this.wrappedClient.listVolumesCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ListNetworksCmd listNetworksCmd() {
return this.wrappedClient.listNetworksCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InspectNetworkCmd inspectNetworkCmd() {
return this.wrappedClient.inspectNetworkCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ConnectToNetworkCmd connectToNetworkCmd() {
return this.wrappedClient.connectToNetworkCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.DisconnectFromNetworkCmd disconnectFromNetworkCmd() {
return this.wrappedClient.disconnectFromNetworkCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InitializeSwarmCmd initializeSwarmCmd(final com.github.dockerjava.api.model.SwarmSpec arg0) {
return this.wrappedClient.initializeSwarmCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InspectSwarmCmd inspectSwarmCmd() {
return this.wrappedClient.inspectSwarmCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.JoinSwarmCmd joinSwarmCmd() {
return this.wrappedClient.joinSwarmCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.LeaveSwarmCmd leaveSwarmCmd() {
return this.wrappedClient.leaveSwarmCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.UpdateSwarmCmd updateSwarmCmd(final com.github.dockerjava.api.model.SwarmSpec arg0) {
return this.wrappedClient.updateSwarmCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.UpdateSwarmNodeCmd updateSwarmNodeCmd() {
return this.wrappedClient.updateSwarmNodeCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ListSwarmNodesCmd listSwarmNodesCmd() {
return this.wrappedClient.listSwarmNodesCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ListServicesCmd listServicesCmd() {
return this.wrappedClient.listServicesCmd();
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.CreateServiceCmd createServiceCmd(final com.github.dockerjava.api.model.ServiceSpec arg0) {
return this.wrappedClient.createServiceCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.InspectServiceCmd inspectServiceCmd(final java.lang.String arg0) {
return this.wrappedClient.inspectServiceCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.UpdateServiceCmd updateServiceCmd(final java.lang.String arg0, final com.github.dockerjava.api.model.ServiceSpec arg1) {
return this.wrappedClient.updateServiceCmd(arg0, arg1);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.RemoveServiceCmd removeServiceCmd(final java.lang.String arg0) {
return this.wrappedClient.removeServiceCmd(arg0);
}
@java.lang.SuppressWarnings("all")
public com.github.dockerjava.api.command.ListTasksCmd listTasksCmd() {
return this.wrappedClient.listTasksCmd();
}
@java.lang.SuppressWarnings("all")
public void close() throws java.io.IOException {
this.wrappedClient.close();
}
}