Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: update NetworkValidator logic ......................................................................
engine: update NetworkValidator logic Update NetworkValidator and DetachNetworkValidator logic to use ManagementNetworkUtil in order to determine whether a Network is management or not. Change-Id: I2b9d4643c28c8ca90494ed774942a9dfe50c5e67 Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java 3 files changed, 41 insertions(+), 13 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/23/33823/15 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java index b41f760..a6566b5 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/DetachNetworkToVdsGroupCommand.java @@ -128,5 +128,12 @@ } return networkNotUsed(templatesUsingNetwork, VdcBllMessages.VAR__ENTITIES__VM_TEMPLATES); } + + @Override + protected boolean isManagementNetwork() { + return getManagementNetworkUtil().isManagementNetwork( + networkCluster.getNetworkId(), + networkCluster.getClusterId()); + } } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java index c6e4783..4766870 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java @@ -4,6 +4,8 @@ import java.util.List; import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil; +import org.ovirt.engine.core.bll.utils.Injector; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.businessentities.IscsiBond; import org.ovirt.engine.core.common.businessentities.Nameable; @@ -123,7 +125,7 @@ } /** - * @return An error iff the network's name is already used by another network in the same data center. + * @return An error if the network's name is already used by another network in the same data center. */ public ValidationResult networkNameNotUsed() { for (Network otherNetwork : getNetworks()) { @@ -137,10 +139,23 @@ } public ValidationResult notManagementNetwork() { - return NetworkUtils.isManagementNetwork(network) - ? new ValidationResult(VdcBllMessages.NETWORK_CANNOT_REMOVE_MANAGEMENT_NETWORK, - getNetworkNameReplacement()) - : ValidationResult.VALID; + final boolean isManagementNetwork = isManagementNetwork(); + return getManagementNetworkValidationResult(isManagementNetwork); + } + + protected boolean isManagementNetwork() { + return getManagementNetworkUtil().isManagementNetwork(network.getId()); + } + + private ValidationResult getManagementNetworkValidationResult(final boolean isManagementNetwork) { + return isManagementNetwork + ? new ValidationResult(VdcBllMessages.NETWORK_CANNOT_REMOVE_MANAGEMENT_NETWORK, + getNetworkNameReplacement()) + : ValidationResult.VALID; + } + + protected ManagementNetworkUtil getManagementNetworkUtil() { + return Injector.get(ManagementNetworkUtil.class); } public ValidationResult notIscsiBondNetwork() { @@ -154,7 +169,7 @@ return ValidationResult.VALID; } - private String getNetworkNameReplacement() { + protected String getNetworkNameReplacement() { return String.format("$NetworkName %s", network.getName()); } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java index 5bfb86e..c8a6b8e 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java @@ -1,6 +1,5 @@ package org.ovirt.engine.core.bll.validator; -import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; @@ -22,6 +21,7 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil; import org.ovirt.engine.core.common.businessentities.IscsiBond; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; @@ -71,6 +71,9 @@ @Mock private StoragePool dataCenter; + @Mock + private ManagementNetworkUtil managementNetworkUtil; + private List<Network> networks = new ArrayList<Network>(); private NetworkValidator validator; @@ -81,6 +84,7 @@ // spy on attempts to access the database validator = spy(new NetworkValidator(network)); doReturn(dbFacade).when(validator).getDbFacade(); + doReturn(managementNetworkUtil).when(validator).getManagementNetworkUtil(); // mock some commonly used DAOs when(dbFacade.getStoragePoolDao()).thenReturn(dataCenterDao); @@ -401,15 +405,17 @@ } @Test - public void testNotExternalNetworkFailsForExternalNetwork() throws Exception { - when(network.isExternal()).thenReturn(true); - assertThat(validator.notExternalNetwork(), failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NOT_SUPPORTED_FOR_EXTERNAL_NETWORK)); + public void testNotManagementNetworkPositive() { + when(network.getId()).thenReturn(DEFAULT_GUID); + when(managementNetworkUtil.isManagementNetwork(DEFAULT_GUID)).thenReturn(true); + assertThat(validator.notManagementNetwork(), failsWith(VdcBllMessages.NETWORK_CANNOT_REMOVE_MANAGEMENT_NETWORK)); } @Test - public void testNotExternalNetworkSucceedsForNonExternalNetwork() throws Exception { - when(network.isExternal()).thenReturn(false); - assertThat(validator.notExternalNetwork(), is(ValidationResult.VALID)); + public void testNotManagementNetworkNegative() { + when(network.getId()).thenReturn(DEFAULT_GUID); + when(managementNetworkUtil.isManagementNetwork(DEFAULT_GUID)).thenReturn(false); + assertThat(validator.notManagementNetwork(), isValid()); } } -- To view, visit http://gerrit.ovirt.org/33823 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2b9d4643c28c8ca90494ed774942a9dfe50c5e67 Gerrit-PatchSet: 15 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> Gerrit-Reviewer: Alona Kaplan <[email protected]> Gerrit-Reviewer: [email protected] Gerrit-Reviewer: oVirt Jenkins CI Server _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
