void cleanupCampaigns(@NotNull CleanupPolicyType policy, Task task, OperationResult result) { if (policy.getMaxAge() != null) { cleanupCampaignsByDate(policy.getMaxAge(), task, result); } if (policy.getMaxRecords() != null) { cleanupCampaignsByNumber(policy.getMaxRecords(), task, result); } }
/** * Create an instance of {@link CleanupPolicyType } * */ public CleanupPolicyType createCleanupPolicyType() { return new CleanupPolicyType(); }
public CleanupPolicyType maxAge(Duration value) { setMaxAge(value); return this; }
public CleanupPolicyType clone() { CleanupPolicyType object = new CleanupPolicyType(); PrismContainerValue value = asPrismContainerValue().clone(); object.setupContainerValue(value); return object; }
@Override public void cleanupAudit(CleanupPolicyType policy, OperationResult parentResult) { Validate.notNull(policy, "Cleanup policy must not be null."); Validate.notNull(parentResult, "Operation result must not be null."); if (policy.getMaxAge() == null) { return; } Duration duration = policy.getMaxAge(); if (duration.getSign() > 0) { duration = duration.negate(); } long minValue = duration.getTimeInMillis(new Date()); Iterator<AuditEventRecord> iterator = records.iterator(); while (iterator.hasNext()) { AuditEventRecord record = iterator.next(); Long timestamp = record.getTimestamp(); if (timestamp == null) { continue; } if (timestamp < minValue) { iterator.remove(); } } }
@Test public void testAuditCleanup() throws Exception { //GIVEN if (DO_CREATE) { prepareAuditEventRecords(); } if (DO_CLEANUP) { //WHEN CleanupPolicyType policy = new CleanupPolicyType().maxRecords(1); OperationResult result = new OperationResult("Cleanup audit"); long cleanupStart = System.currentTimeMillis(); auditService.cleanupAudit(policy, result); long cleanupDuration = System.currentTimeMillis() - cleanupStart; System.out.println("Cleanup done in " + cleanupDuration + " ms (" + cleanupDuration / (RECORDS - 1) + " ms per record)"); result.recomputeStatus(); //THEN assertAuditEventRecord(result); } }
private CleanupPolicyType createPolicy(Calendar when, long now) throws Exception { CleanupPolicyType policy = new CleanupPolicyType(); Duration duration = createDuration(when, now); policy.setMaxAge(duration); return policy; }
private CleanupPolicyType createPolicy(int maxRecords) throws Exception { CleanupPolicyType policy = new CleanupPolicyType(); policy.setMaxRecords(Integer.valueOf(maxRecords)); return policy; }
CleanupPolicyType policy = new CleanupPolicyType().maxAge(XmlTypeConverter.createDuration("P1D")); certificationService.cleanupCampaigns(policy, task, result); result.computeStatus();
int attempt = 1; if (policy.getMaxRecords() == null) { return; Integer recordsToKeep = policy.getMaxRecords();
public CleanupPolicyType maxRecords(Integer value) { setMaxRecords(value); return this; }
@Test public void testAuditCleanupMaxAge() throws Exception { //GIVEN prepareAuditEventRecords(); //WHEN Calendar calendar = create_2013_07_12_12_00_Calendar(); calendar.add(Calendar.HOUR_OF_DAY, 1); calendar.add(Calendar.MINUTE, 1); final long NOW = System.currentTimeMillis(); CleanupPolicyType policy = createPolicy(calendar, NOW); OperationResult result = new OperationResult("Cleanup audit"); auditService.cleanupAudit(policy, result); result.recomputeStatus(); //THEN RAuditEventRecord record = assertAndReturnAuditEventRecord(result); Date finished = new Date(record.getTimestamp().getTime()); Date mark = new Date(NOW); Duration duration = policy.getMaxAge(); duration.addTo(mark); AssertJUnit.assertTrue("finished: " + finished + ", mark: " + mark, finished.after(mark)); }
@Test public void test900CleanupCampaignsDeny() throws Exception { final String TEST_NAME = "test900CleanupCampaignsDeny"; TestUtil.displayTestTitle(this, TEST_NAME); login(getUserFromRepo(USER_ELAINE_OID)); // GIVEN Task task = taskManager.createTaskInstance(TestCertificationBasic.class.getName() + "." + TEST_NAME); task.setOwner(userAdministrator.asPrismObject()); OperationResult result = task.getResult(); // WHEN+THEN TestUtil.displayWhen(TEST_NAME); CleanupPolicyType policy = new CleanupPolicyType().maxRecords(0); certificationService.cleanupCampaigns(policy, task, result); display("result", result); SearchResultList<PrismObject<AccessCertificationCampaignType>> campaigns = getAllCampaigns(result); display("campaigns", campaigns); }
private CleanupPolicyType createPolicy(Calendar when, long now) throws Exception { CleanupPolicyType policy = new CleanupPolicyType(); Duration duration = createDuration(when, now); policy.setMaxAge(duration); return policy; }
/** * Create an instance of {@link CleanupPolicyType } * */ public CleanupPolicyType createCleanupPolicyType() { return new CleanupPolicyType(); }
&& systemConfiguration.asObjectable().getCleanupPolicy().getObjectResults() != null) { CleanupPolicyType policy = systemConfiguration.asObjectable().getCleanupPolicy().getObjectResults(); recordsToKeep = policy.getMaxRecords(); if (recordsToKeep != null && recordsToKeep == 0) { LOGGER.trace("objectResults.recordsToKeep is 0, will skip storing operationExecutions"); keepNoExecutions = true; if (policy.getMaxAge() != null) { XMLGregorianCalendar limit = XmlTypeConverter.addDuration( XmlTypeConverter.createXMLGregorianCalendar(new Date()), policy.getMaxAge().negate()); deleteBefore = XmlTypeConverter.toMillis(limit); } else {
@Test public void test910CleanupCampaignsAllow() throws Exception { final String TEST_NAME = "test910CleanupCampaignsAllow"; TestUtil.displayTestTitle(this, TEST_NAME); login(getUserFromRepo(USER_ADMINISTRATOR_OID)); // GIVEN Task task = taskManager.createTaskInstance(TestCertificationBasic.class.getName() + "." + TEST_NAME); task.setOwner(userAdministrator.asPrismObject()); OperationResult result = task.getResult(); // WHEN+THEN TestUtil.displayWhen(TEST_NAME); CleanupPolicyType policy = new CleanupPolicyType().maxRecords(0); certificationService.cleanupCampaigns(policy, task, result); result.computeStatus(); display("result", result); assertSuccess(result); SearchResultList<PrismObject<AccessCertificationCampaignType>> campaigns = getAllCampaigns(result); display("campaigns", campaigns); assertEquals("Wrong # of remaining campaigns", 1, campaigns.size()); PrismObject<AccessCertificationCampaignType> remainingCampaign = campaigns.get(0); assertEquals("Wrong OID of the remaining campaign", roleInducementCampaignOid, remainingCampaign.getOid()); certificationManager.closeCampaign(roleInducementCampaignOid, true, task, result); certificationService.cleanupCampaigns(policy, task, result); result.computeStatus(); assertSuccess(result); SearchResultList<PrismObject<AccessCertificationCampaignType>> campaigns2 = getAllCampaigns(result); display("campaigns after 2nd cleanup", campaigns2); assertEquals("Wrong # of remaining campaigns", 0, campaigns2.size()); }
/** * Create an instance of {@link CleanupPolicyType } * */ public CleanupPolicyType createCleanupPolicyType() { return new CleanupPolicyType(); }