From 973c61a9a36d4025a22da53c9ed7efee5f0bfb17 Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Tue, 18 Sep 2018 21:28:35 +0200 Subject: Add getters to ContainerResources --- .../yahoo/vespa/hosted/dockerapi/ContainerResources.java | 12 ++++++++++-- .../hosted/dockerapi/CreateContainerCommandImpl.java | 15 +++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) (limited to 'docker-api/src') diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerResources.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerResources.java index 4c538d6a194..346223d0e7e 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerResources.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerResources.java @@ -7,8 +7,8 @@ package com.yahoo.vespa.hosted.dockerapi; public class ContainerResources { public static final ContainerResources UNLIMITED = ContainerResources.from(0, 0); - public final int cpuShares; - public final long memoryBytes; + private final int cpuShares; + private final long memoryBytes; ContainerResources(int cpuShares, long memoryBytes) { this.cpuShares = cpuShares; @@ -21,6 +21,14 @@ public class ContainerResources { (long) ((1L << 30) * memoryGb)); } + public int cpuShares() { + return cpuShares; + } + + public long memoryBytes() { + return memoryBytes; + } + @Override public boolean equals(Object o) { if (this == o) return true; 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 d95f7b7b8e1..213e6b5b8b6 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 @@ -24,6 +24,7 @@ import java.util.stream.IntStream; import java.util.stream.Stream; class CreateContainerCommandImpl implements Docker.CreateContainerCommand { + private final DockerClient docker; private final DockerImage dockerImage; private final ContainerResources containerResources; @@ -148,8 +149,8 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { final CreateContainerCmd containerCmd = docker .createContainerCmd(dockerImage.asString()) - .withCpuShares(containerResources.cpuShares) - .withMemory(containerResources.memoryBytes) + .withCpuShares(containerResources.cpuShares()) + .withMemory(containerResources.memoryBytes()) .withName(containerName.asString()) .withHostName(hostName) .withLabels(labels) @@ -202,11 +203,11 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { .skip(1) .collect(Collectors.joining(" ")); - return String.join(" ", + return Stream.of( "--name " + containerName.asString(), "--hostname " + hostName, - "--cpu-shares " + containerResources.cpuShares, - "--memory " + containerResources.memoryBytes, + "--cpu-shares " + containerResources.cpuShares(), + "--memory " + containerResources.memoryBytes(), toRepeatedOption("--label", labelList), toRepeatedOption("--ulimit", ulimitList), toRepeatedOption("--env", environmentAssignments), @@ -219,7 +220,9 @@ class CreateContainerCommandImpl implements Docker.CreateContainerCommand { toOptionalOption("--entrypoint", entrypointExecuteable), toFlagOption("--privileged", privileged), dockerImage.asString(), - entrypointArgs); + entrypointArgs) + .filter(s -> !s.isEmpty()) + .collect(Collectors.joining(" ")); } /** -- cgit v1.2.3