Maor Lipchuk has uploaded a new change for review.

Change subject: core: Adding an existing block Storage Domain should be blocked
......................................................................

core: Adding an existing block Storage Domain should be blocked

Adding an existing Storage Domain should be blocked by a CDA message

Change-Id: Iba5194e4c87ba96a7482fa52b18a2e9812663c7e
Bug-Url: https://bugzilla.redhat.com/1148803
Signed-off-by: Maor Lipchuk <mlipc...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommandTest.java
2 files changed, 33 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/08/35508/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommand.java
index afb6cb7..34b40de 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommand.java
@@ -5,6 +5,7 @@
 
 import org.ovirt.engine.core.common.action.StorageDomainManagementParameter;
 import org.ovirt.engine.core.common.businessentities.LUNs;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.common.vdscommands.GetVGInfoVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
@@ -43,6 +44,9 @@
 
     @Override
     protected boolean canAddDomain() {
+        if (getStorageDomainStaticDAO().get(getStorageDomain().getId()) != 
null) {
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_ALREADY_EXIST);
+        }
         return true;
     }
 
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommandTest.java
index 8d7b4f6..148f52c 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/AddExistingBlockStorageDomainCommandTest.java
@@ -1,22 +1,29 @@
 package org.ovirt.engine.core.bll.storage;
 
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyList;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.List;
 
 import org.junit.Before;
 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.StorageDomainManagementParameter;
 import org.ovirt.engine.core.common.businessentities.LUNs;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.dao.StorageDomainStaticDAO;
 
 @RunWith(MockitoJUnitRunner.class)
 public class AddExistingBlockStorageDomainCommandTest {
@@ -24,11 +31,19 @@
     private 
AddExistingBlockStorageDomainCommand<StorageDomainManagementParameter> command;
     private StorageDomainManagementParameter parameters;
 
+    @Mock
+    private DbFacade dbFacade;
+
+    @Mock
+    private StorageDomainStaticDAO storageDomainStaticDAO;
+
     @Before
     public void setUp() {
         parameters = new StorageDomainManagementParameter(getStorageDomain());
         parameters.setVdsId(Guid.newGuid());
         command = spy(new AddExistingBlockStorageDomainCommand<>(parameters));
+        doReturn(dbFacade).when(command).getDbFacade();
+        
doReturn(storageDomainStaticDAO).when(command).getStorageDomainStaticDAO();
 
         doNothing().when(command).addStorageDomainInDb();
         doNothing().when(command).updateStorageDomainDynamicFromIrs();
@@ -37,11 +52,22 @@
 
     @Test
     public void testAddExistingBlockDomainSuccessfully() {
+        
when(command.getStorageDomainStaticDAO().get(any(Guid.class))).thenReturn(null);
         
when(command.getLUNsFromVgInfo(parameters.getStorageDomain().getStorage())).thenReturn(getLUNs());
         command.executeCommand();
         assertTrue(command.getReturnValue().getSucceeded());
     }
 
+    @Test
+    public void testAlreadyExistStorageDomain() {
+        
when(command.getStorageDomainStaticDAO().get(any(Guid.class))).thenReturn(getStorageDomain());
+        assertFalse("Storage Domain already exists", command.canAddDomain());
+        assertTrue("Import block Storage Domain should have failed due to 
already existing Storage Domain",
+                command.getReturnValue()
+                        .getCanDoActionMessages()
+                        
.contains(VdcBllMessages.ACTION_TYPE_FAILED_STORAGE_DOMAIN_ALREADY_EXIST.toString()));
+    }
+
     private static StorageDomainStatic getStorageDomain() {
         StorageDomainStatic storageDomain = new StorageDomainStatic();
         storageDomain.setStorage(Guid.newGuid().toString());


-- 
To view, visit http://gerrit.ovirt.org/35508
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iba5194e4c87ba96a7482fa52b18a2e9812663c7e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to