Mercurial > hg > thermostat-ng > agent
changeset 2718:084cba24ae87
Add timestamp to host-overview service
This patch adds a timestamp to host-overview plugin, so the table can be sorted by ... time.
Due to the Thermostat architecture, this will propagate through to
/system-info in the web gateway. A later patch will update the API version and swaggger docs.
Reviewed-by: sgehwolf
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-July/024030.html
author | Simon Tooke <stooke@redhat.com> |
---|---|
date | Mon, 10 Jul 2017 14:49:31 -0400 |
parents | 08b2cadf2d42 |
children | 597f67d95197 |
files | plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/internal/models/HostInfoBuilderImpl.java plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/model/HostInfo.java plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/model/HostInfoTypeAdapter.java plugins/host-overview/agent/src/test/java/com/redhat/thermostat/host/overview/internal/models/HostInfoDAOImplTest.java plugins/host-overview/agent/src/test/java/com/redhat/thermostat/host/overview/model/HostInfoTypeAdapterTest.java |
diffstat | 5 files changed, 28 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/internal/models/HostInfoBuilderImpl.java Thu Jul 06 13:05:47 2017 -0400 +++ b/plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/internal/models/HostInfoBuilderImpl.java Mon Jul 10 14:49:31 2017 -0400 @@ -36,6 +36,8 @@ package com.redhat.thermostat.host.overview.internal.models; +import com.redhat.thermostat.common.Clock; +import com.redhat.thermostat.common.SystemClock; import com.redhat.thermostat.common.portability.PortableHost; import com.redhat.thermostat.common.portability.PortableHostFactory; import com.redhat.thermostat.host.overview.model.HostInfo; @@ -48,6 +50,7 @@ private final WriterID writerID; private final PortableHost helper; + private final Clock clock; public HostInfoBuilderImpl(final WriterID writerID) { this(writerID, PortableHostFactory.getInstance()); @@ -56,12 +59,14 @@ HostInfoBuilderImpl(final WriterID writerID, PortableHost helper) { this.writerID = writerID; this.helper = helper; + this.clock = new SystemClock(); } @Override public HostInfo build() { String wId = writerID.getWriterID(); return new HostInfo(wId, + clock.getRealTimeMillis(), helper.getHostName(), helper.getOSName(), helper.getOSVersion(),
--- a/plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/model/HostInfo.java Thu Jul 06 13:05:47 2017 -0400 +++ b/plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/model/HostInfo.java Mon Jul 10 14:49:31 2017 -0400 @@ -49,13 +49,15 @@ private String cpuModel; private int cpuCount; private long totalMemory; + private long timeStamp; public HostInfo() { - this(null, null, null, null, null, -1, -1); + this(null, 0, null, null, null, null, -1, -1); } - public HostInfo(String writerId, String hostname, String osName, String osKernel, String cpuModel, int cpuCount, long totalMemory) { + public HostInfo(String writerId, long timeStamp, String hostname, String osName, String osKernel, String cpuModel, int cpuCount, long totalMemory) { super(writerId); + this.timeStamp = timeStamp; this.hostname = hostname; this.osName = osName; this.osKernel = osKernel; @@ -127,5 +129,12 @@ return totalMemory; } + public long getTimeStamp() { + return timeStamp; + } + + public void setTimeStamp(long timeStamp) { + this.timeStamp = timeStamp; + } }
--- a/plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/model/HostInfoTypeAdapter.java Thu Jul 06 13:05:47 2017 -0400 +++ b/plugins/host-overview/agent/src/main/java/com/redhat/thermostat/host/overview/model/HostInfoTypeAdapter.java Mon Jul 10 14:49:31 2017 -0400 @@ -47,6 +47,7 @@ private static final String AGENT_ID = "agentId"; private static final String HOSTNAME = "hostname"; + private static final String TIMESTAMP = "timeStamp"; private static final String OS_NAME = "osName"; private static final String OS_KERNEL = "osKernel"; private static final String CPU_MODEL = "cpuModel"; @@ -74,6 +75,8 @@ out.value(info.getAgentId()); out.name(HOSTNAME); out.value(info.getHostname()); + out.name(TIMESTAMP); + writeLong(out, info.getTimeStamp()); out.name(OS_NAME); out.value(info.getOsName()); out.name(OS_KERNEL);
--- a/plugins/host-overview/agent/src/test/java/com/redhat/thermostat/host/overview/internal/models/HostInfoDAOImplTest.java Thu Jul 06 13:05:47 2017 -0400 +++ b/plugins/host-overview/agent/src/test/java/com/redhat/thermostat/host/overview/internal/models/HostInfoDAOImplTest.java Mon Jul 10 14:49:31 2017 -0400 @@ -62,6 +62,7 @@ private static final String URL = "http://localhost:26000/api/systems/v0.0.3"; private static final String SOME_JSON = "{\"some\" : \"json\"}"; private static final String HOST_NAME = "a host name"; + private static final long TIMESTAMP = 77L; private static final String OS_NAME = "some os"; private static final String OS_KERNEL = "some kernel"; private static final String CPU_MODEL = "some cpu that runs fast"; @@ -79,7 +80,7 @@ @Before public void setup() throws Exception { - info = new HostInfo("foo-agent", HOST_NAME, OS_NAME, OS_KERNEL, CPU_MODEL, CPU_NUM, MEMORY_TOTAL); + info = new HostInfo("foo-agent", TIMESTAMP, HOST_NAME, OS_NAME, OS_KERNEL, CPU_MODEL, CPU_NUM, MEMORY_TOTAL); httpRequestService = mock(HttpRequestService.class); jsonHelper = mock(HostInfoDAOImpl.JsonHelper.class);
--- a/plugins/host-overview/agent/src/test/java/com/redhat/thermostat/host/overview/model/HostInfoTypeAdapterTest.java Thu Jul 06 13:05:47 2017 -0400 +++ b/plugins/host-overview/agent/src/test/java/com/redhat/thermostat/host/overview/model/HostInfoTypeAdapterTest.java Mon Jul 10 14:49:31 2017 -0400 @@ -55,15 +55,17 @@ @Test public void testWrite() throws Exception { - final String expected = "[{\"agentId\":\"myAgent1\",\"hostname\":\"myHost1\"," + final String expected = "[{\"agentId\":\"myAgent1\",\"hostname\":\"myHost1\"," + + "\"timeStamp\":{\"$numberLong\":\"111\"}," + "\"osName\":\"myOS1\",\"osKernel\":\"myKernel1\",\"cpuModel\":\"myCPU1\"," + "\"cpuCount\":4,\"totalMemory\":{\"$numberLong\":\"400000000\"}}," - + "{\"agentId\":\"myAgent2\",\"hostname\":\"myHost2\",\"osName\":\"myOS2\"," - + "\"osKernel\":\"myKernel2\",\"cpuModel\":\"myCPU2\",\"cpuCount\":2," + + "{\"agentId\":\"myAgent2\",\"hostname\":\"myHost2\"," + + "\"timeStamp\":{\"$numberLong\":\"222\"}," + + "\"osName\":\"myOS2\",\"osKernel\":\"myKernel2\",\"cpuModel\":\"myCPU2\",\"cpuCount\":2," + "\"totalMemory\":{\"$numberLong\":\"800000000\"}}]"; - HostInfo first = new HostInfo("myAgent1", "myHost1", "myOS1", "myKernel1", "myCPU1", 4, 400000000L); - HostInfo second = new HostInfo("myAgent2", "myHost2", "myOS2", "myKernel2", "myCPU2", 2, 800000000L); + HostInfo first = new HostInfo("myAgent1", 111, "myHost1", "myOS1", "myKernel1", "myCPU1", 4, 400000000L); + HostInfo second = new HostInfo("myAgent2", 222, "myHost2", "myOS2", "myKernel2", "myCPU2", 2, 800000000L); List<HostInfo> infos = Arrays.asList(first, second); String json = adapter.toJson(infos);