Skip to content

Commit

Permalink
Merge branch 'feature/rich-auditing' into feature/escalation
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Feb 14, 2017
2 parents 200adc7 + 224dfc2 commit c2c6af4
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 26 deletions.
Expand Up @@ -21,7 +21,9 @@
import com.evolveum.midpoint.repo.sql.data.audit.RAuditEventRecord;
import com.evolveum.midpoint.repo.sql.util.SimpleTaskAdapter;
import com.evolveum.midpoint.schema.ObjectDeltaOperation;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.xml.ns._public.common.common_3.CleanupPolicyType;
Expand Down Expand Up @@ -89,30 +91,29 @@ private CleanupPolicyType createPolicy(int maxRecords) throws Exception {
}

@AfterMethod
public void cleaup() {
Session session = getFactory().openSession();
try {
session.beginTransaction();
Query query = session.createQuery("delete from RObjectDeltaOperation");
query.executeUpdate();

query = session.createQuery("delete from RAuditEventRecord");
query.executeUpdate();

query = session.createQuery("select count(*) from " + RAuditEventRecord.class.getSimpleName());
Long count = (Long) query.uniqueResult();

AssertJUnit.assertEquals(0L, (long) count);
session.getTransaction().commit();
} finally {
session.close();
}
public void cleanup() {
Session session = getFactory().openSession();
try {
session.beginTransaction();
session.createQuery("delete from RObjectDeltaOperation").executeUpdate();
session.createQuery("delete from RAuditPropertyValue").executeUpdate();
session.createQuery("delete from RAuditReferenceValue").executeUpdate();
session.createQuery("delete from RAuditEventRecord").executeUpdate();

Query query = session.createQuery("select count(*) from " + RAuditEventRecord.class.getSimpleName());
Long count = (Long) query.uniqueResult();

AssertJUnit.assertEquals(0L, (long) count);
session.getTransaction().commit();
} finally {
session.close();
}
}

@Test
public void testAuditCleanupMaxAge() throws Exception {
//GIVEN
prepareAuditEventRecords();
prepareAuditEventRecords();

//WHEN
Calendar calendar = create_2013_07_12_12_00_Calendar();
Expand All @@ -127,15 +128,15 @@ public void testAuditCleanupMaxAge() throws Exception {
result.recomputeStatus();

//THEN
RAuditEventRecord record = assertAndReturnAuditEventRecord(result);
RAuditEventRecord record = assertAndReturnAuditEventRecord(result);

Date finished = new Date(record.getTimestamp().getTime());
Date finished = new Date(record.getTimestamp().getTime());

Date mark = new Date(NOW);
Duration duration = policy.getMaxAge();
duration.addTo(mark);
Date mark = new Date(NOW);
Duration duration = policy.getMaxAge();
duration.addTo(mark);

AssertJUnit.assertTrue("finished: " + finished + ", mark: " + mark, finished.after(mark));
AssertJUnit.assertTrue("finished: " + finished + ", mark: " + mark, finished.after(mark));
}

@Test
Expand Down Expand Up @@ -186,6 +187,8 @@ private void prepareAuditEventRecords() throws Exception {
AuditEventRecord record = new AuditEventRecord();
record.addDelta(createObjectDeltaOperation(i));
record.setTimestamp(timestamp);
record.addPropertyValue("prop1", "val1");
record.addReferenceValue("ref1", ObjectTypeUtil.createObjectRef("oid1", ObjectTypes.USER).asReferenceValue());
LOGGER.info("Adding audit record with timestamp {}", new Object[]{new Date(timestamp)});

auditService.audit(record, new SimpleTaskAdapter());
Expand Down
Expand Up @@ -464,11 +464,15 @@ private int batchDeletionAttempt(BiFunction<Session, String, Integer> recordsSel
int count = recordsSelector.apply(session, tempTable);
LOGGER.trace("Inserted {} audit record ids ready for deleting.", count);

// drop records from m_audit_item, m_audit_event, m_audit_delta
// drop records from m_audit_item, m_audit_event, m_audit_delta, and others
session.createSQLQuery(createDeleteQuery(RAuditItem.TABLE_NAME, tempTable,
RAuditItem.COLUMN_RECORD_ID)).executeUpdate();
session.createSQLQuery(createDeleteQuery(RObjectDeltaOperation.TABLE_NAME, tempTable,
RObjectDeltaOperation.COLUMN_RECORD_ID)).executeUpdate();
session.createSQLQuery(createDeleteQuery(RAuditPropertyValue.TABLE_NAME, tempTable,
RAuditPropertyValue.COLUMN_RECORD_ID)).executeUpdate();
session.createSQLQuery(createDeleteQuery(RAuditReferenceValue.TABLE_NAME, tempTable,
RAuditReferenceValue.COLUMN_RECORD_ID)).executeUpdate();
session.createSQLQuery(createDeleteQuery(RAuditEventRecord.TABLE_NAME, tempTable, "id"))
.executeUpdate();

Expand Down

0 comments on commit c2c6af4

Please sign in to comment.