Yevgeny Zaspitsky has uploaded a new change for review. Change subject: webadmin: Allow a VM trunk network be mixed with VLAN tagged ones ......................................................................
webadmin: Allow a VM trunk network be mixed with VLAN tagged ones Allow a VM trunk network be mixed with VLAN tagged ones in Setup host networks dialog. Change-Id: Id31c89d360b3e50b85cc24811a84cf884008e9e0 Bug-Url: https://bugzilla.redhat.com/668847 Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java 3 files changed, 25 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/23/40923/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java index 0689602..5579f3c 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java @@ -160,7 +160,8 @@ CORSSupport, CORSAllowedOrigins, CinderProviderSupported, - NetworkSriovSupported; + NetworkSriovSupported, + NetworkExclusivenessPermissiveValidation; public static enum ConfigAuthType { Admin, diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index d0076c1..12ea46e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -80,8 +80,6 @@ import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.businessentities.network.VnicProfileView; import org.ovirt.engine.core.common.businessentities.qos.QosType; -import org.ovirt.engine.core.common.console.ConsoleOptions.WanDisableEffects; -import org.ovirt.engine.core.common.console.ConsoleOptions.WanColorDepth; import org.ovirt.engine.core.common.businessentities.storage.CinderVolumeType; import org.ovirt.engine.core.common.businessentities.storage.Disk; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; @@ -92,6 +90,8 @@ import org.ovirt.engine.core.common.businessentities.storage.StorageType; import org.ovirt.engine.core.common.businessentities.storage.VolumeFormat; import org.ovirt.engine.core.common.businessentities.storage.VolumeType; +import org.ovirt.engine.core.common.console.ConsoleOptions.WanColorDepth; +import org.ovirt.engine.core.common.console.ConsoleOptions.WanDisableEffects; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.core.common.queries.ArchCapabilitiesParameters; @@ -4093,4 +4093,9 @@ Frontend.getInstance().runQuery(VdcQueryType.GetCinderVolumeTypesByStorageDomainId, new IdQueryParameters(storageDomainId), aQuery); } + public boolean isNetworkExclusivenessPermissiveValidation(String version) { + return (Boolean) getConfigValuePreConverted( + ConfigurationValues.NetworkExclusivenessPermissiveValidation, + version); + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java index 0edef6f..9c99455 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java @@ -1,11 +1,16 @@ package org.ovirt.engine.ui.uicommonweb.models.hosts.network; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; + +import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.compat.Version; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; /** * A Factory responsible for providing Setup Network Operations for Network Items.<BR> @@ -127,6 +132,10 @@ networks.addAll(src.getNetworks()); } + final String hostMaxSupportedClusterVersion = gethostMaxSupportedClusterVersion(op1); + final boolean permissiveValidation = AsyncDataProvider.getInstance() + .isNetworkExclusivenessPermissiveValidation(hostMaxSupportedClusterVersion); + // go over the networks and check whether they comply, if not - the reason is important boolean vlanFound = false; String nonVlanVmNetwork = null; @@ -173,7 +182,7 @@ return NetworkOperation.NULL_OPERATION_BATCH_TOO_MANY_NON_VLANS; } } else { - if (nonVlanVmNetwork != null && vlanFound) { + if (!permissiveValidation && nonVlanVmNetwork != null && vlanFound) { if (op1 instanceof LogicalNetworkModel) { return NetworkOperation.NULL_OPERATION_VM_WITH_VLANS; } @@ -215,6 +224,12 @@ } + private static String gethostMaxSupportedClusterVersion(NetworkItemModel networkItemModel) { + final VDS host = networkItemModel.getSetupModel().getEntity(); + final Version maxVersion = Collections.max(host.getSupportedClusterVersionsSet()); + return maxVersion.getValue(); + } + private static boolean noValidOperationForFirstOperand(NetworkItemModel<?> op1) { // no valid operation for external networks or networks attached via label if (op1 instanceof LogicalNetworkModel) { -- To view, visit https://gerrit.ovirt.org/40923 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id31c89d360b3e50b85cc24811a84cf884008e9e0 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
