Alona Kaplan has uploaded a new change for review.

Change subject: webadmin: [Labels] SetupNetwork emphasize unconfigured interface
......................................................................

webadmin: [Labels] SetupNetwork emphasize unconfigured interface

Network which is in fact not attached to the interface (but has the same
label as the interface) looks like attached in Setup Networks dialog.

Change-Id: Ifa83ddfd2ceddc8f2227dcc8cc36c721baf8c7bc
Bug-Url: https://bugzilla.redhat.com/1067928
Bug-Url: https://bugzilla.redhat.com/1065270
Bug-Url: https://bugzilla.redhat.com/1068267
Signed-off-by: Alona Kaplan <[email protected]>
---
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/LogicalNetworkModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/ItemInfoPopup.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
7 files changed, 77 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/25459/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 104d798..235a046 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
@@ -6,6 +6,7 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -53,6 +54,7 @@
 import org.ovirt.engine.ui.uicompat.EventDefinition;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
+import org.ovirt.engine.ui.uicompat.UIMessages;
 
 /**
  * A Model for the Setup Networks Dialog<BR>
@@ -616,6 +618,8 @@
                     labelModel = new NetworkLabelModel(network.getLabel(), 
this);
                     labelMap.put(network.getLabel(), labelModel);
                 }
+                // The network model is candidate to be drawn as part of the 
label.
+                // This doesn't yet consider whether it actually exists on the 
interface.
                 labelModel.getNetworks().add(networkModel);
             }
         }
@@ -629,6 +633,7 @@
         Map<String, List<VdsNetworkInterface>> bondToNic = new HashMap<String, 
List<VdsNetworkInterface>>();
         Map<String, Set<LogicalNetworkModel>> nicToNetwork = new 
HashMap<String, Set<LogicalNetworkModel>>();
         Map<String, List<NetworkLabelModel>> nicToLabels = new HashMap<String, 
List<NetworkLabelModel>>();
+        List<LogicalNetworkModel> errorLabelNetworks = new 
ArrayList<LogicalNetworkModel>();
         labelToIface = new HashMap<String, String>();
 
         // map all nics
@@ -716,9 +721,16 @@
                     NetworkLabelModel labelModel = labelMap.get(label);
                     if (labelModel != null) {
                         // attach label networks to nic
-                        for (LogicalNetworkModel networkModel : 
labelModel.getNetworks()) {
-                            nicToNetwork.get(ifName).add(networkModel);
-                            networkModel.attachViaLabel();
+                        for (Iterator<LogicalNetworkModel> iter = 
labelModel.getNetworks().iterator(); iter.hasNext();) {
+                            LogicalNetworkModel networkModel = iter.next();
+
+                            if 
(nicToNetwork.get(ifName).contains(networkModel)) {
+                                networkModel.attachViaLabel();
+                            } else {
+                                // The network has the same label as the nic 
but not attached to the nic.
+                                iter.remove();
+                                errorLabelNetworks.add(networkModel);
+                            }
                         }
 
                         // attach label itself to nic
@@ -770,9 +782,27 @@
 
             nicModels.put(nicName, nicModel);
         }
+        initLabeledNetworksErrorMessages(errorLabelNetworks, nicModels);
         setNics(nicModels);
     }
 
+    private void initLabeledNetworksErrorMessages(List<LogicalNetworkModel> 
errorLabelNetworks, Map<String, NetworkInterfaceModel> nicModels){
+        for (LogicalNetworkModel networkModel : errorLabelNetworks){
+            NetworkInterfaceModel desiredNic = 
nicModels.get(labelToIface.get(networkModel.getEntity().getLabel()));
+            NetworkOperation operation = 
NetworkOperationFactory.operationFor(networkModel, desiredNic);
+            UIMessages messages = ConstantsManager.getInstance().getMessages();
+            // Should be attached but can't due to conflict
+            if (operation.isNullOperation()) {
+                
networkModel.setErrorMessage(messages.networkLabelConflict(desiredNic.getName(),
+                        networkModel.getEntity().getLabel())
+                        + " " + operation.getMessage(networkModel, 
desiredNic)); //$NON-NLS-1$
+            } else {
+                
networkModel.setErrorMessage(messages.labeledNetworkNotAttached(desiredNic.getName(),
+                        networkModel.getEntity().getLabel()));
+            }
+        }
+    }
+
     private void queryLabels() {
         
AsyncDataProvider.getNetworkLabelsByDataCenterId(getEntity().getStoragePoolId(),
 new AsyncQuery(new INewAsyncCallback() {
             @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/LogicalNetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/LogicalNetworkModel.java
index 01b8e75..ff2785d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/LogicalNetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/network/LogicalNetworkModel.java
@@ -20,6 +20,7 @@
     private boolean selected;
     private boolean management;
     private boolean attachedViaLabel;
+    private String errorMessage;
     private NetworkInterfaceModel attachedToNic;
     private NetworkInterfaceModel vlanNic;
 
@@ -213,6 +214,14 @@
         attachedViaLabel = true;
     }
 
+    public String getErrorMessage() {
+        return errorMessage;
+    }
+
+    public void setErrorMessage(String errorMessage) {
+        this.errorMessage = errorMessage;
+    }
+
     public boolean isManagement() {
         return management;
     }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
index d6e7aaa..69d9031 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIMessages.java
@@ -349,4 +349,10 @@
 
     @DefaultMessage("Active (Score: {0})")
     String haActive(int score);
+
+    @DefaultMessage("Network couldn''t be assigned to ''{0}'' via label 
''{1}''.")
+    String networkLabelConflict(String nicName, String labelName);
+
+    @DefaultMessage("Network should be assigned to ''{0}'' via label ''{1}''. 
However, for some reason it isn''t.")
+    String labeledNetworkNotAttached(String nicName, String labelName);
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
index bfcfea7..677d8e1 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
@@ -115,6 +115,10 @@
             + "<span style='position: relative; margin-left: 3px; 
margin-right: 3px; white-space: nowrap; height: 14px; line-height: 
14px;'>{1}</span></span>")
     SafeHtml imageTextSetupNetwork(SafeHtml image, String text);
 
+    @Template("<span><span style='position: relative; display: inline-block; 
vertical-align: top; height: 14px; line-height: 14px;'>{0}</span>"
+            + "<span style='position: relative; margin-left: 3px; 
margin-right: 3px; white-space: normal; height: 14px; line-height: 
14px;'>{1}</span></span>")
+    SafeHtml imageTextSetupNetwork(SafeHtml image, SafeHtml text);
+
     @Template("<div style='font-weight:bold; border-bottom-style:solid; 
border-bottom-width:1px; border-top-style:solid; border-top-width:1px; 
width:100%;'>{0}</div> ")
     SafeHtml titleSetupNetworkTooltip(String title);
 
@@ -159,4 +163,7 @@
 
     @Template("<div style='width:90%; display:inline-block; vertical-align: 
top;'>{0}</div>")
     SafeHtml radioButtonLabel(String text);
+
+    @Template("<div style='max-width: 250px; display:inline-block;'>{0}</div>")
+    SafeHtml maxWidthNteworkItemPopup(String text);
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
index ce98957..0d1e54f 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostSetupNetworksPopupView.java
@@ -182,7 +182,7 @@
         for (LogicalNetworkModel network : allNetworks) {
             if (network.getEntity().isExternal()) {
                 dynamicNetworkPanels.add(new ExternalNetworkPanel(network, 
style));
-            } else if (!network.isAttached() && !network.isAttachedViaLabel()) 
{
+            } else if (!network.isAttached()) {
                 staticNetworkPanels.add(new InternalNetworkPanel(network, 
style));
             }
         }
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 112383f..86c8ebb 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
@@ -9,6 +9,7 @@
 import 
org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkInterfaceModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkItemModel;
 import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationMessages;
 import org.ovirt.engine.ui.webadmin.ApplicationResources;
 import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
 import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
@@ -25,7 +26,8 @@
     private static final EnumRenderer<NetworkBootProtocol> RENDERER = new 
EnumRenderer<NetworkBootProtocol>();
     private final ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
     private final ApplicationTemplates templates = 
ClientGinjectorProvider.getApplicationTemplates();
-    final ApplicationResources resources = 
ClientGinjectorProvider.getApplicationResources();
+    private final ApplicationResources resources = 
ClientGinjectorProvider.getApplicationResources();
+    private final ApplicationMessages messages = 
ClientGinjectorProvider.getApplicationMessages();
     SafeHtml mgmtNetworkImage = 
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.mgmtNetwork())
             .getHTML());
     SafeHtml vmImage = 
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.networkVm()).getHTML());
@@ -38,6 +40,8 @@
             
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.questionMarkImage()).getHTML());
     SafeHtml notInSyncImage =
             
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.networkNotSyncImage()).getHTML());
+    SafeHtml alertImage =
+            
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resources.alertImage()).getHTML());
 
     public ItemInfoPopup() {
         super(true);
@@ -78,6 +82,9 @@
             
addRow(SafeHtmlUtils.fromString(constants.unmanagedNetworkDescriptionItemInfo()));
         }
         else {
+            if (networkModel.getErrorMessage() != null) {
+                addRow(templates.imageTextSetupNetwork(alertImage, 
templates.maxWidthNteworkItemPopup(networkModel.getErrorMessage())));
+            }
             // Description
             if (entity.getDescription() != null && 
!entity.getDescription().trim().equals("")) { //$NON-NLS-1$
                 addRow(SafeHtmlUtils.fromString(entity.getDescription()));
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
index de7efdf..2d52c70 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/panels/NetworkPanel.java
@@ -7,8 +7,10 @@
 
 import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Panel;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.user.client.ui.HTMLTable.ColumnFormatter;
 
@@ -37,6 +39,7 @@
         Image monitorImage;
         Image migrationImage;
         Image notSyncImage;
+        Image alertImage;
 
         if (!network.isManaged()) {
             monitorImage = null;
@@ -44,6 +47,7 @@
             vmImage = null;
             migrationImage = null;
             notSyncImage = null;
+            alertImage = null;
         } else {
             monitorImage = network.getEntity().getCluster().isDisplay() ?
                     new Image(resources.networkMonitor()) : null;
@@ -52,6 +56,7 @@
             migrationImage = network.getEntity().getCluster().isMigration() ?
                     new Image(resources.migrationNetwork()) : null;
             notSyncImage = !network.isInSync() ? new 
Image(resources.networkNotSyncImage()) : null;
+            alertImage = network.getErrorMessage() != null ? new 
Image(resources.alertImage()) : null;
 
             if (network.isManagement()) {
                 
mgmtNetworkImage.setStylePrimaryName(style.networkImageBorder());
@@ -75,7 +80,7 @@
         }
 
         Grid rowPanel = new Grid(1, 9);
-        rowPanel.setCellSpacing(3);
+        rowPanel.setCellSpacing(0);
         rowPanel.setWidth("100%"); //$NON-NLS-1$
         rowPanel.setHeight("100%"); //$NON-NLS-1$
 
@@ -86,9 +91,15 @@
 
         rowPanel.setWidget(0, 0, dragImage);
 
+        Panel statusPanel = new HorizontalPanel();
+        rowPanel.setWidget(0, 1, statusPanel);
+        if (alertImage != null) {
+            statusPanel.add(alertImage);
+        }
+
         ImageResource statusImage = getStatusImage();
         if (statusImage != null) {
-            rowPanel.setWidget(0, 1, new Image(statusImage));
+            statusPanel.add(new Image(statusImage));
         }
         Label titleLabel = new Label(getItemTitle());
         rowPanel.setWidget(0, 2, titleLabel);


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifa83ddfd2ceddc8f2227dcc8cc36c721baf8c7bc
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Alona Kaplan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to