From a1ac770b2544f4ccdcf0e7b349fc00fa9595f8b5 Mon Sep 17 00:00:00 2001 From: freva Date: Mon, 13 Feb 2017 15:23:08 +0100 Subject: Set created on NodeAgent init --- .../yahoo/vespa/hosted/dockerapi/Container.java | 27 ++++++++++++++++++++-- .../yahoo/vespa/hosted/dockerapi/DockerImpl.java | 3 ++- 2 files changed, 27 insertions(+), 3 deletions(-) (limited to 'docker-api') diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java index 94e827b8a49..48e9d55b89d 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Container.java @@ -1,29 +1,50 @@ // 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 java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.Instant; import java.util.Objects; /** * @author stiankri */ public class Container { + private static final SimpleDateFormat DOCKER_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSSX"); public final String hostname; public final DockerImage image; public final ContainerName name; public final State state; public final int pid; + public final String created; public Container( final String hostname, final DockerImage image, final ContainerName containerName, final State state, - final int pid) { + final int pid, + final String created) { this.hostname = hostname; this.image = image; this.name = containerName; this.state = state; this.pid = pid; + this.created = created; + } + + // For testing only + public Container( + final String hostname, + final DockerImage image, + final ContainerName containerName, + final State state, + final int pid) { + this(hostname, image, containerName, state, pid, "2017-02-13T13:45:12.133713371Z"); + } + + public Instant getCreatedAsInstant() throws ParseException { + return DOCKER_DATE_FORMAT.parse(created).toInstant(); } @Override @@ -35,7 +56,8 @@ public class Container { return Objects.equals(hostname, other.hostname) && Objects.equals(image, other.image) && Objects.equals(name, other.name) - && Objects.equals(pid, other.pid); + && Objects.equals(pid, other.pid) + && Objects.equals(created, other.created); } @Override @@ -51,6 +73,7 @@ public class Container { + " name=" + name + " state=" + state + " pid=" + pid + + " created=" + created + "}"; } 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 a76c54c65dd..1ac5f62b130 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 @@ -364,7 +364,8 @@ public class DockerImpl implements Docker { new DockerImage(response.getConfig().getImage()), new ContainerName(decode(response.getName())), Container.State.valueOf(response.getState().getStatus().toUpperCase()), - response.getState().getPid() + response.getState().getPid(), + response.getCreated() )) .map(Stream::of) .orElse(Stream.empty()); -- cgit v1.2.3