diff options
Diffstat (limited to 'integrity-audit')
4 files changed, 73 insertions, 54 deletions
diff --git a/integrity-audit/src/main/java/org/onap/policy/common/ia/DbAudit.java b/integrity-audit/src/main/java/org/onap/policy/common/ia/DbAudit.java index 0f354571..21bf5c8d 100644 --- a/integrity-audit/src/main/java/org/onap/policy/common/ia/DbAudit.java +++ b/integrity-audit/src/main/java/org/onap/policy/common/ia/DbAudit.java @@ -25,7 +25,10 @@ import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import java.util.Properties; +import java.util.Set; import javax.persistence.Table; @@ -111,7 +114,7 @@ public class DbAudit { } // Obtain all persistence class names for the PU we are auditing - HashSet<String> classNameSet = dbDAO.getPersistenceClassNames(); + Set<String> classNameSet = dbDAO.getPersistenceClassNames(); if(classNameSet == null || classNameSet.isEmpty()){ String msg = "DbAudit: For node " + resourceName + " Found no persistence class names"; @@ -139,7 +142,7 @@ public class DbAudit { * This is the map of mismatched entries indexed by className. For * each class name there is a list of mismatched entries */ - HashMap<String,HashSet<Object>> misMatchedMap = new HashMap<>(); + Map<String,Set<Object>> misMatchedMap = new HashMap<>(); // We need to keep track of how long the audit is taking long startTime = System.currentTimeMillis(); @@ -155,7 +158,7 @@ public class DbAudit { } // all instances of the class for myIae - HashMap<Object,Object> myEntries = dbDAO.getAllMyEntries(clazzName); + Map<Object,Object> myEntries = dbDAO.getAllMyEntries(clazzName); //get a map of the objects indexed by id. Does not necessarily have any entries if (logger.isDebugEnabled()) { @@ -184,7 +187,7 @@ public class DbAudit { theirProperties.put(IntegrityAuditProperties.NODE_TYPE, iae.getNodeType()); //get a map of the instances for their iae indexed by id - HashMap<Object,Object> theirEntries = dbDAO.getAllEntries(persistenceUnit, theirProperties, clazzName); + Map<Object,Object> theirEntries = dbDAO.getAllEntries(persistenceUnit, theirProperties, clazzName); if (logger.isDebugEnabled()) { logger.debug("dbAudit: For persistenceUnit=" + persistenceUnit + ", clazzName=" + clazzName @@ -197,9 +200,9 @@ public class DbAudit { * Collect the IDs for the class where a mismatch occurred. We will check * them again for all nodes later. */ - HashSet<Object> misMatchedKeySet = compareEntries(myEntries, theirEntries); + Set<Object> misMatchedKeySet = compareEntries(myEntries, theirEntries); if(!misMatchedKeySet.isEmpty()){ - HashSet<Object> misMatchedEntry = misMatchedMap.get(clazzName); + Set<Object> misMatchedEntry = misMatchedMap.get(clazzName); if(misMatchedEntry == null){ misMatchedMap.put(clazzName, misMatchedKeySet); }else{ @@ -259,8 +262,8 @@ public class DbAudit { } // all instances of the class for myIae - HashSet<Object> keySet = misMatchedMap.get(clazzName); - HashMap<Object,Object> myEntries = dbDAO.getAllMyEntries(clazzName, keySet); + Set<Object> keySet = misMatchedMap.get(clazzName); + Map<Object,Object> myEntries = dbDAO.getAllMyEntries(clazzName, keySet); //get a map of the objects indexed by id if (logger.isDebugEnabled()) { @@ -289,14 +292,14 @@ public class DbAudit { theirProperties.put(IntegrityAuditProperties.NODE_TYPE, iae.getNodeType()); //get a map of the instances for their iae indexed by id - HashMap<Object,Object> theirEntries = dbDAO.getAllEntries(persistenceUnit, theirProperties, clazzName, keySet); + Map<Object,Object> theirEntries = dbDAO.getAllEntries(persistenceUnit, theirProperties, clazzName, keySet); /* * Compare myEntries with theirEntries and get back a set of mismatched IDs. * Collect the IDs for the class where a mismatch occurred. We will now * write an error log for each. */ - HashSet<Object> misMatchedKeySet = compareEntries(myEntries, theirEntries); + Set<Object> misMatchedKeySet = compareEntries(myEntries, theirEntries); if(!misMatchedKeySet.isEmpty()){ String keysString = ""; for(Object key: misMatchedKeySet){ @@ -349,22 +352,29 @@ public class DbAudit { * @throws InterruptedException * @throws DbDaoTransactionException */ - public void dbAuditSimulate(String resourceName, String persistenceUnit) throws InterruptedException, - DbDaoTransactionException { + public void dbAuditSimulate(String resourceName, String persistenceUnit) throws DbAuditException { - logger.info("dbAuditSimulate: Starting audit simulation for resourceName=" - + resourceName + ", persistenceUnit=" + persistenceUnit); + try { + logger.info("dbAuditSimulate: Starting audit simulation for resourceName=" + + resourceName + ", persistenceUnit=" + persistenceUnit); - for (int i = 0; i < AuditThread.AUDIT_SIMULATION_ITERATIONS; i++) { - dbDAO.setLastUpdated(); - logger.info("dbAuditSimulate: i=" + i + ", sleeping " - + AuditThread.AUDIT_SIMULATION_SLEEP_INTERVAL + "ms"); - Thread.sleep(AuditThread.AUDIT_SIMULATION_SLEEP_INTERVAL); - } - - logger.info("dbAuditSimulate: Finished audit simulation for resourceName=" - + resourceName + ", persistenceUnit=" + persistenceUnit); + for (int i = 0; i < AuditThread.AUDIT_SIMULATION_ITERATIONS; i++) { + dbDAO.setLastUpdated(); + logger.info("dbAuditSimulate: i=" + i + ", sleeping " + + AuditThread.AUDIT_SIMULATION_SLEEP_INTERVAL + "ms"); + Thread.sleep(AuditThread.AUDIT_SIMULATION_SLEEP_INTERVAL); + } + logger.info("dbAuditSimulate: Finished audit simulation for resourceName=" + + resourceName + ", persistenceUnit=" + persistenceUnit); + + } catch(DbDaoTransactionException e) { + throw new DbAuditException(e); + + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new DbAuditException(e); + } } /** @@ -373,7 +383,7 @@ public class DbAudit { * @param theirEntries * @return */ - public HashSet<Object> compareEntries(HashMap<Object,Object> myEntries, HashMap<Object,Object> theirEntries){ + public Set<Object> compareEntries(Map<Object,Object> myEntries, Map<Object,Object> theirEntries){ /* * Compare the entries for the same key in each of the hashmaps. The comparison will be done by serializing the objects * (create a byte array) and then do a byte array comparison. The audit will walk the local repository hash map comparing @@ -385,8 +395,9 @@ public class DbAudit { * */ HashSet<Object> misMatchedKeySet = new HashSet<>(); - for(Object key: myEntries.keySet()){ - byte[] mySerializedEntry = SerializationUtils.serialize((Serializable) myEntries.get(key)); + for(Entry<Object, Object> ent: myEntries.entrySet()) { + Object key = ent.getKey(); + byte[] mySerializedEntry = SerializationUtils.serialize((Serializable) ent.getValue()); byte[] theirSerializedEntry = SerializationUtils.serialize((Serializable) theirEntries.get(key)); if(!Arrays.equals(mySerializedEntry, theirSerializedEntry)){ logger.debug("compareEntries: For myEntries.key=" + key + ", entries do not match"); @@ -396,9 +407,10 @@ public class DbAudit { } } //now compare it in the other direction to catch entries in their set that is not in my set - for(Object key: theirEntries.keySet()){ + for(Entry<Object, Object> ent: theirEntries.entrySet()) { + Object key = ent.getKey(); byte[] mySerializedEntry = SerializationUtils.serialize((Serializable) myEntries.get(key)); - byte[] theirSerializedEntry = SerializationUtils.serialize((Serializable) theirEntries.get(key)); + byte[] theirSerializedEntry = SerializationUtils.serialize((Serializable) ent.getValue()); if(!Arrays.equals(mySerializedEntry, theirSerializedEntry)){ logger.debug("compareEntries: For theirEntries.key=" + key + ", entries do not match"); misMatchedKeySet.add(key); diff --git a/integrity-audit/src/main/java/org/onap/policy/common/ia/DbDAO.java b/integrity-audit/src/main/java/org/onap/policy/common/ia/DbDAO.java index 99503854..b30c7730 100644 --- a/integrity-audit/src/main/java/org/onap/policy/common/ia/DbDAO.java +++ b/integrity-audit/src/main/java/org/onap/policy/common/ia/DbDAO.java @@ -24,7 +24,9 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Properties; +import java.util.Set; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; @@ -119,7 +121,7 @@ public class DbDAO { * @param className * @return */ - public HashMap<Object, Object> getAllMyEntries(String className) { + public Map<Object, Object> getAllMyEntries(String className) { logger.debug("getAllMyEntries: Entering, className=" + className); HashMap<Object, Object> resultMap = new HashMap<>(); @@ -152,7 +154,7 @@ public class DbDAO { * @param keySet * @return */ - public HashMap<Object, Object> getAllMyEntries(String className, HashSet<Object> keySet){ + public Map<Object, Object> getAllMyEntries(String className, Set<Object> keySet){ logger.debug("getAllMyEntries: Entering, className=" + className + ",\n keySet=" + keySet); @@ -180,7 +182,7 @@ public class DbDAO { * @param className * @return */ - public HashMap<Object,Object> getAllEntries(String persistenceUnit, Properties properties, String className){ + public Map<Object,Object> getAllEntries(String persistenceUnit, Properties properties, String className){ logger.debug("getAllEntries: Entering, persistenceUnit=" + persistenceUnit + ",\n className=" + className); @@ -221,7 +223,7 @@ public class DbDAO { * @return */ - public HashMap<Object,Object> getAllEntries(String persistenceUnit, Properties properties, String className, HashSet<Object> keySet){ + public Map<Object,Object> getAllEntries(String persistenceUnit, Properties properties, String className, Set<Object> keySet){ logger.debug("getAllEntries: Entering, persistenceUnit=" + persistenceUnit + ",\n properties= " + properties + ",\n className=" + className + ",\n keySet= " + keySet); EntityManagerFactory theEmf = Persistence.createEntityManagerFactory(persistenceUnit, properties); @@ -364,7 +366,7 @@ public class DbDAO { * getPersistenceClassNames() gets all the persistence class names. * @return */ - public HashSet<String> getPersistenceClassNames(){ + public Set<String> getPersistenceClassNames(){ logger.debug("DbDAO: getPersistenceClassNames() entry"); HashSet<String> returnList = new HashSet<>(); final Metamodel mm = emf.getMetamodel(); diff --git a/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbAuditCompareEntriesTest.java b/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbAuditCompareEntriesTest.java index d8388c58..3bedcb0b 100644 --- a/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbAuditCompareEntriesTest.java +++ b/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbAuditCompareEntriesTest.java @@ -26,7 +26,9 @@ import java.io.FileOutputStream; import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Properties; +import java.util.Set; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; @@ -129,7 +131,7 @@ public class DbAuditCompareEntriesTest { String className = null; //There is only one entry IntegrityAuditEntity, but we will check anyway - HashSet<String> classNameSet = dbDAO.getPersistenceClassNames(); + Set<String> classNameSet = dbDAO.getPersistenceClassNames(); for(String c : classNameSet){ if (c.equals("org.onap.policy.common.ia.jpa.IntegrityAuditEntity")){ className = c; @@ -175,7 +177,7 @@ public class DbAuditCompareEntriesTest { myEntries.put("pdp1", entry1); theirEntries.put("pdp1", entry2); - HashSet<Object> result = dbAudit.compareEntries(myEntries, theirEntries); + Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries); /* * Assert that there are no mismatches returned @@ -235,7 +237,7 @@ public class DbAuditCompareEntriesTest { myEntries.put("pdp1", entry1); theirEntries.put("pdp1", entry2); - HashSet<Object> result = dbAudit.compareEntries(myEntries, theirEntries); + Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries); /* * Assert that there was one mismatch @@ -322,7 +324,7 @@ public class DbAuditCompareEntriesTest { theirEntries.put("0", entry2); theirEntries.put("2", entry4); - HashSet<Object> mismatchResult = dbAudit.compareEntries(myEntries, theirEntries); + Set<Object> mismatchResult = dbAudit.compareEntries(myEntries, theirEntries); /* * Assert 3 mismatches/missing entries were found @@ -343,8 +345,8 @@ public class DbAuditCompareEntriesTest { dbDAO = new DbDAO(resourceName, persistenceUnit, properties); DbAudit dbAudit = new DbAudit(dbDAO); - HashSet<String> classNameSet = dbDAO.getPersistenceClassNames(); - HashSet<Object> mismatchResult = new HashSet<Object>(); + Set<String> classNameSet = dbDAO.getPersistenceClassNames(); + Set<Object> mismatchResult = new HashSet<Object>(); for(String c : classNameSet) { if (c.equals("org.onap.policy.common.ia.jpa.IntegrityAuditEntity")){ String resourceName1 = resourceName; @@ -537,10 +539,10 @@ public class DbAuditCompareEntriesTest { new DbDAO("pdp2", persistenceUnit, properties2); // Pull all entries and compare - HashSet<String> classNameSet = dbDAO.getPersistenceClassNames(); - HashMap<Object, Object> myEntries; - HashMap<Object, Object> theirEntries; - HashSet<Object> mismatchResult = new HashSet<Object>(); + Set<String> classNameSet = dbDAO.getPersistenceClassNames(); + Map<Object, Object> myEntries; + Map<Object, Object> theirEntries; + Set<Object> mismatchResult = new HashSet<Object>(); String className; for(String c : classNameSet) { className = c; @@ -572,7 +574,7 @@ public class DbAuditCompareEntriesTest { String className = null; //There is only one entry IntegrityAuditEntity, but we will check anyway - HashSet<String> classNameSet = dbDAO.getPersistenceClassNames(); + Set<String> classNameSet = dbDAO.getPersistenceClassNames(); for(String c : classNameSet){ if (c.equals("org.onap.policy.common.ia.test.jpa.IaTestEntity")){ className = c; @@ -608,7 +610,7 @@ public class DbAuditCompareEntriesTest { myEntries.put("0", iate); theirEntries.put("0", iate2); - HashSet<Object> result = dbAudit.compareEntries(myEntries, theirEntries); + Set<Object> result = dbAudit.compareEntries(myEntries, theirEntries); /* * Assert that there are no mismatches returned diff --git a/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbDAOTest.java b/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbDAOTest.java index 4fd51f6e..ac3bc587 100644 --- a/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbDAOTest.java +++ b/integrity-audit/src/test/java/org/onap/policy/common/ia/test/DbDAOTest.java @@ -20,7 +20,10 @@ package org.onap.policy.common.ia.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; /* * All JUnits are designed to run in the local development environment @@ -28,10 +31,11 @@ import static org.junit.Assert.*; * tasks. */ import java.util.Date; -import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Properties; +import java.util.Set; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; @@ -47,7 +51,6 @@ import javax.persistence.criteria.Root; import org.junit.After; import org.junit.Before; import org.junit.Test; - import org.onap.policy.common.ia.DbDAO; import org.onap.policy.common.ia.DbDaoTransactionException; import org.onap.policy.common.ia.IntegrityAuditProperties; @@ -487,7 +490,7 @@ public class DbDAOTest { try { // Obtain a hash with the persisted objects - HashMap<Object, Object> entries = d.getAllMyEntries("org.onap.policy.common.ia.jpa.IntegrityAuditEntity"); + Map<Object, Object> entries = d.getAllMyEntries("org.onap.policy.common.ia.jpa.IntegrityAuditEntity"); // Assert there were 3 entries for that class assertEquals(3, entries.size()); @@ -543,7 +546,7 @@ public class DbDAOTest { } // Obtain a hash with the persisted objects - HashMap<Object, Object> entries = d.getAllMyEntries("org.onap.policy.common.ia.jpa.IntegrityAuditEntity", resultSet); + Map<Object, Object> entries = d.getAllMyEntries("org.onap.policy.common.ia.jpa.IntegrityAuditEntity", resultSet); // Assert there were 3 entries for that class assertEquals(3, entries.size()); @@ -591,7 +594,7 @@ public class DbDAOTest { try { // Obtain a hash with the persisted objects - HashMap<Object, Object> entries = d.getAllEntries("integrityAuditPU", properties, "org.onap.policy.common.ia.jpa.IntegrityAuditEntity"); + Map<Object, Object> entries = d.getAllEntries("integrityAuditPU", properties, "org.onap.policy.common.ia.jpa.IntegrityAuditEntity"); // Assert there were 3 entries for that class assertEquals(3, entries.size()); @@ -647,7 +650,7 @@ public class DbDAOTest { } // Obtain a hash with the persisted objects - HashMap<Object, Object> entries = d.getAllEntries("integrityAuditPU", properties, "org.onap.policy.common.ia.jpa.IntegrityAuditEntity", resultSet); + Map<Object, Object> entries = d.getAllEntries("integrityAuditPU", properties, "org.onap.policy.common.ia.jpa.IntegrityAuditEntity", resultSet); // Assert there were 3 entries for that class assertEquals(3, entries.size()); @@ -695,7 +698,7 @@ public class DbDAOTest { try { // Obtain a hash with the persisted objects - HashMap<Object, Object> entries = d.getAllEntries(persistenceUnit, properties, "org.onap.policy.common.ia.jpa.IntegrityAuditEntity"); + Map<Object, Object> entries = d.getAllEntries(persistenceUnit, properties, "org.onap.policy.common.ia.jpa.IntegrityAuditEntity"); // Assert there were 3 entries for that class assertEquals(3, entries.size()); @@ -733,7 +736,7 @@ public class DbDAOTest { e.printStackTrace(); } // Retrieve persistence class names - HashSet<String> result = d.getPersistenceClassNames(); + Set<String> result = d.getPersistenceClassNames(); assertEquals(1, result.size()); } } |