Mercurial > hg > release > thermostat-0.9
changeset 1053:b288a8a06f03
Incorrect value for the harvesting status is added to storage
Reviewed-by: neugens
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-April/006264.html
author | Omair Majid <omajid@redhat.com> |
---|---|
date | Wed, 03 Apr 2013 15:30:56 -0400 |
parents | dc66dff085a1 |
children | 1ceeba5420f2 |
files | thread/harvester/src/main/java/com/redhat/thermostat/thread/harvester/ThreadHarvester.java thread/harvester/src/test/java/com/redhat/thermostat/thread/harvester/ThreadHarvesterTest.java |
diffstat | 2 files changed, 28 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/thread/harvester/src/main/java/com/redhat/thermostat/thread/harvester/ThreadHarvester.java Tue Apr 02 14:30:12 2013 -0400 +++ b/thread/harvester/src/main/java/com/redhat/thermostat/thread/harvester/ThreadHarvester.java Wed Apr 03 15:30:56 2013 -0400 @@ -159,7 +159,12 @@ /** Save current status to storage */ public void addThreadHarvestingStatus(String pid) { - updateHarvestingStatus(Integer.valueOf(pid), connectors.containsKey(pid)); + boolean harvesting = false; + Harvester harvester = connectors.get(pid); + if (harvester != null) { + harvesting = harvester.isConnected(); + } + updateHarvestingStatus(Integer.valueOf(pid), harvesting); } private void updateHarvestingStatus(int vmId, boolean harvesting) {
--- a/thread/harvester/src/test/java/com/redhat/thermostat/thread/harvester/ThreadHarvesterTest.java Tue Apr 02 14:30:12 2013 -0400 +++ b/thread/harvester/src/test/java/com/redhat/thermostat/thread/harvester/ThreadHarvesterTest.java Wed Apr 03 15:30:56 2013 -0400 @@ -186,6 +186,28 @@ } @Test + public void testHarvestingStatusAfterSavingVmCaps() { + ScheduledExecutorService executor = mock(ScheduledExecutorService.class); + Clock clock = mock(Clock.class); + when(clock.getRealTimeMillis()).thenReturn(1l); + ThreadDao dao = mock(ThreadDao.class); + + ThreadHarvester harvester = new ThreadHarvester(executor, clock); + harvester.setThreadDao(dao); + + harvester.saveVmCaps("10"); + harvester.addThreadHarvestingStatus("10"); + + ArgumentCaptor<ThreadHarvestingStatus> statusCaptor = ArgumentCaptor.forClass(ThreadHarvestingStatus.class); + verify(dao).saveHarvestingStatus(statusCaptor.capture()); + + ThreadHarvestingStatus status = statusCaptor.getValue(); + assertEquals(10, status.getVmId()); + assertEquals(false, status.isHarvesting()); + assertEquals(1, status.getTimeStamp()); + } + + @Test public void testStopAndRemoveAll() { ScheduledExecutorService executor = mock(ScheduledExecutorService.class); Clock clock = mock(Clock.class);