Kanagaraj M has uploaded a new change for review. Change subject: engine: allow deleting external alert ......................................................................
engine: allow deleting external alert Removed the code which disallow deleting the alerts pushed by external systems. Added test cases for RemoveExternalEventCommand. Change-Id: I82795bf60c8530fb42b858d44676e5a021213e59 Signed-off-by: Kanagaraj M <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveExternalEventCommand.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveExternalEventCommandTest.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java 3 files changed, 85 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/25924/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveExternalEventCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveExternalEventCommand.java index 358dad1..ee741c5 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveExternalEventCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveExternalEventCommand.java @@ -3,7 +3,6 @@ import java.util.List; import org.ovirt.engine.core.bll.utils.PermissionSubject; -import org.ovirt.engine.core.common.AuditLogSeverity; import org.ovirt.engine.core.common.action.RemoveExternalEventParameters; import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.errors.VdcBllMessages; @@ -20,15 +19,12 @@ @Override protected boolean canDoAction() { // check if such event exists - AuditLog event = DbFacade.getInstance().getAuditLogDao().get(getParameters().getId()); + AuditLog event = getAuditLogDao().get(getParameters().getId()); if (event == null) { return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_EVENT_NOT_FOUND); } if (OVIRT.equalsIgnoreCase(event.getOrigin())) { return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_EVENT_ILLEGAL_ORIGIN); - } - if (event.getseverity() == AuditLogSeverity.ALERT) { - return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_EVENT_ILLEGAL_OPERATION); } return true; diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveExternalEventCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveExternalEventCommandTest.java new file mode 100644 index 0000000..71e61eb --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveExternalEventCommandTest.java @@ -0,0 +1,78 @@ +package org.ovirt.engine.core.bll; + +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.ovirt.engine.core.common.action.RemoveExternalEventParameters; +import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.dao.AuditLogDAO; + +@RunWith(MockitoJUnitRunner.class) +public class RemoveExternalEventCommandTest { + + RemoveExternalEventCommand<RemoveExternalEventParameters> command; + + @Mock + private AuditLogDAO auditLogDAO; + + private static final String OVIRT_ORIGIN = "oVirt"; + private static final String EXTERNAL_ORIGIN = "External"; + + private static final long EVENT_ID_1 = 101; + private static final long EVENT_ID_2 = 102; + private static final long EVENT_ID_3 = 103; + + private void prepareMocks(RemoveExternalEventCommand<RemoveExternalEventParameters> command) { + doReturn(auditLogDAO).when(command).getAuditLogDao(); + doReturn(null).when(auditLogDAO).get(EVENT_ID_1); + doReturn(getEventWithOvirtOrigin()).when(auditLogDAO).get(EVENT_ID_2); + doReturn(getEventWithExternalOrigin()).when(auditLogDAO).get(EVENT_ID_3); + } + + private AuditLog getEventWithOvirtOrigin() { + AuditLog auditLog = new AuditLog(); + auditLog.setaudit_log_id(EVENT_ID_2); + auditLog.setOrigin(OVIRT_ORIGIN); + return auditLog; + } + + private AuditLog getEventWithExternalOrigin() { + AuditLog auditLog = new AuditLog(); + auditLog.setaudit_log_id(EVENT_ID_3); + auditLog.setOrigin(EXTERNAL_ORIGIN); + return auditLog; + } + + @Test + public void canDoActionFailsOnNonExistingEvent() { + command = + spy(new RemoveExternalEventCommand<RemoveExternalEventParameters>(new RemoveExternalEventParameters(EVENT_ID_1))); + prepareMocks(command); + CanDoActionTestUtils.runAndAssertCanDoActionFailure(command, + VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_EVENT_NOT_FOUND); + } + + @Test + public void canDoActionFailsOnRemovingEventWithOvirtOrigin() { + command = + spy(new RemoveExternalEventCommand<RemoveExternalEventParameters>(new RemoveExternalEventParameters(EVENT_ID_2))); + prepareMocks(command); + CanDoActionTestUtils.runAndAssertCanDoActionFailure(command, + VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_EVENT_ILLEGAL_ORIGIN); + } + + @Test + public void canDoActionSucceeds() { + command = + spy(new RemoveExternalEventCommand<RemoveExternalEventParameters>(new RemoveExternalEventParameters(EVENT_ID_3))); + prepareMocks(command); + assertTrue(command.canDoAction()); + } + +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java index c73a18d..0a4f752 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java @@ -22,8 +22,9 @@ import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; -import org.ovirt.engine.core.dao.DbGroupDAO; import org.ovirt.engine.core.dao.AsyncTaskDAO; +import org.ovirt.engine.core.dao.AuditLogDAO; +import org.ovirt.engine.core.dao.DbGroupDAO; import org.ovirt.engine.core.dao.DbUserDAO; import org.ovirt.engine.core.dao.PermissionDAO; import org.ovirt.engine.core.dao.RoleDAO; @@ -643,6 +644,10 @@ return getDbFacade().getProviderDao(); } + public AuditLogDAO getAuditLogDao() { + return getDbFacade().getAuditLogDao(); + } + protected DbFacade getDbFacade() { return DbFacade.getInstance(); } -- To view, visit http://gerrit.ovirt.org/25924 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I82795bf60c8530fb42b858d44676e5a021213e59 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Kanagaraj M <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
