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

Reply via email to