Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/main/java/com/github/dockerjava/api/DockerClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,29 @@
import com.github.dockerjava.api.command.AuthCmd;
import com.github.dockerjava.api.command.BuildImageCmd;
import com.github.dockerjava.api.command.CommitCmd;
import com.github.dockerjava.api.command.ConnectToNetworkCmd;
import com.github.dockerjava.api.command.ContainerDiffCmd;
import com.github.dockerjava.api.command.CopyArchiveFromContainerCmd;
import com.github.dockerjava.api.command.CopyArchiveToContainerCmd;
import com.github.dockerjava.api.command.CopyFileFromContainerCmd;
import com.github.dockerjava.api.command.CreateContainerCmd;
import com.github.dockerjava.api.command.CreateImageCmd;
import com.github.dockerjava.api.command.CreateNetworkCmd;
import com.github.dockerjava.api.command.CreateVolumeCmd;
import com.github.dockerjava.api.command.DisconnectFromNetworkCmd;
import com.github.dockerjava.api.command.EventsCmd;
import com.github.dockerjava.api.command.ExecCreateCmd;
import com.github.dockerjava.api.command.ExecStartCmd;
import com.github.dockerjava.api.command.InfoCmd;
import com.github.dockerjava.api.command.InspectContainerCmd;
import com.github.dockerjava.api.command.InspectExecCmd;
import com.github.dockerjava.api.command.InspectImageCmd;
import com.github.dockerjava.api.command.InspectNetworkCmd;
import com.github.dockerjava.api.command.InspectVolumeCmd;
import com.github.dockerjava.api.command.KillContainerCmd;
import com.github.dockerjava.api.command.ListContainersCmd;
import com.github.dockerjava.api.command.ListImagesCmd;
import com.github.dockerjava.api.command.ListNetworksCmd;
import com.github.dockerjava.api.command.ListVolumesCmd;
import com.github.dockerjava.api.command.LogContainerCmd;
import com.github.dockerjava.api.command.PauseContainerCmd;
Expand All @@ -37,6 +42,7 @@
import com.github.dockerjava.api.command.PushImageCmd;
import com.github.dockerjava.api.command.RemoveContainerCmd;
import com.github.dockerjava.api.command.RemoveImageCmd;
import com.github.dockerjava.api.command.RemoveNetworkCmd;
import com.github.dockerjava.api.command.RemoveVolumeCmd;
import com.github.dockerjava.api.command.RestartContainerCmd;
import com.github.dockerjava.api.command.SaveImageCmd;
Expand Down Expand Up @@ -200,6 +206,18 @@ public interface DockerClient extends Closeable {

public ListVolumesCmd listVolumesCmd();

public ListNetworksCmd listNetworksCmd();

public InspectNetworkCmd inspectNetworkCmd();

public CreateNetworkCmd createNetworkCmd();

public RemoveNetworkCmd removeNetworkCmd(@Nonnull String networkId);

public ConnectToNetworkCmd connectToNetworkCmd();

public DisconnectFromNetworkCmd disconnectFromNetworkCmd();

@Override
public void close() throws IOException;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.github.dockerjava.api.command;

import com.github.dockerjava.core.RemoteApiVersion;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;

/**
* Connects a container to a network.
*
* @since {@link RemoteApiVersion#VERSION_1_21}
*/
public interface ConnectToNetworkCmd extends SyncDockerCmd<Void> {

@CheckForNull
public String getNetworkId();

@CheckForNull
public String getContainerId();

public ConnectToNetworkCmd withNetworkId(@Nonnull String networkId);

public ConnectToNetworkCmd withContainerId(@Nonnull String containerId);

public static interface Exec extends DockerCmdSyncExec<ConnectToNetworkCmd, Void> {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.github.dockerjava.api.command;

import java.util.Map;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;

import com.github.dockerjava.api.model.Network;
import com.github.dockerjava.api.model.Network.Ipam;
import com.github.dockerjava.core.RemoteApiVersion;

/**
* Create a network.
*
* @since {@link RemoteApiVersion#VERSION_1_21}
*/
public interface CreateNetworkCmd extends SyncDockerCmd<CreateNetworkResponse> {

@CheckForNull
public String getName();

@CheckForNull
public String getDriver();

@CheckForNull
public Network.Ipam getIpam();

/** The new network's name. Required. */
public CreateNetworkCmd withName(@Nonnull String name);

/** Optional custom IP scheme for the network. */
public CreateNetworkCmd withIpamConfig(Ipam.Config config);

/** Name of the network driver to use. Defaults to <code>bridge</code>. */
public CreateNetworkCmd withDriver(String driver);

/** Driver specific options */
public CreateNetworkCmd withOptions(Map<String, String> options);

public static interface Exec extends DockerCmdSyncExec<CreateNetworkCmd, CreateNetworkResponse> {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.github.dockerjava.api.command;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.commons.lang.builder.ToStringBuilder;

@JsonIgnoreProperties(ignoreUnknown = true)
public class CreateNetworkResponse {

@JsonProperty("Id")
private String id;

@JsonProperty("Warnings")
private String[] warnings;

public String getId() {
return id;
}

public String[] getWarnings() {
return warnings;
}

public void setId(String id) {
this.id = id;
}

public void setWarnings(String[] warnings) {
this.warnings = warnings;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.github.dockerjava.api.command;

import com.github.dockerjava.core.RemoteApiVersion;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;

/**
* Disconnects a container from a network.
*
* @since {@link RemoteApiVersion#VERSION_1_21}
*/
public interface DisconnectFromNetworkCmd extends SyncDockerCmd<Void> {

@CheckForNull
public String getNetworkId();

@CheckForNull
public String getContainerId();

public DisconnectFromNetworkCmd withNetworkId(@Nonnull String networkId);

public DisconnectFromNetworkCmd withContainerId(@Nonnull String containerId);

public static interface Exec extends DockerCmdSyncExec<DisconnectFromNetworkCmd, Void> {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,18 @@ public interface DockerCmdExecFactory extends Closeable {

public ListVolumesCmd.Exec createListVolumesCmdExec();

public ListNetworksCmd.Exec createListNetworksCmdExec();

public InspectNetworkCmd.Exec createInspectNetworkCmdExec();

public CreateNetworkCmd.Exec createCreateNetworkCmdExec();

public RemoveNetworkCmd.Exec createRemoveNetworkCmdExec();

public ConnectToNetworkCmd.Exec createConnectToNetworkCmdExec();

public DisconnectFromNetworkCmd.Exec createDisconnectFromNetworkCmdExec();

@Override
public void close() throws IOException;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.github.dockerjava.api.command;

import java.util.List;
import java.util.Map;

import javax.annotation.CheckForNull;

Expand All @@ -14,7 +13,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.github.dockerjava.api.model.ContainerConfig;
import com.github.dockerjava.api.model.HostConfig;
import com.github.dockerjava.api.model.Ports;
import com.github.dockerjava.api.model.NetworkSettings;
import com.github.dockerjava.api.model.Volume;
import com.github.dockerjava.api.model.VolumeBind;
import com.github.dockerjava.api.model.VolumeBinds;
Expand Down Expand Up @@ -203,56 +202,7 @@ public String toString() {
return ToStringBuilder.reflectionToString(this);
}

@JsonIgnoreProperties(ignoreUnknown = true)
public class NetworkSettings {

@JsonProperty("IPAddress")
private String ipAddress;

@JsonProperty("IPPrefixLen")
private Integer ipPrefixLen;

@JsonProperty("Gateway")
private String gateway;

@JsonProperty("Bridge")
private String bridge;

@JsonProperty("PortMapping")
private Map<String, Map<String, String>> portMapping;

@JsonProperty("Ports")
private Ports ports;

public String getIpAddress() {
return ipAddress;
}

public Integer getIpPrefixLen() {
return ipPrefixLen;
}

public String getGateway() {
return gateway;
}

public String getBridge() {
return bridge;
}

public Map<String, Map<String, String>> getPortMapping() {
return portMapping;
}

public Ports getPorts() {
return ports;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

@JsonIgnoreProperties(ignoreUnknown = true)
public class ContainerState {
Expand Down Expand Up @@ -514,7 +464,5 @@ public String getMode() {
public Boolean getRW() {
return rw;
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.github.dockerjava.api.model.NetworkSettings;
import com.github.dockerjava.core.RemoteApiVersion;

@JsonIgnoreProperties(ignoreUnknown = true)
public class InspectExecResponse {
Expand All @@ -27,6 +29,12 @@ public class InspectExecResponse {
@JsonProperty("ExitCode")
private Integer exitCode;

@JsonProperty("ProcessConfig")
private ProcessConfig processConfig;

@JsonProperty("Container")
private Container container;

public String getId() {
return id;
}
Expand All @@ -51,13 +59,22 @@ public Integer getExitCode() {
return exitCode;
}

public ProcessConfig getProcessConfig() {
return processConfig;
}

public Container getContainer() {
return container;
}

@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}

@JsonIgnoreProperties(ignoreUnknown = true)
public class ProcessConfig {

@JsonProperty("arguments")
private List<String> arguments;

Expand Down Expand Up @@ -98,4 +115,18 @@ public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

@JsonIgnoreProperties(ignoreUnknown = true)
public class Container {

@JsonProperty("NetworkSettings")
private NetworkSettings networkSettings;

/**
* @since {@link RemoteApiVersion#VERSION_1_21}
*/
public NetworkSettings getNetworkSettings() {
return networkSettings;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.github.dockerjava.api.command;

import com.github.dockerjava.api.exception.NotFoundException;
import com.github.dockerjava.api.model.Network;
import com.github.dockerjava.core.RemoteApiVersion;

import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;

/**
* Inspect a network.
*
* @since {@link RemoteApiVersion#VERSION_1_21}
*/
public interface InspectNetworkCmd extends SyncDockerCmd<Network> {

@CheckForNull
public String getNetworkId();

public InspectNetworkCmd withNetworkId(@Nonnull String networkId);

/**
* @throws NotFoundException
* No such network
*/
@Override
public Network exec() throws NotFoundException;

public static interface Exec extends DockerCmdSyncExec<InspectNetworkCmd, Network> {
}
}
Loading