Mercurial > hg > release > thermostat-1.2
changeset 1567:8ca9a3d0f6b7
Deprecate DescriptorMetadata and don't use it any longer.
Reviewed-by: neugens
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2014-November/011751.html
line wrap: on
line diff
--- a/host-cpu/common/src/main/java/com/redhat/thermostat/host/cpu/common/internal/CpuStatDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/host-cpu/common/src/main/java/com/redhat/thermostat/host/cpu/common/internal/CpuStatDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -68,14 +68,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(CpuStatDAOImplStatementDescriptorRegistration.DESCRIPTOR)) { - String agentId = (String)params[0].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" - + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/host-cpu/common/src/test/java/com/redhat/thermostat/host/cpu/common/internal/CpuStatDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/host-cpu/common/src/test/java/com/redhat/thermostat/host/cpu/common/internal/CpuStatDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,9 +40,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashSet; @@ -52,9 +49,6 @@ import org.junit.Test; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; @@ -94,33 +88,6 @@ assertNotNull(cpuStatReg); assertEquals(2, cpuStatReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForHostLatestQuery() { - PreparedParameter agentIdParam = mock(PreparedParameter.class); - String agentId = "agentId"; - when(agentIdParam.getValue()).thenReturn(agentId); - PreparedParameter[] params = new PreparedParameter[] { - agentIdParam - }; - - StatementDescriptorMetadataFactory factory = new CpuStatDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(CpuStatDAOImplStatementDescriptorRegistration.DESCRIPTOR, params); - assertNotNull(data); - assertTrue(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new CpuStatDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } + }
--- a/host-memory/common/src/main/java/com/redhat/thermostat/host/memory/common/internal/MemoryStatDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/host-memory/common/src/main/java/com/redhat/thermostat/host/memory/common/internal/MemoryStatDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -67,14 +67,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(MemoryStatDAOImplStatementDescriptorRegistration.descriptor)) { - String agentId = (String)params[0].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" - + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/host-memory/common/src/test/java/com/redhat/thermostat/host/memory/common/internal/MemoryStatDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/host-memory/common/src/test/java/com/redhat/thermostat/host/memory/common/internal/MemoryStatDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,9 +40,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashSet; @@ -52,9 +49,6 @@ import org.junit.Test; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; @@ -94,33 +88,6 @@ assertNotNull(memoryStatReg); assertEquals(2, memoryStatReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForHostLatestQuery() { - PreparedParameter agentIdParam = mock(PreparedParameter.class); - String agentId = "agentId"; - when(agentIdParam.getValue()).thenReturn(agentId); - PreparedParameter[] params = new PreparedParameter[] { - agentIdParam - }; - - StatementDescriptorMetadataFactory factory = new MemoryStatDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(MemoryStatDAOImplStatementDescriptorRegistration.descriptor, params); - assertNotNull(data); - assertTrue(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new MemoryStatDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } + }
--- a/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebAppTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebAppTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -94,7 +94,6 @@ import com.redhat.thermostat.storage.core.StatementExecutionException; import com.redhat.thermostat.storage.core.Storage; import com.redhat.thermostat.storage.core.StorageCredentials; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.dao.AgentInfoDAO; import com.redhat.thermostat.storage.dao.HostInfoDAO; import com.redhat.thermostat.storage.model.AgentInformation; @@ -139,12 +138,6 @@ * WebAppTestStatementDescriptorRegistration */ public static final Set<String> TRUSTED_DESCRIPTORS; - /* - * Map which maps a string descriptor to DescriptorMetadata. - * See also: WebAppTestStatementDescriptorRegistration - * - */ - public static final Map<String, DescriptorMetadata> METADATA_MAPPING; // descriptive name -> descriptor mapping private static final Map<String, String> DESCRIPTOR_MAP; @@ -176,15 +169,11 @@ descMap.put(KEY_AUTHORIZED_QUERY_OR, "QUERY cpu-stats WHERE 'timeStamp' > ?l OR 'timeStamp' < ?l SORT 'timeStamp' ASC"); descMap.put(KEY_STORAGE_PURGE, "QUERY vm-cpu-stats"); Set<String> trustedDescriptors = new HashSet<>(); - Map<String, DescriptorMetadata> metadata = new HashMap<>(); - DescriptorMetadata descMetadata = new DescriptorMetadata(); for (String val: descMap.values()) { trustedDescriptors.add(val); - metadata.put(val, descMetadata); } TRUSTED_DESCRIPTORS = trustedDescriptors; DESCRIPTOR_MAP = descMap; - METADATA_MAPPING = metadata; }
--- a/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebAppTestStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/integration-tests/itest-run/src/test/java/com/redhat/thermostat/itest/WebAppTestStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -53,7 +53,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - return WebAppTest.METADATA_MAPPING.get(descriptor); + throw new AssertionError("Should not be used"); } }
--- a/notes/common/src/main/java/com/redhat/thermostat/notes/common/internal/HostNotesStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/notes/common/src/main/java/com/redhat/thermostat/notes/common/internal/HostNotesStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -62,13 +62,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { String agentId; - if (descriptor.equals(HostNoteDAOImpl.UPDATE_HOST_NOTE)) { - agentId = (String)params[2].getValue(); - } else { - agentId = (String)params[0].getValue(); - } - DescriptorMetadata metadata = new DescriptorMetadata(agentId); - return metadata; + throw new AssertionError("Should not be used"); } }
--- a/notes/common/src/main/java/com/redhat/thermostat/notes/common/internal/VmNotesStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/notes/common/src/main/java/com/redhat/thermostat/notes/common/internal/VmNotesStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -61,17 +61,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - String agentId; - String vmId; - if (descriptor.equals(VmNoteDAOImpl.UPDATE_VM_NOTE)) { - agentId = (String)params[2].getValue(); - vmId = (String)params[3].getValue(); - } else { - agentId = (String)params[0].getValue(); - vmId = (String)params[1].getValue(); - } - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; + throw new AssertionError("Should not be used"); } }
--- a/numa/common/src/main/java/com/redhat/thermostat/numa/common/internal/NumaDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/numa/common/src/main/java/com/redhat/thermostat/numa/common/internal/NumaDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -74,15 +74,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descs.contains(descriptor)) { - // both queries use agentId - String agentId = (String)params[0].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" - + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/numa/common/src/test/java/com/redhat/thermostat/numa/common/internal/NumaDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/numa/common/src/test/java/com/redhat/thermostat/numa/common/internal/NumaDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -96,53 +96,6 @@ assertNotNull(numaReg); assertEquals(4, numaReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForHostLatestQuery() { - PreparedParameter agentIdParam = mock(PreparedParameter.class); - String agentId = "agentId"; - when(agentIdParam.getValue()).thenReturn(agentId); - PreparedParameter[] params = new PreparedParameter[] { - agentIdParam - }; - - StatementDescriptorMetadataFactory factory = new NumaDAOImplStatementDescriptorRegistration(); - String desc = String.format( - HostLatestPojoListGetter.HOST_LATEST_QUERY_FORMAT, - NumaDAO.numaStatCategory.getName()); - DescriptorMetadata data = factory.getDescriptorMetadata(desc, params); - assertNotNull(data); - assertTrue(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void canGetMetadataForNumaInfoQuery() { - PreparedParameter agentIdParam = mock(PreparedParameter.class); - String agentId = "agentId"; - when(agentIdParam.getValue()).thenReturn(agentId); - PreparedParameter[] params = new PreparedParameter[] { - agentIdParam - }; - - StatementDescriptorMetadataFactory factory = new NumaDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(NumaDAOImpl.QUERY_NUMA_INFO, params); - assertNotNull(data); - assertTrue(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new NumaDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } + }
--- a/storage/core/src/main/java/com/redhat/thermostat/storage/core/auth/DescriptorMetadata.java Tue Nov 25 14:41:25 2014 -0700 +++ b/storage/core/src/main/java/com/redhat/thermostat/storage/core/auth/DescriptorMetadata.java Wed Nov 26 11:56:35 2014 +0100 @@ -43,7 +43,10 @@ * Data describing a statement descriptor. * * @see StatementDescriptor + * @deprecated This class will be removed in the next release. */ +// FIXME: Thermostat 2.0 Remove this unused class. +@Deprecated public final class DescriptorMetadata { private final String agentId;
--- a/storage/core/src/main/java/com/redhat/thermostat/storage/core/auth/StatementDescriptorMetadataFactory.java Tue Nov 25 14:41:25 2014 -0700 +++ b/storage/core/src/main/java/com/redhat/thermostat/storage/core/auth/StatementDescriptorMetadataFactory.java Wed Nov 26 11:56:35 2014 +0100 @@ -42,7 +42,9 @@ * Factory for {@link DescriptorMetadata}. The web storage entpoint uses these * factories in order to instantiate DescriptorMetadata objects for descriptors. * + * @deprecated This interface will be removed in the next release. */ +@Deprecated public interface StatementDescriptorMetadataFactory { /**
--- a/storage/core/src/main/java/com/redhat/thermostat/storage/core/auth/StatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/storage/core/src/main/java/com/redhat/thermostat/storage/core/auth/StatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -47,6 +47,7 @@ * the set of all trusted statement descriptors. * */ +// FIXME: Thermostat 2.0 This interface should no longer extend StatementDescriptorMetadataFactory public interface StatementDescriptorRegistration extends StatementDescriptorMetadataFactory { /**
--- a/storage/core/src/main/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/storage/core/src/main/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -41,7 +41,6 @@ import com.redhat.thermostat.storage.core.PreparedParameter; import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; /** @@ -50,7 +49,7 @@ * */ public class DAOImplStatementDescriptorRegistration implements - StatementDescriptorRegistration, StatementDescriptorMetadataFactory { + StatementDescriptorRegistration { @Override public Set<String> getStatementDescriptors() { @@ -86,56 +85,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(AgentInfoDAOImpl.QUERY_AGENT_INFO)) { - String agentId = (String)params[0].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId); - return metadata; - } else if (descriptor.equals(AgentInfoDAOImpl.QUERY_ALIVE_AGENTS)) { - DescriptorMetadata metadata = new DescriptorMetadata(); - return metadata; - } 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)) { - String agentId = (String)params[0].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId); - return metadata; - } else if (descriptor.equals(HostInfoDAOImpl.QUERY_HOST_INFO)) { - String agentId = (String)params[0].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId); - return metadata; - } 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) || - descriptor.equals(VmInfoDAOImpl.AGGREGATE_COUNT_ALL_VMS)) { - DescriptorMetadata metadata = new DescriptorMetadata(); - return metadata; - } else if (descriptor.equals(VmInfoDAOImpl.QUERY_VM_FROM_ID)) { - String vmId = (String)params[0].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(null, vmId); - 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; - } else if (descriptor.equals(VmInfoDAOImpl.QUERY_VM_INFO)) { - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else if (descriptor.equals(SchemaInfoDAOImpl.QUERY_ALL_COLLECTIONS)) { - DescriptorMetadata metadata = new DescriptorMetadata(); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/storage/core/src/test/java/com/redhat/thermostat/storage/internal/dao/DAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -36,23 +36,17 @@ package com.redhat.thermostat.storage.internal.dao; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; + import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; import java.util.Set; + import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; public class DAOImplStatementDescriptorRegistrationTest { @@ -81,197 +75,5 @@ assertEquals(24, registrations.get(0).getStatementDescriptors().size()); } - @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 query descriptors - try { - if (desc.startsWith("QUERY")) { - 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); - assertNotNull(data); - assertFalse(data.hasAgentId()); - assertFalse(data.hasVmId()); - } - - @Test - public void canGetMetadataForAgentInfoQuery() { - 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(AgentInfoDAOImpl.QUERY_AGENT_INFO, params); - assertNotNull(data); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void canGetMetadataForAllAgentsQuery() { - StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(AgentInfoDAOImpl.QUERY_ALL_AGENTS, null); - 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 - public void canGetMetadataForBackendInfoQuery() { - 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(BackendInfoDAOImpl.QUERY_BACKEND_INFO, params); - assertNotNull(data); - assertTrue(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void canGetMetadataForHostInfoQuery() { - 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(HostInfoDAOImpl.QUERY_HOST_INFO, params); - assertNotNull(data); - assertTrue(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void canGetMetadataForAllHostsQuery() { - StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(HostInfoDAOImpl.QUERY_ALL_HOSTS, null); - 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 - public void canGetMetadataForNetworkInfoQuery() { - 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(NetworkInterfaceInfoDAOImpl.QUERY_NETWORK_INFO, params); - assertNotNull(data); - assertTrue(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertEquals(agentId, data.getAgentId()); - } - - @Test - public void canGetMetadataForVmInfoAllQuery() { - StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(VmInfoDAOImpl.QUERY_ALL_VMS, null); - assertNotNull(data); - assertFalse(data.hasAgentId()); - assertFalse(data.hasVmId()); - // 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 - public void canGetMetadataForSpecificVmInfoQuery() { - 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[] params = new PreparedParameter[] { - agentIdParam, vmIdParam - }; - - StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(VmInfoDAOImpl.QUERY_VM_INFO, params); - assertNotNull(data); - assertTrue(data.hasVmId()); - assertTrue(data.hasAgentId()); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new DAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } }
--- a/thread/collector/src/main/java/com/redhat/thermostat/thread/dao/impl/ThreadDaoImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/thread/collector/src/main/java/com/redhat/thermostat/thread/dao/impl/ThreadDaoImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -50,7 +50,7 @@ * */ public class ThreadDaoImplStatementDescriptorRegistration implements - StatementDescriptorRegistration, StatementDescriptorMetadataFactory { + StatementDescriptorRegistration { private final Set<String> descs; @@ -92,23 +92,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(ThreadDaoImpl.QUERY_THREAD_STATE_PER_THREAD) || - descriptor.equals(ThreadDaoImpl.GET_LATEST_CONTENTION_SAMPLE)) { - // no agent/vm ids in statement. - return new DescriptorMetadata(); - } else if (descriptor.equals(ThreadDaoImpl.QUERY_LATEST_THREAD_STATE_FOR_THREAD) || - descriptor.equals(ThreadDaoImpl.QUERY_FIRST_THREAD_STATE_FOR_THREAD)) { - String agentId = (String)params[0].getValue(); - return new DescriptorMetadata(agentId); - } else if (descs.contains(descriptor)) { - // All other queries have agentId/vmId parameters - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown statement ->" + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/thread/collector/src/test/java/com/redhat/thermostat/thread/dao/impl/ThreadDAOImplStatementBeanAdapterRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/thread/collector/src/test/java/com/redhat/thermostat/thread/dao/impl/ThreadDAOImplStatementBeanAdapterRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -36,13 +36,10 @@ package com.redhat.thermostat.thread.dao.impl; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; -import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; - -import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.HashSet; @@ -50,28 +47,12 @@ import java.util.ServiceLoader; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import org.junit.Test; + +import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; +import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; public class ThreadDAOImplStatementBeanAdapterRegistrationTest { - - static class Triple<S, T, U> { - final S first; - final T second; - final U third; - - public Triple(S first, T second, U third) { - this.first = first; - this.second = second; - this.third = third; - } - } @Test public void registersAllDescriptors() { @@ -107,169 +88,6 @@ assertNotNull(threadDaoReg); assertEquals(20, threadDaoReg.getStatementDescriptors().size()); } - - private Triple<String, String, PreparedParameter[]> setupForMetaDataTest() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - return new Triple<String, String, PreparedParameter[]>(agentId, vmId, - params); - } - private void assertThreadMetadata( - Triple<String, String, PreparedParameter[]> triple, - DescriptorMetadata data) { - assertNotNull(data); - assertEquals(triple.first, data.getAgentId()); - assertEquals(triple.second, data.getVmId()); - } - - @Test - public void canGetMetadataForLatestDeadlockQuery() { - Triple<String, String, PreparedParameter[]> triple = setupForMetaDataTest(); - - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_LATEST_DEADLOCK_INFO, triple.third); - assertThreadMetadata(triple, data); - } - - @Test - public void canGetMetadataForLatestHarvestingStatusQuery() { - Triple<String, String, PreparedParameter[]> triple = setupForMetaDataTest(); - - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_LATEST_HARVESTING_STATUS, triple.third); - assertThreadMetadata(triple, data); - } - - @Test - public void canGetMetadataForThreadHeader() { - Triple<String, String, PreparedParameter[]> triple = setupForMetaDataTest(); - - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_THREAD_HEADER, triple.third); - assertThreadMetadata(triple, data); - } - - @Test - public void canGetMetadataAllThreadHeaders() { - Triple<String, String, PreparedParameter[]> triple = setupForMetaDataTest(); - - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_ALL_THREAD_HEADERS, triple.third); - assertThreadMetadata(triple, data); - } - - @Test - public void canGetMetadataLastThreadStateForThread() { - PreparedParameter str1 = new PreparedParameter(); - str1.setType(String.class); - str1.setValue("foo-agent"); - PreparedParameter str2 = new PreparedParameter(); - str2.setType(String.class); - str2.setValue("something"); - PreparedParameter[] params = new PreparedParameter[] { - str1, str2 - }; - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_LATEST_THREAD_STATE_FOR_THREAD, params); - assertNotNull(data); - assertEquals("foo-agent", data.getAgentId()); - assertFalse(data.hasVmId()); - assertTrue(data.hasAgentId()); - } - - @Test - public void canGetMetadataFirstThreadStateForThread() { - PreparedParameter str1 = new PreparedParameter(); - str1.setType(String.class); - str1.setValue("foo-agent"); - PreparedParameter str2 = new PreparedParameter(); - str2.setType(String.class); - str2.setValue("something"); - PreparedParameter[] params = new PreparedParameter[] { - str1, str2 - }; - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_FIRST_THREAD_STATE_FOR_THREAD, params); - assertNotNull(data); - assertEquals("foo-agent", data.getAgentId()); - assertFalse(data.hasVmId()); - assertTrue(data.hasAgentId()); - assertNull(data.getVmId()); - } - - - @Test - public void canGetMetadataOldestThreadState() { - Triple<String, String, PreparedParameter[]> triple = setupForMetaDataTest(); - - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_OLDEST_THREAD_STATE, triple.third); - assertThreadMetadata(triple, data); - } - - @Test - public void canGetMetadataLatestThreadState() { - Triple<String, String, PreparedParameter[]> triple = setupForMetaDataTest(); - - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_LATEST_THREAD_STATE, triple.third); - assertThreadMetadata(triple, data); - } - - @Test - public void canGetMetadataThreadStatePerThread() { - PreparedParameter str1 = new PreparedParameter(); - str1.setType(String.class); - str1.setValue("foo"); - PreparedParameter long1 = new PreparedParameter(); - long1.setType(long.class); - long1.setValue(1L); - PreparedParameter long2 = new PreparedParameter(); - long2.setType(long.class); - long2.setValue(2L); - PreparedParameter[] params = new PreparedParameter[] { - str1, long1, long2 - }; - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.QUERY_THREAD_STATE_PER_THREAD, params); - assertNotNull(data); - assertNull(data.getAgentId()); - assertNull(data.getVmId()); - } - - @Test - public void canGetMetadataThreadLatestContentionSample() { - PreparedParameter str1 = new PreparedParameter(); - str1.setType(String.class); - str1.setValue("foo"); - PreparedParameter[] params = new PreparedParameter[] { - str1 - }; - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(ThreadDaoImpl.GET_LATEST_CONTENTION_SAMPLE, params); - assertNotNull(data); - assertFalse(data.hasAgentId()); - assertFalse(data.hasVmId()); - assertNull(data.getAgentId()); - assertNull(data.getVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new ThreadDaoImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } }
--- a/vm-classstat/common/src/main/java/com/redhat/thermostat/vm/classstat/common/internal/VmClassStatDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-classstat/common/src/main/java/com/redhat/thermostat/vm/classstat/common/internal/VmClassStatDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -67,14 +67,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(QUERY)) { - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor ->" + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/vm-classstat/common/src/test/java/com/redhat/thermostat/vm/classstat/common/internal/VmClassStatDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-classstat/common/src/test/java/com/redhat/thermostat/vm/classstat/common/internal/VmClassStatDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,9 +40,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashSet; @@ -52,9 +49,6 @@ import org.junit.Test; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; @@ -95,34 +89,5 @@ assertEquals(2, vmClassStatReg.getStatementDescriptors().size()); } - @Test - public void canGetMetadataForLatestClassStatQuery() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - StatementDescriptorMetadataFactory factory = new VmClassStatDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(VmClassStatDAOImplStatementDescriptorRegistration.QUERY, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new VmClassStatDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } - }
--- a/vm-cpu/common/src/main/java/com/redhat/thermostat/vm/cpu/common/internal/VmCpuStatDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-cpu/common/src/main/java/com/redhat/thermostat/vm/cpu/common/internal/VmCpuStatDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -73,17 +73,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(VmCpuStatDAOImplStatementDescriptorRegistration.latestDescriptor) - || descriptor.equals(VmCpuStatDAOImplStatementDescriptorRegistration.rangeDescriptor) - || descriptor.equals(VmCpuStatDAOImpl.DESC_LATEST_VM_CPU_STAT) - || descriptor.equals(VmCpuStatDAOImpl.DESC_OLDEST_VM_CPU_STAT)) { - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/vm-cpu/common/src/test/java/com/redhat/thermostat/vm/cpu/common/internal/VmCpuStatDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-cpu/common/src/test/java/com/redhat/thermostat/vm/cpu/common/internal/VmCpuStatDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,9 +40,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashSet; @@ -52,9 +49,6 @@ import org.junit.Test; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; @@ -94,61 +88,6 @@ assertNotNull(vmCpuStatReg); assertEquals(5, vmCpuStatReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForLatestCpuStatQuery() { - String descriptor = VmCpuStatDAOImplStatementDescriptorRegistration.latestDescriptor; - assertValidDescriptor(descriptor); - } - - @Test - public void canGetMetadataForRangeCpuStatQuery() { - String descriptor = VmCpuStatDAOImplStatementDescriptorRegistration.rangeDescriptor; - - assertValidDescriptor(descriptor); - } - - @Test - public void canGetMetadataForSingleOldestCpuStatQuery() { - String descriptor = VmCpuStatDAOImpl.DESC_OLDEST_VM_CPU_STAT; - - assertValidDescriptor(descriptor); - } - - @Test - public void canGetMetadataForSingleLatestCpuStatQuery() { - String descriptor = VmCpuStatDAOImpl.DESC_LATEST_VM_CPU_STAT; - - assertValidDescriptor(descriptor); - } - - private void assertValidDescriptor(String descriptor) { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - StatementDescriptorMetadataFactory factory = new VmCpuStatDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(descriptor, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new VmCpuStatDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } }
--- a/vm-gc/common/src/main/java/com/redhat/thermostat/vm/gc/common/internal/VmGcStatDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-gc/common/src/main/java/com/redhat/thermostat/vm/gc/common/internal/VmGcStatDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -68,16 +68,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor - .equals(VmGcStatDAOImplStatementDescriptorRegistration.descriptor)) { - String agentId = (String) params[0].getValue(); - String vmId = (String) params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" - + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/vm-gc/common/src/test/java/com/redhat/thermostat/vm/gc/common/internal/VmGcStatDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-gc/common/src/test/java/com/redhat/thermostat/vm/gc/common/internal/VmGcStatDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,9 +40,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashSet; @@ -52,9 +49,6 @@ import org.junit.Test; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; @@ -130,34 +124,6 @@ assertNotNull(vmGcStatReg); assertEquals(2, vmGcStatReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForLatestGcStatQuery() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - StatementDescriptorMetadataFactory factory = new VmGcStatDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(VmGcStatDAOImplStatementDescriptorRegistration.descriptor, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new VmGcStatDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } + }
--- a/vm-heap-analysis/common/src/main/java/com/redhat/thermostat/vm/heap/analysis/common/internal/HeapDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-heap-analysis/common/src/main/java/com/redhat/thermostat/vm/heap/analysis/common/internal/HeapDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -63,18 +63,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(HeapDAOImpl.QUERY_ALL_HEAPS)) { - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else if (descriptor.equals(HeapDAOImpl.QUERY_HEAP_INFO)) { - DescriptorMetadata metadata = new DescriptorMetadata(); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" - + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); }
--- a/vm-heap-analysis/common/src/test/java/com/redhat/thermostat/vm/heap/analysis/common/internal/HeapDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-heap-analysis/common/src/test/java/com/redhat/thermostat/vm/heap/analysis/common/internal/HeapDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,9 +40,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashSet; @@ -52,9 +49,6 @@ import org.junit.Test; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; @@ -94,43 +88,6 @@ assertNotNull(heapDaoReg); assertEquals(3, heapDaoReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForAllHeapsQuery() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - StatementDescriptorMetadataFactory factory = new HeapDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(HeapDAOImpl.QUERY_ALL_HEAPS, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void canGetMetadataForHeapInfoQuery() { - StatementDescriptorMetadataFactory factory = new HeapDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(HeapDAOImpl.QUERY_HEAP_INFO, null); - assertNotNull(data); - assertFalse(data.hasAgentId()); - assertFalse(data.hasVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new HeapDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } + }
--- a/vm-jmx/common/src/main/java/com/redhat/thermostat/vm/jmx/common/internal/JmxNotificationDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-jmx/common/src/main/java/com/redhat/thermostat/vm/jmx/common/internal/JmxNotificationDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -69,16 +69,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descs.contains(descriptor)) { - // both queries we know about have agent/vmId parameters - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" - + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/vm-jmx/common/src/test/java/com/redhat/thermostat/vm/jmx/common/internal/JmxNotificationDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-jmx/common/src/test/java/com/redhat/thermostat/vm/jmx/common/internal/JmxNotificationDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,9 +40,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.HashSet; @@ -52,9 +49,6 @@ import org.junit.Test; -import com.redhat.thermostat.storage.core.PreparedParameter; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; import com.redhat.thermostat.storage.internal.dao.DAOImplStatementDescriptorRegistration; @@ -94,52 +88,6 @@ assertNotNull(jmxDaoReg); assertEquals(4, jmxDaoReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForLatestNotificationsQuery() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - StatementDescriptorMetadataFactory factory = new JmxNotificationDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(JmxNotificationDAOImpl.QUERY_LATEST_NOTIFICATION_STATUS, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void canGetMetadataForNotificationsQuery() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - StatementDescriptorMetadataFactory factory = new JmxNotificationDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(JmxNotificationDAOImpl.QUERY_NOTIFICATIONS, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new JmxNotificationDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } + }
--- a/vm-memory/common/src/main/java/com/redhat/thermostat/vm/memory/common/internal/VmMemoryStatDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-memory/common/src/main/java/com/redhat/thermostat/vm/memory/common/internal/VmMemoryStatDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -72,16 +72,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descs.contains(descriptor)) { - // both queries have agentId/vmId - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" - + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } }
--- a/vm-memory/common/src/test/java/com/redhat/thermostat/vm/memory/common/internal/VmMemoryStatDAOImplStatementDescriptorRegistrationTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-memory/common/src/test/java/com/redhat/thermostat/vm/memory/common/internal/VmMemoryStatDAOImplStatementDescriptorRegistrationTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -96,54 +96,6 @@ assertNotNull(vmMemoryDaoReg); assertEquals(3, vmMemoryDaoReg.getStatementDescriptors().size()); } - - @Test - public void canGetMetadataForVmLatestVmMemoryStatsQuery() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - String desc = String.format(VmLatestPojoListGetter.VM_LATEST_QUERY_FORMAT, - VmMemoryStatDAO.vmMemoryStatsCategory.getName()); - StatementDescriptorMetadataFactory factory = new VmMemoryStatDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(desc, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void canGetMetadataForVmLatestVmMemoryStats2Query() { - 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[] params = new PreparedParameter[] { agentIdParam, - vmIdParam }; - - StatementDescriptorMetadataFactory factory = new VmMemoryStatDAOImplStatementDescriptorRegistration(); - DescriptorMetadata data = factory.getDescriptorMetadata(VmMemoryStatDAOImpl.QUERY_LATEST, params); - assertNotNull(data); - assertEquals(agentId, data.getAgentId()); - assertEquals(vmId, data.getVmId()); - } - - @Test - public void unknownDescriptorThrowsException() { - StatementDescriptorMetadataFactory factory = new VmMemoryStatDAOImplStatementDescriptorRegistration(); - try { - factory.getDescriptorMetadata("QUERY foo-bar WHERE 'a' = 'b'", null); - fail("should have thrown exception"); - } catch (IllegalArgumentException e) { - // pass - } - } + }
--- a/vm-profiler/common/src/main/java/com/redhat/thermostat/vm/profiler/common/internal/ProfileDAOImplStatementDescriptorRegistration.java Tue Nov 25 14:41:25 2014 -0700 +++ b/vm-profiler/common/src/main/java/com/redhat/thermostat/vm/profiler/common/internal/ProfileDAOImplStatementDescriptorRegistration.java Wed Nov 26 11:56:35 2014 +0100 @@ -47,17 +47,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - if (descriptor.equals(ProfileDAOImpl.DESC_ADD_PROFILE_INFO) - || descriptor.equals(ProfileDAOImpl.DESC_QUERY_LATEST) - || descriptor.equals(ProfileDAOImpl.DESC_QUERY_BY_ID) - || descriptor.equals(ProfileDAOImpl.DESC_INTERVAL_QUERY)) { - String agentId = (String)params[0].getValue(); - String vmId = (String)params[1].getValue(); - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - return metadata; - } else { - throw new IllegalArgumentException("Unknown descriptor: ->" + descriptor + "<-"); - } + throw new AssertionError("Should not be used"); } @Override
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/KnownDescriptorRegistry.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/KnownDescriptorRegistry.java Wed Nov 26 11:56:35 2014 +0100 @@ -37,13 +37,10 @@ package com.redhat.thermostat.web.server; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; -import java.util.Map; import java.util.ServiceLoader; import java.util.Set; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.auth.StatementDescriptorRegistration; /** @@ -55,14 +52,12 @@ private static final ServiceLoader<StatementDescriptorRegistration> TRUSTED_DESCS = ServiceLoader .load(StatementDescriptorRegistration.class); private final Set<String> trustedSet; - private final Map<String, StatementDescriptorMetadataFactory> descriptorMetadataFactories; KnownDescriptorRegistry() { this(TRUSTED_DESCS); } KnownDescriptorRegistry(Iterable<StatementDescriptorRegistration> trustedDescs) { - descriptorMetadataFactories = new HashMap<>(); trustedSet = new HashSet<>(); for (StatementDescriptorRegistration reg: trustedDescs) { Set<String> newCandidates = reg.getStatementDescriptors(); @@ -78,11 +73,6 @@ // Pass: Set impl does not support contains checks on null // values. } - // prepare the reverse lookup metadata map - StatementDescriptorMetadataFactory factory = (StatementDescriptorMetadataFactory) reg; - for (String descKey: newCandidates) { - descriptorMetadataFactories.put(descKey, factory); - } trustedSet.addAll(newCandidates); } } @@ -92,9 +82,5 @@ return Collections.unmodifiableSet(trustedSet); } - final Map<String, StatementDescriptorMetadataFactory> getDescriptorMetadataFactories() { - // return a read-only mapping - return Collections.unmodifiableMap(descriptorMetadataFactories); - } }
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/WebStorageEndPoint.java Wed Nov 26 11:56:35 2014 +0100 @@ -93,8 +93,6 @@ import com.redhat.thermostat.storage.core.StatementDescriptor; import com.redhat.thermostat.storage.core.Storage; import com.redhat.thermostat.storage.core.StorageCredentials; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; -import com.redhat.thermostat.storage.core.auth.StatementDescriptorMetadataFactory; import com.redhat.thermostat.storage.core.experimental.BatchCursor; import com.redhat.thermostat.storage.model.AggregateResult; import com.redhat.thermostat.storage.model.Pojo; @@ -164,8 +162,6 @@ // read-only set of all known statement descriptors we trust and allow private Set<String> knownStatementDescriptors; - // read-only map of known descriptors => descriptor metadata - private Map<String, StatementDescriptorMetadataFactory> descMetadataFactories; // read-only set of all known categories which we allow to get registered. private Set<String> knownCategoryNames; @@ -201,7 +197,6 @@ // Set the set of statement descriptors which we trust KnownDescriptorRegistry descRegistry = KnownDescriptorRegistryFactory.getInstance(); knownStatementDescriptors = descRegistry.getRegisteredDescriptors(); - descMetadataFactories = descRegistry.getDescriptorMetadataFactories(); // Set the set of category names which we allow to get registered KnownCategoryRegistry categoryRegistry = KnownCategoryRegistryFactory.getInstance(); knownCategoryNames = categoryRegistry.getRegisteredCategoryNames(); @@ -630,11 +625,9 @@ } StatementDescriptor<T> desc = targetStmtHolder.getStatementDescriptor(); - StatementDescriptorMetadataFactory factory = descMetadataFactories.get(desc.getDescriptor()); - DescriptorMetadata actualMetadata = factory.getDescriptorMetadata(desc.getDescriptor(), params); UserPrincipal userPrincipal = getUserPrincipal(req); - targetQuery = getQueryForPrincipal(userPrincipal, targetQuery, desc, actualMetadata); + targetQuery = getQueryForPrincipal(userPrincipal, targetQuery, desc); // While the signature still says the retval of query execute is // cursor, we return an instance of AdvancedCursor instead for new code. // This is the case for MongoStorage. However, in order to work @@ -832,9 +825,9 @@ */ private <T extends Pojo> Query<T> getQueryForPrincipal( UserPrincipal userPrincipal, Query<T> patchedQuery, - StatementDescriptor<T> desc, DescriptorMetadata metaData) { + StatementDescriptor<T> desc) { Expression whereExpression = patchedQuery.getWhereExpression(); - FilterResult result = userPrincipal.getReadFilter(desc, metaData); + FilterResult result = userPrincipal.getReadFilter(desc); Expression authorizationExpression = null; switch (result.getType()) { case ALL: // fall-through. same as next case.
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/auth/AgentIdFilter.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/auth/AgentIdFilter.java Wed Nov 26 11:56:35 2014 +0100 @@ -36,13 +36,11 @@ package com.redhat.thermostat.web.server.auth; -import java.util.Objects; import java.util.Set; import com.redhat.thermostat.storage.core.Category; import com.redhat.thermostat.storage.core.Key; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.Expression; import com.redhat.thermostat.storage.query.ExpressionFactory; @@ -64,35 +62,23 @@ @Override public FilterResult applyFilter(StatementDescriptor<T> desc, - DescriptorMetadata metaData, Expression parentExpression) { + Expression parentExpression) { if (userRoles.contains(GRANT_AGENTS_READ_ALL)) { return allWithExpression(parentExpression); } Category<T> category = desc.getCategory(); // user cannot read all agents if (category.getKey(Key.AGENT_ID.getName()) != null) { - if (metaData != null && metaData.hasAgentId()) { - // if given agent ID not in granted list, return empty - String agentId = Objects.requireNonNull(metaData.getAgentId()); - RolePrincipal agentIdGrantRole = new RolePrincipal(AGENTS_BY_AGENT_ID_GRANT_ROLE_PREFIX + agentId); - if (!userRoles.contains(agentIdGrantRole)) { - return new FilterResult(ResultType.EMPTY); - } else { - // agentId allowed - return allWithExpression(parentExpression); - } - } else { - // tag on in clause for agentId - ExpressionFactory factory = new ExpressionFactory(); - Set<String> agentIds = getGrantedAgentsByAgentId(); - Expression filterExpression = factory.in(Key.AGENT_ID, agentIds, String.class); - FilterResult result = new FilterResult(ResultType.QUERY_EXPRESSION); - if (parentExpression != null) { - filterExpression = factory.and(parentExpression, filterExpression); - } - result.setFilterExpression(filterExpression); - return result; + // tag on in clause for agentId + ExpressionFactory factory = new ExpressionFactory(); + Set<String> agentIds = getGrantedAgentsByAgentId(); + Expression filterExpression = factory.in(Key.AGENT_ID, agentIds, String.class); + FilterResult result = new FilterResult(ResultType.QUERY_EXPRESSION); + if (parentExpression != null) { + filterExpression = factory.and(parentExpression, filterExpression); } + result.setFilterExpression(filterExpression); + return result; } else { // can't do anything here, let it through for next stage. return allWithExpression(parentExpression);
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/auth/HostnameFilter.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/auth/HostnameFilter.java Wed Nov 26 11:56:35 2014 +0100 @@ -39,7 +39,6 @@ import java.util.Set; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.dao.HostInfoDAO; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.Expression; @@ -63,7 +62,7 @@ @Override public FilterResult applyFilter(StatementDescriptor<T> desc, - DescriptorMetadata metaData, Expression parentExpression) { + Expression parentExpression) { if (userRoles.contains(GRANT_HOSTS_READ_ALL)) { return allWithExpression(parentExpression); }
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/auth/StatementFilter.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/auth/StatementFilter.java Wed Nov 26 11:56:35 2014 +0100 @@ -38,7 +38,6 @@ import com.redhat.thermostat.storage.core.PreparedStatement; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.Expression; @@ -54,8 +53,6 @@ * * @param desc * The statement descriptor to apply the filter to. - * @param metaData - * Metadata pertaining to the given descriptor. * @param parentExpression * The Expression as constructed by the previous Filter. May be * null. @@ -63,7 +60,7 @@ * result type was QUERY_EXPRESSION. */ FilterResult applyFilter(StatementDescriptor<T> desc, - DescriptorMetadata metaData, Expression parentExpression); + Expression parentExpression); }
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/auth/UserPrincipal.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/auth/UserPrincipal.java Wed Nov 26 11:56:35 2014 +0100 @@ -45,7 +45,6 @@ import java.util.Set; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.Expression; import com.redhat.thermostat.web.server.auth.FilterResult.ResultType; @@ -109,7 +108,7 @@ * @return An {@link FilterResult} which can be used to make a decision on * which records to return. */ - public <T extends Pojo> FilterResult getReadFilter(StatementDescriptor<T> desc, DescriptorMetadata metaData) { + public <T extends Pojo> FilterResult getReadFilter(StatementDescriptor<T> desc) { if (getRoles().contains(GRANT_READ_ALL)) { // user can see everything, no filtering is happening at all. return new FilterResult(ResultType.ALL); @@ -120,7 +119,7 @@ Expression parentExpression = null; FilterResult overallResult = null; for (StatementFilter<T> filter: filters) { - overallResult = filter.applyFilter(desc, metaData, parentExpression); + overallResult = filter.applyFilter(desc, parentExpression); switch (overallResult.getType()) { case ALL: // fall-through, expression == null case QUERY_EXPRESSION:
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/auth/VmIdFilter.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/auth/VmIdFilter.java Wed Nov 26 11:56:35 2014 +0100 @@ -41,7 +41,6 @@ import com.redhat.thermostat.storage.core.Category; import com.redhat.thermostat.storage.core.Key; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.Expression; import com.redhat.thermostat.storage.query.ExpressionFactory; @@ -63,33 +62,23 @@ @Override public FilterResult applyFilter(StatementDescriptor<T> desc, - DescriptorMetadata metaData, Expression parentExpression) { + Expression parentExpression) { if (userRoles.contains(GRANT_VMS_BY_ID_READ_ALL)) { return allWithExpression(parentExpression); } // perform filtering on vmId Category<T> category = desc.getCategory(); if (category.getKey(Key.VM_ID.getName()) != null) { - if (metaData != null && metaData.hasVmId()) { - String vmId = metaData.getVmId(); - RolePrincipal grantedByVmId = new RolePrincipal(VMS_BY_VM_ID_GRANT_ROLE_PREFIX + vmId); - if (!userRoles.contains(grantedByVmId)) { - return new FilterResult(ResultType.EMPTY); - } else { - return allWithExpression(parentExpression); - } - } else { - // add vmId IN clause - ExpressionFactory factory = new ExpressionFactory(); - Set<String> vmIds = getGrantedVmsByVmId(); - Expression filterExpression = factory.in(Key.VM_ID, vmIds, String.class); - if (parentExpression != null) { - filterExpression = factory.and(parentExpression, filterExpression); - } - FilterResult result = new FilterResult(ResultType.QUERY_EXPRESSION); - result.setFilterExpression(filterExpression); - return result; + // add vmId IN clause + ExpressionFactory factory = new ExpressionFactory(); + Set<String> vmIds = getGrantedVmsByVmId(); + Expression filterExpression = factory.in(Key.VM_ID, vmIds, String.class); + if (parentExpression != null) { + filterExpression = factory.and(parentExpression, filterExpression); } + FilterResult result = new FilterResult(ResultType.QUERY_EXPRESSION); + result.setFilterExpression(filterExpression); + return result; } else { // can't do much return allWithExpression(parentExpression);
--- a/web/server/src/main/java/com/redhat/thermostat/web/server/auth/VmUsernameFilter.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/main/java/com/redhat/thermostat/web/server/auth/VmUsernameFilter.java Wed Nov 26 11:56:35 2014 +0100 @@ -39,7 +39,6 @@ import java.util.Set; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.dao.VmInfoDAO; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.Expression; @@ -63,7 +62,7 @@ @Override public FilterResult applyFilter(StatementDescriptor<T> desc, - DescriptorMetadata metaData, Expression parentExpression) { + Expression parentExpression) { if (userRoles.contains(GRANT_VMS_USERNAME_READ_ALL)) { return allWithExpression(parentExpression); }
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/KnownDescriptorRegistryTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/KnownDescriptorRegistryTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -43,7 +43,6 @@ import java.util.Arrays; import java.util.HashSet; -import java.util.Map; import java.util.Set; import java.util.TreeSet; @@ -131,7 +130,7 @@ private Iterable<StatementDescriptorRegistration> getRegs(Set<String> descs) { StatementDescriptorRegistration reg = new TestStatementDescriptorRegistration( - descs, null); + descs); StatementDescriptorRegistration[] regs = new StatementDescriptorRegistration[] { reg }; return Arrays.asList(regs); } @@ -139,11 +138,9 @@ private static class TestStatementDescriptorRegistration implements StatementDescriptorRegistration { private final Set<String> descs; - private final Map<String, DescriptorMetadata> metadata; - private TestStatementDescriptorRegistration(Set<String> descs, Map<String, DescriptorMetadata> metadata) { + private TestStatementDescriptorRegistration(Set<String> descs) { this.descs = descs; - this.metadata = metadata; } @Override @@ -154,7 +151,7 @@ @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - return metadata.get(descriptor); + throw new AssertionError("should not be used"); } }
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/WebStorageEndpointTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/WebStorageEndpointTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -303,7 +303,7 @@ String strDescriptor = "QUERY " + category.getName() + " WHERE '" + key1.getName() + "' = ?s SORT '" + key1.getName() + "' DSC LIMIT 42"; // setup a statement descriptor set so as to mimic a not trusted desc String wrongDescriptor = "QUERY something-other WHERE 'a' = true"; - setupTrustedStatementRegistry(wrongDescriptor, null); + setupTrustedStatementRegistry(wrongDescriptor); String[] roleNames = new String[] { Roles.REGISTER_CATEGORY, @@ -609,8 +609,7 @@ String strDescriptor = "QUERY " + category.getName() + " WHERE '" + key1.getName() + "' = ?s SORT '" + key1.getName() + "' DSC LIMIT 42"; // metadata which basically does no filtering. There's another test which // asserts only allowed data (via ACL) gets returned. - DescriptorMetadata metadata = new DescriptorMetadata(); - setupTrustedStatementRegistry(strDescriptor, metadata); + setupTrustedStatementRegistry(strDescriptor); Set<BasicRole> roles = new HashSet<>(); roles.add(new RolePrincipal(Roles.REGISTER_CATEGORY)); @@ -653,8 +652,7 @@ try { String strDescriptor = "QUERY " + category.getName() + " WHERE '" + key1.getName() + "' = ?s SORT '" + key1.getName() + "' DSC LIMIT 42"; - DescriptorMetadata metadata = new DescriptorMetadata(); - setupTrustedStatementRegistry(strDescriptor, metadata); + setupTrustedStatementRegistry(strDescriptor); Set<BasicRole> roles = new HashSet<>(); roles.add(new RolePrincipal(Roles.REGISTER_CATEGORY)); @@ -785,8 +783,7 @@ @Test public void authorizedPreparedAggregateQuery() throws Exception { String strDescriptor = "QUERY-COUNT " + category.getName(); - DescriptorMetadata metadata = new DescriptorMetadata(); - setupTrustedStatementRegistry(strDescriptor, metadata); + setupTrustedStatementRegistry(strDescriptor); Set<BasicRole> roles = new HashSet<>(); roles.add(new RolePrincipal(Roles.REGISTER_CATEGORY)); @@ -899,10 +896,10 @@ KnownCategoryRegistryFactory.setInstance(registry); } - private void setupTrustedStatementRegistry(String strDescriptor, DescriptorMetadata metadata) { + private void setupTrustedStatementRegistry(String strDescriptor) { Set<String> descs = new HashSet<>(); descs.add(strDescriptor); - StatementDescriptorRegistration reg = new TestStatementDescriptorRegistration(descs, metadata); + StatementDescriptorRegistration reg = new TestStatementDescriptorRegistration(descs); List<StatementDescriptorRegistration> regs = new ArrayList<>(1); regs.add(reg); KnownDescriptorRegistry registry = new KnownDescriptorRegistry(regs); @@ -920,8 +917,7 @@ try { String strDescriptor = "ADD " + category.getName() + " SET '" + key1.getName() + "' = ?s , '" + key2.getName() + "' = ?s"; - DescriptorMetadata metadata = new DescriptorMetadata(); - setupTrustedStatementRegistry(strDescriptor, metadata); + setupTrustedStatementRegistry(strDescriptor); Set<BasicRole> roles = new HashSet<>(); roles.add(new RolePrincipal(Roles.REGISTER_CATEGORY)); @@ -1775,17 +1771,15 @@ private static class TestStatementDescriptorRegistration implements StatementDescriptorRegistration { private final Set<String> descriptorSet; - private final DescriptorMetadata metadata; - private TestStatementDescriptorRegistration(Set<String> descriptorSet, DescriptorMetadata metadata) { + private TestStatementDescriptorRegistration(Set<String> descriptorSet) { assertEquals(1, descriptorSet.size()); this.descriptorSet = descriptorSet; - this.metadata = metadata; } @Override public DescriptorMetadata getDescriptorMetadata(String descriptor, PreparedParameter[] params) { - return metadata; + throw new AssertionError("should not be used"); } @Override
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/auth/AgentIdFilterTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/auth/AgentIdFilterTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -37,11 +37,9 @@ package com.redhat.thermostat.web.server.auth; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.util.HashSet; import java.util.Set; @@ -52,7 +50,6 @@ import com.redhat.thermostat.storage.core.Category; import com.redhat.thermostat.storage.core.Key; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.BinaryLogicalExpression; import com.redhat.thermostat.storage.query.BinarySetMembershipExpression; @@ -84,7 +81,7 @@ roles.add(agentReadAll); AgentIdFilter<?> filter = new AgentIdFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, null); + FilterResult result = filter.applyFilter(null, null); assertEquals(ResultType.ALL, result.getType()); assertEquals(null, result.getFilterExpression()); } @@ -98,7 +95,7 @@ ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); AgentIdFilter<?> filter = new AgentIdFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, parentExpression); + FilterResult result = filter.applyFilter(null, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertEquals(parentExpression, result.getFilterExpression()); } @@ -109,10 +106,9 @@ Set<BasicRole> roles = new HashSet<>(); RolePrincipal agent1Role = new RolePrincipal(AgentIdFilter.AGENTS_BY_AGENT_ID_GRANT_ROLE_PREFIX + agentId); roles.add(agent1Role); - DescriptorMetadata metadata = new DescriptorMetadata(); AgentIdFilter<FooPojo> filter = new AgentIdFilter<>(roles); // returning non-null agent id key will work - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_AGENT_ID, metadata, null); + FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_AGENT_ID, null); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -125,24 +121,6 @@ @Test public void addsAgentIdInQueryToParentExpression() { - performAgentIdQueryTest(new DescriptorMetadata()); - } - - /* - * We shouldn't throw NPEs if no meta data is supplied by a plug-in. It's - * treated as if it was a query with no explicit agent/writer id in the - * descriptor. - */ - @Test - public void addsAgentIdInQueryWhenMetadataNull() { - try { - performAgentIdQueryTest(null); - } catch (NullPointerException e) { - fail("Should not have thrown NPE"); - } - } - - private void performAgentIdQueryTest(DescriptorMetadata metadata) { String agentId = UUID.randomUUID().toString(); Set<BasicRole> roles = new HashSet<>(); RolePrincipal agent1Role = new RolePrincipal(AgentIdFilter.AGENTS_BY_AGENT_ID_GRANT_ROLE_PREFIX + agentId); @@ -150,7 +128,7 @@ AgentIdFilter<FooPojo> filter = new AgentIdFilter<>(roles); ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_AGENT_ID, metadata, parentExpression); + FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_AGENT_ID, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -171,9 +149,8 @@ RolePrincipal agent2Role = new RolePrincipal(AgentIdFilter.AGENTS_BY_AGENT_ID_GRANT_ROLE_PREFIX + agentId2); roles.add(agent1Role); roles.add(agent2Role); - DescriptorMetadata metadata = new DescriptorMetadata(); AgentIdFilter<FooPojo> filter = new AgentIdFilter<>(roles); - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_AGENT_ID, metadata, null); + FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_AGENT_ID, null); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -186,32 +163,12 @@ } @Test - public void returnsEmptyIfAgentIdDoesNotMatch() { - String agentId = UUID.randomUUID().toString(); - Set<BasicRole> roles = new HashSet<>(); - RolePrincipal agentReadAll = new RolePrincipal(AgentIdFilter.AGENTS_BY_AGENT_ID_GRANT_ROLE_PREFIX + agentId); - roles.add(agentReadAll); - String wrongAgentId = "something else than agentId"; - // assert precondition - assertFalse(agentId.equals(wrongAgentId)); - - DescriptorMetadata metadata = new DescriptorMetadata(wrongAgentId); - assertTrue(metadata.hasAgentId()); - AgentIdFilter<FooPojo> filter = new AgentIdFilter<>(roles); - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_AGENT_ID, metadata, null); - assertEquals(ResultType.EMPTY, result.getType()); - assertNull(result.getFilterExpression()); - } - - @Test public void returnsAllForUnrelatedQuery() { Set<BasicRole> roles = new HashSet<>(); - DescriptorMetadata metadata = new DescriptorMetadata(); - assertFalse(metadata.hasAgentId()); // want for the agent id key to not be present in category AgentIdFilter<FooPojo> filter = new AgentIdFilter<>(roles); - FilterResult result = filter.applyFilter(TEST_DESC_NULL_AGENT_ID, metadata, null); + FilterResult result = filter.applyFilter(TEST_DESC_NULL_AGENT_ID, null); assertEquals(ResultType.ALL, result.getType()); assertNull(result.getFilterExpression()); } @@ -221,11 +178,9 @@ Set<BasicRole> roles = new HashSet<>(); Expression parentExpression = new ExpressionFactory().equalTo(Key.AGENT_ID, "testKey"); - DescriptorMetadata metadata = new DescriptorMetadata(); - assertFalse(metadata.hasAgentId()); AgentIdFilter<FooPojo> filter = new AgentIdFilter<>(roles); // want for the agent id key to not be present in category - FilterResult result = filter.applyFilter(TEST_DESC_NULL_AGENT_ID, metadata, parentExpression); + FilterResult result = filter.applyFilter(TEST_DESC_NULL_AGENT_ID, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); assertEquals(parentExpression, result.getFilterExpression());
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/auth/HostnameFilterTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/auth/HostnameFilterTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -40,7 +40,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.util.HashSet; import java.util.Set; @@ -49,7 +48,6 @@ import com.redhat.thermostat.storage.core.Key; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.dao.AgentInfoDAO; import com.redhat.thermostat.storage.dao.HostInfoDAO; import com.redhat.thermostat.storage.model.AgentInformation; @@ -69,7 +67,7 @@ roles.add(hostnameReadAll); HostnameFilter<?> filter = new HostnameFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, null); + FilterResult result = filter.applyFilter(null, null); assertEquals(ResultType.ALL, result.getType()); assertEquals(null, result.getFilterExpression()); } @@ -83,26 +81,13 @@ ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); HostnameFilter<?> filter = new HostnameFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, parentExpression); + FilterResult result = filter.applyFilter(null, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertEquals(parentExpression, result.getFilterExpression()); } @Test public void addsHostnameInQueryForHostInfo() { - performHostInfoTest(new DescriptorMetadata()); - } - - @Test - public void testNullMetadata() { - try { - performHostInfoTest(null); - } catch (NullPointerException e) { - fail("Should not have thrown NPE for this test"); - } - } - - private void performHostInfoTest(DescriptorMetadata metadata) { String testHostname = "testhost.example.com"; Set<BasicRole> roles = new HashSet<>(); RolePrincipal hostnameRole = new RolePrincipal(HostnameFilter.HOSTS_BY_HOSTNAME_GRANT_ROLE_PREFIX + testHostname); @@ -114,7 +99,7 @@ hostnames.add(testHostname); Expression expected = new ExpressionFactory().in(HostInfoDAO.hostNameKey, hostnames, String.class); HostnameFilter<HostInfo> filter = new HostnameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, null); + FilterResult result = filter.applyFilter(desc, null); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -129,7 +114,6 @@ RolePrincipal hostnameRole = new RolePrincipal(HostnameFilter.HOSTS_BY_HOSTNAME_GRANT_ROLE_PREFIX + testHostname); roles.add(hostnameRole); - DescriptorMetadata metadata = new DescriptorMetadata(); StatementDescriptor<HostInfo> desc = new StatementDescriptor<>(HostInfoDAO.hostInfoCategory, "QUERY " + HostInfoDAO.hostInfoCategory.getName()); Set<String> hostnames = new HashSet<>(); @@ -139,7 +123,7 @@ Expression expectedIn = factory.in(HostInfoDAO.hostNameKey, hostnames, String.class); Expression expected = factory.and(parentExpression, expectedIn); HostnameFilter<HostInfo> filter = new HostnameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, parentExpression); + FilterResult result = filter.applyFilter(desc, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -151,12 +135,10 @@ public void byPassesFilterForUnrelatedQuery() { Set<BasicRole> roles = new HashSet<>(); - DescriptorMetadata metadata = new DescriptorMetadata(); - StatementDescriptor<AgentInformation> desc = new StatementDescriptor<>(AgentInfoDAO.CATEGORY, "QUERY " + AgentInfoDAO.CATEGORY.getName()); HostnameFilter<AgentInformation> filter = new HostnameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, null); + FilterResult result = filter.applyFilter(desc, null); assertEquals(ResultType.ALL, result.getType()); assertNull(result.getFilterExpression()); } @@ -165,13 +147,12 @@ public void byPassesFilterForUnrelatedQueryAndParentExpression() { Set<BasicRole> roles = new HashSet<>(); - DescriptorMetadata metadata = new DescriptorMetadata(); StatementDescriptor<AgentInformation> desc = new StatementDescriptor<>(AgentInfoDAO.CATEGORY, "QUERY " + AgentInfoDAO.CATEGORY.getName()); ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); HostnameFilter<AgentInformation> filter = new HostnameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, parentExpression); + FilterResult result = filter.applyFilter(desc, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); assertEquals(parentExpression, result.getFilterExpression());
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/auth/UserPrincipalTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/auth/UserPrincipalTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -53,7 +53,6 @@ import com.redhat.thermostat.storage.core.Category; import com.redhat.thermostat.storage.core.Key; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.dao.HostInfoDAO; import com.redhat.thermostat.storage.dao.VmInfoDAO; import com.redhat.thermostat.storage.model.HostInfo; @@ -124,7 +123,7 @@ roles.add(readEverything); SimplePrincipal testMe = new SimplePrincipal("test me"); testMe.setRoles(roles); - FilterResult result = testMe.getReadFilter(null, null); + FilterResult result = testMe.getReadFilter(null); assertEquals(ResultType.ALL, result.getType()); assertNull(result.getFilterExpression()); } @@ -153,14 +152,8 @@ testMe.setRoles(roles); StatementDescriptor<VmInfo> desc = new StatementDescriptor<>(VmInfoDAO.vmInfoCategory, "QUERY " + VmInfoDAO.vmInfoCategory.getName()); - // fake a query for a category with agentId attributes and vmId - // attributes present, but no specific agentId/vmId present. - DescriptorMetadata metadata = new DescriptorMetadata(); - assertFalse(metadata.hasAgentId()); - assertFalse(metadata.hasVmId()); - // should pass through agentId -> hostname -> vmId -> vmUsername filters - FilterResult result = testMe.getReadFilter(desc, metadata); + FilterResult result = testMe.getReadFilter(desc); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); @@ -206,20 +199,27 @@ Category<FooPojo> agentAndVmIdCat = new Category<>("agentAndVmIdCat", FooPojo.class, keys); StatementDescriptor<FooPojo> desc = new StatementDescriptor<>(agentAndVmIdCat, "QUERY agentAndVmIdCat"); - // fake a query for a category with agentId attributes and vmId - // attributes present and also specific agentId/vmId present. - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - assertTrue(metadata.hasAgentId()); - assertTrue(metadata.hasVmId()); - // should pass through agentId -> hostname -> vmId -> vmUsername filters - FilterResult result = testMe.getReadFilter(desc, metadata); + FilterResult result = testMe.getReadFilter(desc); // should return all, since ACL allows specific agentId/vmIds - assertEquals(ResultType.ALL, result.getType()); - assertNull(result.getFilterExpression()); + assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); + Expression expected = getExpectedAgentIdVmIdExpression(agentId, vmId); + assertEquals(expected, result.getFilterExpression()); } + private Expression getExpectedAgentIdVmIdExpression(String agentId, + String vmId) { + ExpressionFactory factory = new ExpressionFactory(); + Set<String> agentIdSet = new HashSet<>(); + agentIdSet.add(agentId); + Expression agentIdExp = factory.in(Key.AGENT_ID, agentIdSet, String.class); + Set<String> vmIdSet = new HashSet<>(); + vmIdSet.add(vmId); + Expression vmIdExp = factory.in(Key.VM_ID, vmIdSet, String.class); + return factory.and(agentIdExp, vmIdExp); + } + @Test public void testEntireFilterChainSpecificAgentIdVmIdPlusHostname() { String agentId = "someAgentID"; @@ -243,24 +243,23 @@ testMe.setRoles(roles); StatementDescriptor<HostInfo> desc = new StatementDescriptor<>(HostInfoDAO.hostInfoCategory, "QUERY " + HostInfoDAO.hostInfoCategory.getName()); - // fake a query for a category with agentId attributes and vmId - // attributes present and also specific agentId/vmId present. - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - assertTrue(metadata.hasAgentId()); - assertTrue(metadata.hasVmId()); - // should pass through agentId -> hostname -> vmId -> vmUsername filters - FilterResult result = testMe.getReadFilter(desc, metadata); + FilterResult result = testMe.getReadFilter(desc); // should return query expression in order to allow only specific - // hostname + // hostname and specific agent id. Since the category does not + // include vmId, nothing is added by the vm id filter. assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); ExpressionFactory factory = new ExpressionFactory(); + Set<String> agentIdSet = new HashSet<>(); + agentIdSet.add(agentId); + Expression agentIdExp = factory.in(Key.AGENT_ID, agentIdSet, String.class); Set<String> hostnames = new HashSet<>(); hostnames.add(hostname); - Expression expected = factory.in(HostInfoDAO.hostNameKey, hostnames, String.class); + Expression hostnameExp = factory.in(HostInfoDAO.hostNameKey, hostnames, String.class); + Expression expected = factory.and(agentIdExp, hostnameExp); assertEquals(expected, actual); } @@ -287,14 +286,8 @@ testMe.setRoles(roles); StatementDescriptor<VmInfo> desc = new StatementDescriptor<>(VmInfoDAO.vmInfoCategory, "QUERY " + VmInfoDAO.vmInfoCategory.getName()); - // fake a query for a category with agentId attributes and vmId - // attributes present and also specific agentId/vmId present. - DescriptorMetadata metadata = new DescriptorMetadata(agentId, vmId); - assertTrue(metadata.hasAgentId()); - assertTrue(metadata.hasVmId()); - // should pass through agentId -> hostname -> vmId -> vmUsername filters - FilterResult result = testMe.getReadFilter(desc, metadata); + FilterResult result = testMe.getReadFilter(desc); // should return query expression in order to allow only specific // owning vm username. @@ -304,7 +297,15 @@ ExpressionFactory factory = new ExpressionFactory(); Set<String> usernames = new HashSet<>(); usernames.add(vmUserame); - Expression expected = factory.in(VmInfoDAO.usernameKey, usernames, String.class); + Expression userNameExp = factory.in(VmInfoDAO.usernameKey, usernames, String.class); + Set<String> agentIdSet = new HashSet<>(); + agentIdSet.add(agentId); + Expression agentIdExp = factory.in(Key.AGENT_ID, agentIdSet, String.class); + Set<String> vmIdSet = new HashSet<>(); + vmIdSet.add(vmId); + Expression vmIdExp = factory.in(Key.VM_ID, vmIdSet, String.class); + Expression lhs = factory.and(agentIdExp, vmIdExp); + Expression expected = factory.and(lhs, userNameExp); assertEquals(expected, actual); }
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/auth/VmIdFilterTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/auth/VmIdFilterTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -37,11 +37,9 @@ package com.redhat.thermostat.web.server.auth; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.util.HashSet; import java.util.Set; @@ -52,7 +50,6 @@ import com.redhat.thermostat.storage.core.Category; import com.redhat.thermostat.storage.core.Key; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.model.Pojo; import com.redhat.thermostat.storage.query.BinaryLogicalExpression; import com.redhat.thermostat.storage.query.BinarySetMembershipExpression; @@ -84,7 +81,7 @@ roles.add(vmIdReadAll); VmIdFilter<?> filter = new VmIdFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, null); + FilterResult result = filter.applyFilter(null, null); assertEquals(ResultType.ALL, result.getType()); assertEquals(null, result.getFilterExpression()); } @@ -98,36 +95,19 @@ ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); VmIdFilter<?> filter = new VmIdFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, parentExpression); + FilterResult result = filter.applyFilter(null, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertEquals(parentExpression, result.getFilterExpression()); } @Test public void addsVmIdInQuery() { - performVmIdQueryTest(new DescriptorMetadata()); - } - - /* - * We should not throw a NPE when the descriptor meta data is null. That is - * optional for filtering anyway and not all plugins may supply us with one. - */ - @Test - public void addsVmIdInQueryIfMetadataNull() { - try { - performVmIdQueryTest(null); - } catch (NullPointerException e) { - fail("Should not have thrown NPE"); - } - } - - private void performVmIdQueryTest(DescriptorMetadata metadata) { String vmId = UUID.randomUUID().toString(); Set<BasicRole> roles = new HashSet<>(); RolePrincipal vmIdRole = new RolePrincipal(VmIdFilter.VMS_BY_VM_ID_GRANT_ROLE_PREFIX + vmId); roles.add(vmIdRole); VmIdFilter<FooPojo> filter = new VmIdFilter<>(roles); - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_VM_ID, metadata, null); + FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_VM_ID, null); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -144,11 +124,10 @@ Set<BasicRole> roles = new HashSet<>(); RolePrincipal vmIdRole = new RolePrincipal(VmIdFilter.VMS_BY_VM_ID_GRANT_ROLE_PREFIX + vmId); roles.add(vmIdRole); - DescriptorMetadata metadata = new DescriptorMetadata(); VmIdFilter<FooPojo> filter = new VmIdFilter<>(roles); ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_VM_ID, metadata, parentExpression); + FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_VM_ID, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -170,9 +149,8 @@ RolePrincipal vm2Role = new RolePrincipal(VmIdFilter.VMS_BY_VM_ID_GRANT_ROLE_PREFIX + vmId2); roles.add(vm1Role); roles.add(vm2Role); - DescriptorMetadata metadata = new DescriptorMetadata(); VmIdFilter<FooPojo> filter = new VmIdFilter<>(roles); - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_VM_ID, metadata, null); + FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_VM_ID, null); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -185,33 +163,12 @@ } @Test - public void returnsEmptyIfVmIdDoesNotMatch() { - String vmId = UUID.randomUUID().toString(); - Set<BasicRole> roles = new HashSet<>(); - RolePrincipal vmIdRole = new RolePrincipal(VmIdFilter.VMS_BY_VM_ID_GRANT_ROLE_PREFIX + vmId); - roles.add(vmIdRole); - String wrongVmId = "something other than vmId"; - // assert precondition - assertFalse(vmId.equals(wrongVmId)); - - DescriptorMetadata metadata = new DescriptorMetadata(null, wrongVmId); - assertTrue(metadata.hasVmId()); - VmIdFilter<FooPojo> filter = new VmIdFilter<>(roles); - FilterResult result = filter.applyFilter(TEST_DESC_NON_NULL_VM_ID, metadata, null); - assertEquals(ResultType.EMPTY, result.getType()); - assertNull(result.getFilterExpression()); - } - - @Test public void returnsAllForUnrelatedQuery() { Set<BasicRole> roles = new HashSet<>(); - DescriptorMetadata metadata = new DescriptorMetadata(); - assertFalse(metadata.hasAgentId()); - assertFalse(metadata.hasVmId()); VmIdFilter<FooPojo> filter = new VmIdFilter<>(roles); // want to have a null retval of vmId - FilterResult result = filter.applyFilter(TEST_DESC_NULL_VM_ID, metadata, null); + FilterResult result = filter.applyFilter(TEST_DESC_NULL_VM_ID, null); assertEquals(ResultType.ALL, result.getType()); assertNull(result.getFilterExpression()); } @@ -222,12 +179,9 @@ ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); - DescriptorMetadata metadata = new DescriptorMetadata(); - assertFalse(metadata.hasAgentId()); - assertFalse(metadata.hasVmId()); VmIdFilter<FooPojo> filter = new VmIdFilter<>(roles); // want to have a null retval of vmId - FilterResult result = filter.applyFilter(TEST_DESC_NULL_VM_ID, metadata, parentExpression); + FilterResult result = filter.applyFilter(TEST_DESC_NULL_VM_ID, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); assertEquals(parentExpression, result.getFilterExpression());
--- a/web/server/src/test/java/com/redhat/thermostat/web/server/auth/VmUsernameFilterTest.java Tue Nov 25 14:41:25 2014 -0700 +++ b/web/server/src/test/java/com/redhat/thermostat/web/server/auth/VmUsernameFilterTest.java Wed Nov 26 11:56:35 2014 +0100 @@ -48,7 +48,6 @@ import com.redhat.thermostat.storage.core.Key; import com.redhat.thermostat.storage.core.StatementDescriptor; -import com.redhat.thermostat.storage.core.auth.DescriptorMetadata; import com.redhat.thermostat.storage.dao.AgentInfoDAO; import com.redhat.thermostat.storage.dao.VmInfoDAO; import com.redhat.thermostat.storage.model.AgentInformation; @@ -68,7 +67,7 @@ roles.add(vmUsernameReadAll); VmUsernameFilter<?> filter = new VmUsernameFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, null); + FilterResult result = filter.applyFilter(null, null); assertEquals(ResultType.ALL, result.getType()); assertEquals(null, result.getFilterExpression()); } @@ -82,22 +81,13 @@ ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); VmUsernameFilter<?> filter = new VmUsernameFilter<>(roles); - FilterResult result = filter.applyFilter(null, null, parentExpression); + FilterResult result = filter.applyFilter(null, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertEquals(parentExpression, result.getFilterExpression()); } @Test public void addsVmUsernameInQueryForVmInfo() { - performVmInfoTest(new DescriptorMetadata()); - } - - @Test - public void testMetadataNull() { - performVmInfoTest(null); - } - - private void performVmInfoTest(DescriptorMetadata metadata) { String testUsername = "fooBar"; Set<BasicRole> roles = new HashSet<>(); RolePrincipal vmUsernameRole = new RolePrincipal(VmUsernameFilter.VMS_BY_USERNAME_GRANT_ROLE_PREFIX + testUsername); @@ -109,7 +99,7 @@ usernames.add(testUsername); Expression expected = new ExpressionFactory().in(VmInfoDAO.usernameKey, usernames, String.class); VmUsernameFilter<VmInfo> filter = new VmUsernameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, null); + FilterResult result = filter.applyFilter(desc, null); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -124,7 +114,6 @@ RolePrincipal vmUsernameRole = new RolePrincipal(VmUsernameFilter.VMS_BY_USERNAME_GRANT_ROLE_PREFIX + testUsername); roles.add(vmUsernameRole); - DescriptorMetadata metadata = new DescriptorMetadata(); StatementDescriptor<VmInfo> desc = new StatementDescriptor<>(VmInfoDAO.vmInfoCategory, "QUERY " + VmInfoDAO.vmInfoCategory.getName()); Set<String> usernames = new HashSet<>(); @@ -134,7 +123,7 @@ Expression expectedIn = factory.in(VmInfoDAO.usernameKey, usernames, String.class); Expression expected = factory.and(parentExpression, expectedIn); VmUsernameFilter<VmInfo> filter = new VmUsernameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, parentExpression); + FilterResult result = filter.applyFilter(desc, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); Expression actual = result.getFilterExpression(); @@ -146,11 +135,10 @@ public void byPassesFilterForUnrelatedQuery() { Set<BasicRole> roles = new HashSet<>(); - DescriptorMetadata metadata = new DescriptorMetadata(); StatementDescriptor<AgentInformation> desc = new StatementDescriptor<>(AgentInfoDAO.CATEGORY, "QUERY " + AgentInfoDAO.CATEGORY.getName()); VmUsernameFilter<AgentInformation> filter = new VmUsernameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, null); + FilterResult result = filter.applyFilter(desc, null); assertEquals(ResultType.ALL, result.getType()); assertNull(result.getFilterExpression()); } @@ -159,13 +147,12 @@ public void byPassesFilterForUnrelatedQueryAndParentExpression() { Set<BasicRole> roles = new HashSet<>(); - DescriptorMetadata metadata = new DescriptorMetadata(); StatementDescriptor<AgentInformation> desc = new StatementDescriptor<>(AgentInfoDAO.CATEGORY, "QUERY " + AgentInfoDAO.CATEGORY.getName()); ExpressionFactory factory = new ExpressionFactory(); Expression parentExpression = factory.equalTo(Key.AGENT_ID, "testKey"); VmUsernameFilter<AgentInformation> filter = new VmUsernameFilter<>(roles); - FilterResult result = filter.applyFilter(desc, metadata, parentExpression); + FilterResult result = filter.applyFilter(desc, parentExpression); assertEquals(ResultType.QUERY_EXPRESSION, result.getType()); assertNotNull(result.getFilterExpression()); assertEquals(parentExpression, result.getFilterExpression());