diff options
Diffstat (limited to 'docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java')
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java new file mode 100644 index 00000000000..fcfad041b76 --- /dev/null +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/ContainerInfoImpl.java @@ -0,0 +1,33 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.dockerapi; + +import com.github.dockerjava.api.command.InspectContainerResponse; + +import java.util.Optional; + +class ContainerInfoImpl implements Docker.ContainerInfo { + + private final ContainerName containerName; + private final InspectContainerResponse inspectContainerResponse; + + ContainerInfoImpl(ContainerName containerName, InspectContainerResponse inspectContainerResponse) { + this.containerName = containerName; + this.inspectContainerResponse = inspectContainerResponse; + } + + @Override + public Optional<Integer> getPid() { + InspectContainerResponse.ContainerState state = inspectContainerResponse.getState(); + Integer containerPid = -1; + if (state.getRunning()) { + containerPid = state.getPid(); + if (containerPid == null) { + throw new RuntimeException("PID of running container " + containerName + " is null"); + } + + return Optional.of(containerPid); + } + + return Optional.empty(); + } +} |