# HG changeset patch # User Severin Gehwolf # Date 1376916978 -7200 # Node ID 39c571af1003a51697b8aaf8cef1998dd2f6bb5e # Parent 71b72b655b84722fd68d14a71042e2804f962aed Regression: Fix query descriptor registry. Reviewed-by: neugens Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-August/007968.html diff -r 71b72b655b84 -r 39c571af1003 storage/core/src/main/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistration.java --- a/storage/core/src/main/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistration.java Tue Aug 06 12:29:07 2013 +0200 +++ b/storage/core/src/main/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistration.java Mon Aug 19 14:56:18 2013 +0200 @@ -81,7 +81,8 @@ } else if (descriptor.equals(AgentInfoDAOImpl.QUERY_ALIVE_AGENTS)) { DescriptorMetadata metadata = new DescriptorMetadata(); return metadata; - } else if (descriptor.equals(AgentInfoDAOImpl.QUERY_ALL_AGENTS)) { + } else if (descriptor.equals(AgentInfoDAOImpl.QUERY_ALL_AGENTS) || + descriptor.equals(AgentInfoDAOImpl.AGGREGATE_COUNT_ALL_AGENTS)) { DescriptorMetadata metadata = new DescriptorMetadata(); return metadata; } else if (descriptor.equals(BackendInfoDAOImpl.QUERY_BACKEND_INFO)) { @@ -92,17 +93,19 @@ String agentId = (String)params[0].getValue(); DescriptorMetadata metadata = new DescriptorMetadata(agentId); return metadata; - } else if (descriptor.equals(HostInfoDAOImpl.QUERY_ALL_HOSTS)) { - DescriptorMetadata metadata = new DescriptorMetadata(); - return metadata; - } else if (descriptor.equals(HostInfoDAOImpl.AGGREGATE_COUNT_ALL_HOSTS)) { + } else if (descriptor.equals(HostInfoDAOImpl.QUERY_ALL_HOSTS) || + descriptor.equals(HostInfoDAOImpl.AGGREGATE_COUNT_ALL_HOSTS)) { DescriptorMetadata metadata = new DescriptorMetadata(); return metadata; } else if (descriptor.equals(NetworkInterfaceInfoDAOImpl.QUERY_NETWORK_INFO)) { String agentId = (String)params[0].getValue(); DescriptorMetadata metadata = new DescriptorMetadata(agentId); return metadata; - } else if (descriptor.equals(VmInfoDAOImpl.QUERY_ALL_VMS)) { + } else if (descriptor.equals(VmInfoDAOImpl.QUERY_ALL_VMS) || + descriptor.equals(VmInfoDAOImpl.AGGREGATE_COUNT_ALL_VMS)) { + DescriptorMetadata metadata = new DescriptorMetadata(); + return metadata; + } else if (descriptor.equals(VmInfoDAOImpl.QUERY_ALL_VMS_FOR_HOST)) { String agentId = (String)params[0].getValue(); DescriptorMetadata metadata = new DescriptorMetadata(agentId); return metadata; diff -r 71b72b655b84 -r 39c571af1003 storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/AgentInfoDAOTest.java --- a/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/AgentInfoDAOTest.java Tue Aug 06 12:29:07 2013 +0200 +++ b/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/AgentInfoDAOTest.java Mon Aug 19 14:56:18 2013 +0200 @@ -102,6 +102,8 @@ assertEquals(expectedAllAgents, AgentInfoDAOImpl.QUERY_ALL_AGENTS); String expectedAliveAgents = "QUERY agent-config WHERE 'alive' = ?b"; assertEquals(expectedAliveAgents, AgentInfoDAOImpl.QUERY_ALIVE_AGENTS); + String aggregateAllAgents = "QUERY-COUNT agent-config"; + assertEquals(aggregateAllAgents, AgentInfoDAOImpl.AGGREGATE_COUNT_ALL_AGENTS); } @Test diff -r 71b72b655b84 -r 39c571af1003 storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistrationTest.java --- a/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistrationTest.java Tue Aug 06 12:29:07 2013 +0200 +++ b/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistrationTest.java Mon Aug 19 14:56:18 2013 +0200 @@ -84,6 +84,31 @@ } @Test + public void metaDataFactoryIsSane() { + PreparedParameter agentIdParam = mock(PreparedParameter.class); + PreparedParameter vmIdParam = mock(PreparedParameter.class); + String agentId = "agentId"; + String vmId = "vmId"; + when(agentIdParam.getValue()).thenReturn(agentId); + when(vmIdParam.getValue()).thenReturn(vmId); + PreparedParameter[] fakeParams = new PreparedParameter[] { + agentIdParam, vmIdParam + }; + + DAOImplStatementDescriptorRegistration factory = new DAOImplStatementDescriptorRegistration(); + List errorList = new ArrayList<>(); + for (String desc: factory.getStatementDescriptors()) { + // should be able to get metadata for all descriptors + try { + factory.getDescriptorMetadata(desc, fakeParams); + } catch (IllegalArgumentException e) { + errorList.add(e.getMessage()); + } + } + assertEquals(errorList.toString(), 0, errorList.size()); + } + + @Test public void canGetMetadataForAgentAliveQuery() { StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); DescriptorMetadata data = factory.getDescriptorMetadata(AgentInfoDAOImpl.QUERY_ALIVE_AGENTS, null); @@ -115,6 +140,11 @@ assertNotNull(data); assertFalse(data.hasAgentId()); assertFalse(data.hasVmId()); + // Do the same for the aggregate + data = factory.getDescriptorMetadata(AgentInfoDAOImpl.AGGREGATE_COUNT_ALL_AGENTS, null); + assertNotNull(data); + assertFalse(data.hasAgentId()); + assertFalse(data.hasVmId()); } @Test @@ -158,6 +188,27 @@ assertNotNull(data); assertFalse(data.hasAgentId()); assertFalse(data.hasVmId()); + // Do the same for the aggregate query + data = factory.getDescriptorMetadata(HostInfoDAOImpl.AGGREGATE_COUNT_ALL_HOSTS, null); + assertNotNull(data); + assertFalse(data.hasAgentId()); + assertFalse(data.hasVmId()); + } + + @Test + public void canGetMetadataForAllVmsPerHostQuery() { + PreparedParameter agentIdParam = mock(PreparedParameter.class); + String agentId = "agentId"; + when(agentIdParam.getValue()).thenReturn(agentId); + PreparedParameter[] params = new PreparedParameter[] { + agentIdParam + }; + StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); + DescriptorMetadata data = factory.getDescriptorMetadata(VmInfoDAOImpl.QUERY_ALL_VMS_FOR_HOST, params); + assertNotNull(data); + assertTrue(data.hasAgentId()); + assertEquals(agentId, data.getAgentId()); + assertFalse(data.hasVmId()); } @Test @@ -178,20 +229,17 @@ } @Test - public void canGetMetadataForVmInfoAllQuery() { - PreparedParameter agentIdParam = mock(PreparedParameter.class); - String agentId = "agentId"; - when(agentIdParam.getValue()).thenReturn(agentId); - PreparedParameter[] params = new PreparedParameter[] { - agentIdParam - }; - + public void canGetMetadataForVmInfoAllQuery() { StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(VmInfoDAOImpl.QUERY_ALL_VMS, params); + DescriptorMetadata data = factory.getDescriptorMetadata(VmInfoDAOImpl.QUERY_ALL_VMS, null); assertNotNull(data); - assertTrue(data.hasAgentId()); + assertFalse(data.hasAgentId()); assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); + // Do the same for the aggregate query + data = factory.getDescriptorMetadata(VmInfoDAOImpl.AGGREGATE_COUNT_ALL_VMS, null); + assertNotNull(data); + assertFalse(data.hasAgentId()); + assertFalse(data.hasVmId()); } @Test diff -r 71b72b655b84 -r 39c571af1003 storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/HostInfoDAOTest.java --- a/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/HostInfoDAOTest.java Tue Aug 06 12:29:07 2013 +0200 +++ b/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/HostInfoDAOTest.java Mon Aug 19 14:56:18 2013 +0200 @@ -94,6 +94,8 @@ assertEquals(expectedHostInfo, HostInfoDAOImpl.QUERY_HOST_INFO); String expectedAllHosts = "QUERY host-info"; assertEquals(expectedAllHosts, HostInfoDAOImpl.QUERY_ALL_HOSTS); + String aggregateAllHosts = "QUERY-COUNT host-info"; + assertEquals(aggregateAllHosts, HostInfoDAOImpl.AGGREGATE_COUNT_ALL_HOSTS); } @Test diff -r 71b72b655b84 -r 39c571af1003 storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/VmInfoDAOTest.java --- a/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/VmInfoDAOTest.java Tue Aug 06 12:29:07 2013 +0200 +++ b/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/VmInfoDAOTest.java Mon Aug 19 14:56:18 2013 +0200 @@ -120,6 +120,8 @@ assertEquals(expectedVmInfoAll, VmInfoDAOImpl.QUERY_ALL_VMS_FOR_HOST); String expectedAllVms = "QUERY vm-info"; assertEquals(expectedAllVms, VmInfoDAOImpl.QUERY_ALL_VMS); + String aggregateAllVms = "QUERY-COUNT vm-info"; + assertEquals(aggregateAllVms, VmInfoDAOImpl.AGGREGATE_COUNT_ALL_VMS); } @Test