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, 47 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/23/33823/1 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 2a7238b..28ea54b 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 df1bf52..833789c 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 @@ -21,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; @@ -70,6 +71,9 @@ @Mock private StoragePool dataCenter; + @Mock + private ManagementNetworkUtil managementNetworkUtil; + private List<Network> networks = new ArrayList<Network>(); private NetworkValidator validator; @@ -80,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); @@ -398,4 +403,18 @@ when(network.getLabel()).thenReturn(RandomUtils.instance().nextPropertyString(10)); assertThat(validator.notLabeled(), failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED)); } + + @Test + 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 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: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
