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

Reply via email to