summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2021-11-11 14:17:50 +0100
committerValerij Fredriksen <valerijf@yahooinc.com>2021-11-11 14:17:50 +0100
commita62dedb67dfd2edc8c5b6b3a70f605a4918d4313 (patch)
tree67b7641cb1beacfd4202e2373a636af07c1f7de0 /node-admin
parent57f72964d7e2ebb1a2b8168f3e07dae6ee6e8198 (diff)
Add createdAt to Container
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/Container.java5
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/PartialContainer.java14
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerOperationsTest.java3
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java3
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java1
6 files changed, 22 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/Container.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/Container.java
index f2f8ffb8d22..dd725a11364 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/Container.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/Container.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.hosted.node.admin.container;
import com.yahoo.config.provision.DockerImage;
+import java.time.Instant;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -19,10 +20,10 @@ public class Container extends PartialContainer {
private final int conmonPid;
private final List<Network> networks;
- public Container(ContainerId id, ContainerName name, State state, String imageId, DockerImage image,
+ public Container(ContainerId id, ContainerName name, Instant createdAt, State state, String imageId, DockerImage image,
Map<String, String> labels, int pid, int conmonPid, String hostname,
ContainerResources resources, List<Network> networks, boolean managed) {
- super(id, name, state, imageId, image, labels, pid, managed);
+ super(id, name, createdAt, state, imageId, image, labels, pid, managed);
this.hostname = Objects.requireNonNull(hostname);
this.resources = Objects.requireNonNull(resources);
this.conmonPid = conmonPid;
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/PartialContainer.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/PartialContainer.java
index d320ffd294c..22146767e01 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/PartialContainer.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/container/PartialContainer.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.hosted.node.admin.container;
import com.yahoo.config.provision.DockerImage;
+import java.time.Instant;
import java.util.Map;
import java.util.Objects;
@@ -15,6 +16,7 @@ public class PartialContainer {
private final ContainerId id;
private final ContainerName name;
+ private final Instant createdAt;
private final State state;
private final String imageId;
private final DockerImage image;
@@ -22,10 +24,11 @@ public class PartialContainer {
private final int pid;
private final boolean managed;
- public PartialContainer(ContainerId id, ContainerName name, State state, String imageId,
+ public PartialContainer(ContainerId id, ContainerName name, Instant createdAt, State state, String imageId,
DockerImage image, Map<String, String> labels, int pid, boolean managed) {
this.id = Objects.requireNonNull(id);
this.name = Objects.requireNonNull(name);
+ this.createdAt = Objects.requireNonNull(createdAt);
this.state = Objects.requireNonNull(state);
this.imageId = Objects.requireNonNull(imageId);
this.image = Objects.requireNonNull(image);
@@ -44,6 +47,11 @@ public class PartialContainer {
return name;
}
+ /** Timestamp when this container was created */
+ public Instant createdAt() {
+ return createdAt;
+ }
+
/** Current state of this */
public State state() {
return state;
@@ -86,12 +94,12 @@ public class PartialContainer {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
PartialContainer that = (PartialContainer) o;
- return pid == that.pid && managed == that.managed && id.equals(that.id) && name.equals(that.name) && state == that.state && imageId.equals(that.imageId) && image.equals(that.image) && labels.equals(that.labels);
+ return pid == that.pid && managed == that.managed && id.equals(that.id) && name.equals(that.name) && createdAt.equals(that.createdAt) && state == that.state && imageId.equals(that.imageId) && image.equals(that.image) && labels.equals(that.labels);
}
@Override
public int hashCode() {
- return Objects.hash(id, name, state, imageId, image, labels, pid, managed);
+ return Objects.hash(id, name, createdAt, state, imageId, image, labels, pid, managed);
}
/** The state of a container */
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java
index 21118ff8914..3eab24a7a66 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerEngineMock.java
@@ -9,6 +9,7 @@ import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContext;
import com.yahoo.vespa.hosted.node.admin.task.util.process.CommandResult;
import java.time.Duration;
+import java.time.Instant;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -84,7 +85,7 @@ public class ContainerEngineMock implements ContainerEngine {
@Override
public void updateContainer(NodeAgentContext context, ContainerId containerId, ContainerResources containerResources) {
Container container = requireContainer(context.containerName());
- containers.put(container.name(), new Container(containerId, container.name(), container.state(),
+ containers.put(container.name(), new Container(containerId, container.name(), container.createdAt(), container.state(),
container.imageId(), container.image(),
container.labels(), container.pid(),
container.conmonPid(), container.hostname(),
@@ -160,6 +161,7 @@ public class ContainerEngineMock implements ContainerEngine {
public Container createContainer(NodeAgentContext context, PartialContainer.State state, ContainerResources containerResources) {
return new Container(new ContainerId("id-of-" + context.containerName()),
context.containerName(),
+ Instant.EPOCH,
state,
"image-id",
context.node().wantedDockerImage().get(),
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerOperationsTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerOperationsTest.java
index e6c63220d35..d0c54dd4e04 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerOperationsTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/ContainerOperationsTest.java
@@ -7,6 +7,7 @@ import com.yahoo.vespa.test.file.TestFileSystem;
import org.junit.Test;
import java.nio.file.FileSystem;
+import java.time.Instant;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -58,7 +59,7 @@ public class ContainerOperationsTest {
}
private Container createContainer(String name, boolean managed) {
- return new Container(new ContainerId("id-of-" + name), new ContainerName(name), PartialContainer.State.running,
+ return new Container(new ContainerId("id-of-" + name), new ContainerName(name), Instant.EPOCH, PartialContainer.State.running,
"image-id", DockerImage.EMPTY, Map.of(), 42, 43, name,
ContainerResources.UNLIMITED, List.of(), managed);
}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java
index 2b62f637474..a7307b5d1de 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/container/image/ContainerImagePrunerTest.java
@@ -13,6 +13,7 @@ import com.yahoo.vespa.hosted.node.admin.container.ContainerResources;
import org.junit.Test;
import java.time.Duration;
+import java.time.Instant;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -119,7 +120,7 @@ public class ContainerImagePrunerTest {
}
private static Container container(String name, String imageId) {
- return new Container(new ContainerId("id-of-" + name), new ContainerName(name),
+ return new Container(new ContainerId("id-of-" + name), new ContainerName(name), Instant.EPOCH,
Container.State.running, imageId, DockerImage.EMPTY, Map.of(),
42, 43, name + ".example.com", ContainerResources.UNLIMITED,
List.of(), true);
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
index 1c6831e6379..29411b8069f 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
@@ -765,6 +765,7 @@ public class NodeAgentImplTest {
Optional.of(new Container(
containerId,
ContainerName.fromHostname(hostName),
+ Instant.EPOCH,
isRunning ? Container.State.running : Container.State.exited,
"image-id-1",
dockerImage,