Skip to content

Commit 4574edd

Browse files
author
Daman Arora
committed
Remove alert history when a resource alert rule is removed
1 parent a8ef272 commit 4574edd

6 files changed

Lines changed: 27 additions & 0 deletions

File tree

‎plugins/resource-alerts/src/main/java/org/apache/cloudstack/resourcealert/ResourceAlertManagerImpl.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ public void evaluateRules() {
189189
for (ResourceAlertRuleVO rule : rules) {
190190
if (isOrphaned(rule)) {
191191
logger.info("Removing resource alert rule {} as its owner or resource no longer exists", rule.getUuid());
192+
alertDao.removeByAlertRuleId(rule.getId());
192193
ruleDao.remove(rule.getId());
193194
continue;
194195
}

‎plugins/resource-alerts/src/main/java/org/apache/cloudstack/resourcealert/ResourceAlertServiceImpl.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ public ResourceAlertRuleResponse updateResourceAlertRule(UpdateResourceAlertRule
214214
@ActionEvent(eventType = EventTypes.EVENT_RESOURCE_ALERT_RULE_DELETE, eventDescription = "deleting resource alert rule")
215215
public boolean deleteResourceAlertRule(DeleteResourceAlertRuleCmd cmd) {
216216
findRuleForCaller(cmd.getId());
217+
alertDao.removeByAlertRuleId(cmd.getId());
217218
return ruleDao.remove(cmd.getId());
218219
}
219220

‎plugins/resource-alerts/src/main/java/org/apache/cloudstack/resourcealert/dao/ResourceAlertDao.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,6 @@ Pair<List<ResourceAlertVO>, Integer> searchAndCountByFilters(List<Long> alertRul
3636
Date startDate, Date endDate, Long startIndex, Long pageSize);
3737

3838
int removeOlderThan(Date date);
39+
40+
int removeByAlertRuleId(long alertRuleId);
3941
}

‎plugins/resource-alerts/src/main/java/org/apache/cloudstack/resourcealert/dao/ResourceAlertDaoImpl.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,13 @@ public int removeOlderThan(Date date) {
5151
return expunge(sc);
5252
}
5353

54+
@Override
55+
public int removeByAlertRuleId(long alertRuleId) {
56+
SearchCriteria<ResourceAlertVO> sc = alertRuleIdSearch.create();
57+
sc.setParameters("alertRuleId", alertRuleId);
58+
return expunge(sc);
59+
}
60+
5461
@Override
5562
public List<ResourceAlertVO> listByAlertRuleId(long alertRuleId) {
5663
SearchCriteria<ResourceAlertVO> sc = alertRuleIdSearch.create();

‎plugins/resource-alerts/src/test/java/org/apache/cloudstack/resourcealert/ResourceAlertManagerImplTest.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,7 @@ public void testRuleRemovedWhenOwnerMissing() {
829829

830830
manager.evaluateRules();
831831

832+
verify(alertDao).removeByAlertRuleId(rule.getId());
832833
verify(ruleDao).remove(rule.getId());
833834
verify(userVmDao, never()).listIdsByAccountOrDomainsAndState(any(), any(), any());
834835
}

‎plugins/resource-alerts/src/test/java/org/apache/cloudstack/resourcealert/ResourceAlertServiceImplTest.java‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,21 @@ public void testDeleteDoesNotRemoveWhenCallerCannotAccessRule() {
303303
} catch (PermissionDeniedException expected) {
304304
}
305305
verify(ruleDao, never()).remove(1L);
306+
verify(alertDao, never()).removeByAlertRuleId(1L);
307+
}
308+
309+
@Test
310+
public void testDeleteRemovesAlertHistory() {
311+
DeleteResourceAlertRuleCmd cmd = mock(DeleteResourceAlertRuleCmd.class);
312+
when(cmd.getId()).thenReturn(1L);
313+
ResourceAlertRuleVO rule = mock(ResourceAlertRuleVO.class);
314+
when(ruleDao.findById(1L)).thenReturn(rule);
315+
when(ruleDao.remove(1L)).thenReturn(true);
316+
317+
service.deleteResourceAlertRule(cmd);
318+
319+
verify(alertDao).removeByAlertRuleId(1L);
320+
verify(ruleDao).remove(1L);
306321
}
307322

308323
@Test(expected = InvalidParameterValueException.class)

0 commit comments

Comments
 (0)