Alona Kaplan has uploaded a new change for review.

Change subject: webadmin- Bond with unmanaged network(#840825)
......................................................................

webadmin- Bond with unmanaged network(#840825)

https://bugzilla.redhat.com/840825

when creating a bond-
1. nic + bond -
  1.1 nic contains unmanaged networks- action blocked
  1.2 bond contains unmanaged networks- action permitted
2. nic1 + nic2-
nic1 or nic2 contains unmanaged networks- action blocked


Change-Id: I95995e21e2c6b2ad5c8a1b224ecdd6ee2cebf084
Signed-off-by: Alona Kaplan <alkap...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperationFactory.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
6 files changed, 82 insertions(+), 75 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/7166/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
index 89e69ca..7dd980c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
@@ -466,11 +466,13 @@
         getNetworksChangedEvent().raise(this, EventArgs.Empty);
     }
 
-    private LogicalNetworkModel createErrorNetworkModel(String networkName, 
Integer vlanId) {
-        Network errorNetwork = new Network();
-        errorNetwork.setname(networkName);
-        errorNetwork.setvlan_id(vlanId);
-        LogicalNetworkModel networkModel = new 
LogicalNetworkModel(errorNetwork, this);
+    private LogicalNetworkModel createUnmanagedNetworkModel(String 
networkName, VdsNetworkInterface nic) {
+        Network unmanagedNetwork = new Network();
+        unmanagedNetwork.setname(networkName);
+        unmanagedNetwork.setvlan_id(nic.getVlanId());
+        unmanagedNetwork.setMtu(nic.getMtu());
+        unmanagedNetwork.setVmNetwork(nic.isBridged());
+        LogicalNetworkModel networkModel = new 
LogicalNetworkModel(unmanagedNetwork, this);
         
networkModel.setError(ConstantsManager.getInstance().getConstants().thisNetworkDoesNotExistInTheClusterErr());
         networkMap.put(networkName, networkModel);
         return networkModel;
@@ -519,7 +521,6 @@
         Map<String, VdsNetworkInterface> physicalNics = new HashMap<String, 
VdsNetworkInterface>();
         Map<String, List<String>> bondToNic = new HashMap<String, 
List<String>>();
         Map<String, List<String>> nicToNetwork = new HashMap<String, 
List<String>>();
-        Map<String, Integer> networkToVlanId = new HashMap<String, Integer>();
 
         // map all nics
         for (VdsNetworkInterface nic : allNics) {
@@ -559,12 +560,13 @@
                 LogicalNetworkModel networkModel = networkMap.get(networkName);
 
                 if (networkModel == null) {
-                    networkModel = createErrorNetworkModel(networkName, 
nic.getVlanId());
+                    networkModel = createUnmanagedNetworkModel(networkName, 
nic);
                 }else{
-                    // The real vlanId and mtu configured on the host can be 
not synced with the values configured in the networks table (dc networks).
+                    // The real vlanId, isBridged and mtu configured on the 
host can be not synced with the values configured in the networks table (dc 
networks).
                     // The real values configured on the host should be 
displayed.
                     networkModel.getEntity().setvlan_id(nic.getVlanId());
                     networkModel.getEntity().setMtu(nic.getMtu());
+                    networkModel.getEntity().setVmNetwork(nic.isBridged());
                 }
 
                 // is this a management network (from backend)?
@@ -572,7 +574,6 @@
                     networkModel.setManagement(true);
                 }
 
-                networkToVlanId.put(networkName, vlanId);
                 // bridge name is either <nic>, <nic.vlanid> or <bond.vlanid>
                 String ifName;
                 if (dotpos > 0) {
@@ -608,13 +609,8 @@
             List<String> networkNames = nicToNetwork.get(nicName);
             if (networkNames != null) {
                 for (String networkName : networkNames) {
-                    Integer vlanId = networkToVlanId.get(networkName);
                     LogicalNetworkModel networkModel;
                     networkModel = networkMap.get(networkName);
-                    if (networkModel == null) {
-                        // the network does not exist in this cluster
-                        networkModel = createErrorNetworkModel(networkName, 
vlanId);
-                    }
                     nicNetworks.add(networkModel);
                 }
             }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java
index e4bb049..f028ac7 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/NetworkOperation.java
@@ -178,12 +178,12 @@
                     BondNetworkInterfaceModel bond = 
(BondNetworkInterfaceModel) op2;
 
                     assert nic.getItems().size() == 0 || 
bond.getItems().size() == 0;
-                    List<LogicalNetworkModel> networks = nic.getItems().size() 
!= 0 ? new ArrayList<LogicalNetworkModel>(nic.getItems()) : new 
ArrayList<LogicalNetworkModel>(bond.getItems());
 
                     // detach possible networks from the nic
                     clearNetworks(nic, allNics);
 
                     // Attach previous networks to bond
+                    List<LogicalNetworkModel> networks = new 
ArrayList<LogicalNetworkModel>(nic.getItems());
                     attachNetworks(bond, networks, allNics);
 
                     nic.getEntity().setBondName(bond.getEntity().getName());
@@ -237,21 +237,6 @@
             return true;
         }
 
-        @Override
-        protected NetworkOperationCommandTarget getTarget() {
-            return new NetworkOperationCommandTarget() {
-
-                @Override
-                protected void ExecuteNetworkCommand(NetworkItemModel<?> op1,
-                        NetworkItemModel<?> op2,
-                        List<VdsNetworkInterface> allNics,
-                        Object... params) {
-                    // NOOP
-
-                }
-            };
-        }
-
     },
     NULL_OPERATION_BOND {
 
@@ -268,21 +253,6 @@
         @Override
         public boolean isNullOperation() {
             return true;
-        }
-
-        @Override
-        protected NetworkOperationCommandTarget getTarget() {
-            return new NetworkOperationCommandTarget() {
-
-                @Override
-                protected void ExecuteNetworkCommand(NetworkItemModel<?> op1,
-                        NetworkItemModel<?> op2,
-                        List<VdsNetworkInterface> allNics,
-                        Object... params) {
-                    // NOOP
-
-                }
-            };
         }
 
     },
@@ -302,19 +272,38 @@
             return true;
         }
 
+    },
+    NULL_OPERATION_ADD_TO_BOND_UNMANAGED {
+
         @Override
-        protected NetworkOperationCommandTarget getTarget() {
-            return new NetworkOperationCommandTarget() {
+        public String getVerb(NetworkItemModel<?> op1) {
+            return 
ConstantsManager.getInstance().getConstants().cannotAddNicWithUnmanagedNetworkToBond();
+        }
+        @Override
+        public String getMessage(NetworkItemModel<?> op1, NetworkItemModel<?> 
op2) {
+            return getVerb(op1);
+        }
 
-                @Override
-                protected void ExecuteNetworkCommand(NetworkItemModel<?> op1,
-                        NetworkItemModel<?> op2,
-                        List<VdsNetworkInterface> allNics,
-                        Object... params) {
-                    // NOOP
+        @Override
+        public boolean isNullOperation() {
+            return true;
+        }
 
-                }
-            };
+    },
+    NULL_OPERATION_BOND_WITH_UNMANAGED {
+
+        @Override
+        public String getVerb(NetworkItemModel<?> op1) {
+            return 
ConstantsManager.getInstance().getConstants().cannotCreateBondIfNicsContainsUnmanagedNetwork();
+        }
+        @Override
+        public String getMessage(NetworkItemModel<?> op1, NetworkItemModel<?> 
op2) {
+            return getVerb(op1);
+        }
+
+        @Override
+        public boolean isNullOperation() {
+            return true;
         }
 
     };
@@ -405,7 +394,19 @@
     /**
      * Implement to provide a Command Target for this Operation
      */
-    protected abstract NetworkOperationCommandTarget getTarget();
+    protected NetworkOperationCommandTarget getTarget(){
+        return new NetworkOperationCommandTarget() {
+
+            @Override
+            protected void ExecuteNetworkCommand(NetworkItemModel<?> op1,
+                    NetworkItemModel<?> op2,
+                    List<VdsNetworkInterface> allNics,
+                    Object... params) {
+                // NOOP
+
+            }
+        };
+    }
 
     public boolean isNullOperation(){
         return false;
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 6b8b01d..e372a5b 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
@@ -62,9 +62,9 @@
                 BondNetworkInterfaceModel bond = (BondNetworkInterfaceModel) 
op2;
                 if (!nic1.isBonded()) {
 
-                    boolean containsUnmanaged = containsUnmanaged(nic1) || 
containsUnmanaged(bond);
+                    boolean containsUnmanaged = containsUnmanaged(nic1);
                     if (containsUnmanaged){
-                        return NetworkOperation.NULL_OPERATION_UNMANAGED;
+                        return 
NetworkOperation.NULL_OPERATION_ADD_TO_BOND_UNMANAGED;
                     }
 
                     if (canBond(nic1, bond)) {
@@ -81,7 +81,7 @@
 
                     boolean containsUnmanaged = containsUnmanaged(nic1) || 
containsUnmanaged(nic2);
                     if (containsUnmanaged){
-                        return NetworkOperation.NULL_OPERATION_UNMANAGED;
+                        return 
NetworkOperation.NULL_OPERATION_BOND_WITH_UNMANAGED;
                     }
 
                     if (canBond(nic1, nic2)) {
@@ -106,7 +106,7 @@
                 NetworkInterfaceModel nic = (NetworkInterfaceModel) op2;
 
                 // not managed
-                if (!network.isManaged() || containsUnmanaged(nic)) {
+                if (!network.isManaged()) {
                     return NetworkOperation.NULL_OPERATION_UNMANAGED;
                 }
 
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
index b6112cc..ecec63a 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
@@ -1468,6 +1468,12 @@
     @DefaultStringValue("Invalid operation with unmanaged network: unmanaged 
network can only be detached")
     String invalidOperationWithUnmanagedNetwork();
 
+    @DefaultStringValue("Cannot add nic with unmanaged network/s to a bond")
+    String cannotAddNicWithUnmanagedNetworkToBond();
+
+    @DefaultStringValue("Cannot create a bond if one of the nics contains 
unmanaged network/s")
+    String cannotCreateBondIfNicsContainsUnmanagedNetwork();
+
     @DefaultStringValue("Unassigned Logical Networks panel")
     String unassignedLogicalNetworksPanel();
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index 44b801c..16bdd53 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -1901,6 +1901,9 @@
     @DefaultStringValue("Unmanaged Network")
     String unmanagedNetworkItemInfo();
 
+    @DefaultStringValue("Doesn't exist in the Cluster")
+    String unmanagedNetworkDescriptionItemInfo();
+
     @DefaultStringValue("Management")
     String managementItemInfo();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
index 72e47d7..fcd5801 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
@@ -71,30 +71,31 @@
 
         // Not managed
         if (!networkModel.isManaged()) {
-            addRow(templates.imageTextSetupNetworkUsage(unknownImage, 
constants.unmanagedNetworkItemInfo()));
-            return;
+            addRow(templates.imageTextSetupNetwork(unknownImage, 
constants.unmanagedNetworkItemInfo()));
+            
addRow(SafeHtmlUtils.fromString(constants.unmanagedNetworkDescriptionItemInfo()));
+        }
+        else {
+            // Description
+            if (entity.getdescription() != null && 
!entity.getdescription().trim().equals("")) { //$NON-NLS-1$
+                addRow(SafeHtmlUtils.fromString(entity.getdescription()));
+            }
+            // Not in sync
+            if (!networkModel.isInSync())
+            {
+                addRow(templates.imageTextSetupNetwork(notInSyncImage, 
constants.networkNotInSync()));
+            }
         }
 
-        // Description
-        if (entity.getdescription() != null && 
!entity.getdescription().trim().equals("")) { //$NON-NLS-1$
-            addRow(SafeHtmlUtils.fromString(entity.getdescription()));
-        }
-
-        // Not in sync
-        if (!networkModel.isInSync())
-        {
-            addRow(templates.imageTextSetupNetwork(notInSyncImage, 
constants.networkNotInSync()));
-        }
-
+        boolean isDisplay = entity.getCluster() != null ? 
entity.getCluster().getis_display() : false;
         // Usages
-        if (networkModel.isManagement() || entity.getCluster().getis_display() 
|| entity.isVmNetwork()) {
+        if (networkModel.isManagement() || isDisplay || entity.isVmNetwork()) {
 
             addRow(SafeHtmlUtils.fromString(constants.usageItemInfo() + ":")); 
//$NON-NLS-1$
             if (networkModel.isManagement()) {
                 addRow(templates.imageTextSetupNetworkUsage(mgmtNetworkImage, 
constants.managementItemInfo()));
             }
 
-            if (entity.getCluster().getis_display()) {
+            if (isDisplay) {
                 addRow(templates.imageTextSetupNetworkUsage(monitorImage, 
constants.displayItemInfo()));
             }
 


--
To view, visit http://gerrit.ovirt.org/7166
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I95995e21e2c6b2ad5c8a1b224ecdd6ee2cebf084
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alona Kaplan <alkap...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to