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