changeset 1221:39c571af1003

Regression: Fix query descriptor registry. Reviewed-by: neugens Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-August/007968.html
author Severin Gehwolf <sgehwolf@redhat.com>
date Mon, 19 Aug 2013 14:56:18 +0200
parents 71b72b655b84
children 945e5d5c60ba
files storage/core/src/main/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistration.java storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/AgentInfoDAOTest.java storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistrationTest.java storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/HostInfoDAOTest.java storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/VmInfoDAOTest.java
diffstat 5 files changed, 74 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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
--- 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<String> 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
--- 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
--- 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