diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2017-11-03 16:54:28 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2017-11-03 16:56:43 +0100 |
commit | fe373794642f662d0f11d2f6dab5fc3c8767a9d3 (patch) | |
tree | f8672041356e33c001869810c35d0cd7e26e6ad1 /docker-api/src/main | |
parent | 757e0504cdf29256aeb8c7f1f5b245ab29f6af0d (diff) |
Take in ContainerResources in createContainerCommand()
Diffstat (limited to 'docker-api/src/main')
3 files changed, 11 insertions, 22 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java index 8e8a650d906..485de99082b 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/CreateContainerCommandImpl.java @@ -25,6 +25,7 @@ import java.util.stream.IntStream; class CreateContainerCommandImpl implements Docker.CreateContainerCommand { private final DockerClient docker; private final DockerImage dockerImage; + private final ContainerResources containerResources; private final ContainerName containerName; private final String hostName; private final Map<String, String> labels = new HashMap<>(); @@ -32,8 +33,6 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { private final List<String> volumeBindSpecs = new ArrayList<>(); private final List<Ulimit> ulimits = new ArrayList<>(); - private Optional<Long> memoryInB = Optional.empty(); - private Optional<Integer> cpuShares = Optional.empty(); private Optional<String> networkMode = Optional.empty(); private Optional<String> ipv4Address = Optional.empty(); private Optional<String> ipv6Address = Optional.empty(); @@ -43,10 +42,12 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { CreateContainerCommandImpl(DockerClient docker, DockerImage dockerImage, + ContainerResources containerResources, ContainerName containerName, String hostName) { this.docker = docker; this.dockerImage = dockerImage; + this.containerResources = containerResources; this.containerName = containerName; this.hostName = hostName; } @@ -103,18 +104,6 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { } @Override - public Docker.CreateContainerCommand withMemoryInMb(long megaBytes) { - memoryInB = Optional.of(megaBytes * 1024 * 1024); - return this; - } - - @Override - public Docker.CreateContainerCommand withCpuShares(int shares) { - cpuShares = Optional.of(shares); - return this; - } - - @Override public Docker.CreateContainerCommand withNetworkMode(String mode) { networkMode = Optional.of(mode); return this; @@ -144,6 +133,8 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { final CreateContainerCmd containerCmd = docker .createContainerCmd(dockerImage.asString()) + .withCpuShares(containerResources.cpuShares) + .withMemory(containerResources.memoryBytes) .withName(containerName.asString()) .withHostName(hostName) .withLabels(labels) @@ -157,8 +148,6 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { .filter(mode -> ! mode.toLowerCase().equals("host")) .ifPresent(mode -> containerCmd.withMacAddress(generateMACAddress(hostName, ipv4Address, ipv6Address))); - memoryInB.ifPresent(containerCmd::withMemory); - cpuShares.ifPresent(containerCmd::withCpuShares); networkMode.ifPresent(containerCmd::withNetworkMode); ipv4Address.ifPresent(containerCmd::withIpv4Address); ipv6Address.ifPresent(containerCmd::withIpv6Address); @@ -191,14 +180,14 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { return "--name " + containerName.asString() + " " + "--hostname " + hostName + " " + + "--cpu-shares " + containerResources.cpuShares + " " + + "--memory " + containerResources.memoryBytes + " " + toRepeatedOption("--label", labelList) + toRepeatedOption("--ulimit", ulimitList) + toRepeatedOption("--env", environmentAssignments) + toRepeatedOption("--volume", volumeBindSpecs) + toRepeatedOption("--cap-add", addCapabilitiesList) + toRepeatedOption("--cap-drop", dropCapabilitiesList) - + toOptionalOption("--memory", memoryInB) - + toOptionalOption("--cpu-shares", cpuShares) + toOptionalOption("--net", networkMode) + toOptionalOption("--ip", ipv4Address) + toOptionalOption("--ip6", ipv6Address) diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java index 865908bdc8e..2bf3f0f8d84 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java @@ -16,8 +16,6 @@ public interface Docker { CreateContainerCommand withLabel(String name, String value); CreateContainerCommand withEnvironment(String name, String value); CreateContainerCommand withVolume(String path, String volumePath); - CreateContainerCommand withMemoryInMb(long megaBytes); - CreateContainerCommand withCpuShares(int shares); CreateContainerCommand withNetworkMode(String mode); CreateContainerCommand withIpAddress(InetAddress address); CreateContainerCommand withUlimit(String name, int softLimit, int hardLimit); @@ -31,6 +29,7 @@ public interface Docker { CreateContainerCommand createContainerCommand( DockerImage dockerImage, + ContainerResources containerResources, ContainerName containerName, String hostName); diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java index 9f278139a0d..9de2cae604f 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java @@ -202,8 +202,9 @@ public class DockerImpl implements Docker { } @Override - public CreateContainerCommand createContainerCommand(DockerImage image, ContainerName name, String hostName) { - return new CreateContainerCommandImpl(dockerClient, image, name, hostName); + public CreateContainerCommand createContainerCommand(DockerImage image, ContainerResources containerResources, + ContainerName name, String hostName) { + return new CreateContainerCommandImpl(dockerClient, image, containerResources, name, hostName); } @Override |