Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Re-assign roles when network is detached
......................................................................

webadmin: Re-assign roles when network is detached

When a network is detached from a cluster, we make sure to visibly
re-assign those roles to the management network.

Change-Id: I72a9b4a46a32014b31f8981fbe0e8750352dd80e
Bug-Url: https://bugzilla.redhat.com/1135785
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java
2 files changed, 56 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/54/32254/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java
index af12fac..a4b0b17 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterNetworkManageModel.java
@@ -11,7 +11,10 @@
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
+import org.ovirt.engine.ui.uicompat.Event;
+import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
+import org.ovirt.engine.ui.uicompat.IEventListener;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 
 public class ClusterNetworkManageModel extends ListModel<ClusterNetworkModel> {
@@ -22,6 +25,7 @@
     private boolean needsAttach;
     private boolean needsDetach;
     private boolean needsUpdate;
+    private ClusterNetworkModel managementNetwork;
 
     public ClusterNetworkManageModel(SearchableListModel<?> sourceListModel) {
         this.sourceListModel = sourceListModel;
@@ -35,6 +39,18 @@
         okCommand.setTitle(ConstantsManager.getInstance().getConstants().ok());
         okCommand.setIsDefault(true);
         getCommands().add(0, okCommand);
+
+        getItemsChangedEvent().addListener(new IEventListener<EventArgs>() {
+
+            @Override
+            public void eventRaised(Event<EventArgs> ev, Object sender, 
EventArgs args) {
+                for (ClusterNetworkModel model : getItems()) {
+                    if (model.isManagement()) {
+                        managementNetwork = model;
+                    }
+                }
+            }
+        });
     }
 
     public boolean isMultiCluster() {
@@ -52,11 +68,16 @@
         return null;
     }
 
-    public void setDisplayNetwork(ClusterNetworkModel model, boolean value){
-        if (!isMultiCluster()){
-            // Reset the old display
-            if (getDisplayNetwork()!= null){
-                getDisplayNetwork().setDisplayNetwork(!value);
+    public void setDisplayNetwork(ClusterNetworkModel model, boolean value) {
+        if (!isMultiCluster()) {
+            if (value) {
+                // Reset the old display
+                if (getDisplayNetwork() != null) {
+                    getDisplayNetwork().setDisplayNetwork(false);
+                }
+            } else {
+                // Set the management network as display
+                managementNetwork.setDisplayNetwork(true);
             }
         }
         model.setDisplayNetwork(value);
@@ -75,9 +96,14 @@
 
     public void setMigrationNetwork(ClusterNetworkModel model, boolean value) {
         if (!isMultiCluster()) {
-            // Reset the old migration
-            if (getMigrationNetwork() != null) {
-                getMigrationNetwork().setMigrationNetwork(!value);
+            if (value) {
+                // Reset the old migration
+                if (getMigrationNetwork() != null) {
+                    getMigrationNetwork().setMigrationNetwork(false);
+                }
+            } else {
+                // Set the management network as migration
+                managementNetwork.setMigrationNetwork(true);
             }
         }
         model.setMigrationNetwork(value);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java
index 8aae855..2cbffbc 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterManageNetworkPopupView.java
@@ -118,11 +118,16 @@
 
     private void changeIsAttached(ClusterNetworkModel clusterNetworkModel, 
Boolean value) {
         clusterNetworkModel.setAttached(value);
-        if (!value && clusterNetworkModel.isDisplayNetwork()) {
-            clusterNetworkModel.setDisplayNetwork(false);
-        }
-        if (!value && clusterNetworkModel.isRequired()) {
-            clusterNetworkModel.setRequired(false);
+        if (!value) {
+            if (clusterNetworkModel.isDisplayNetwork()) {
+                updateDisplayNetwork(clusterNetworkModel, false);
+            }
+            if (clusterNetworkModel.isMigrationNetwork()) {
+                updateMigrationNetwork(clusterNetworkModel, false);
+            }
+            if (clusterNetworkModel.isRequired()) {
+                clusterNetworkModel.setRequired(false);
+            }
         }
     }
 
@@ -326,20 +331,27 @@
     private final class MigrationNetworkIndicatorFieldUpdater implements 
FieldUpdater<ClusterNetworkModel, Boolean> {
         @Override
         public void update(int index, ClusterNetworkModel clusterNetworkModel, 
Boolean value) {
-
-            
networks.asEditor().flush().setMigrationNetwork(clusterNetworkModel, value);
-            refreshNetworksTable();
+            updateMigrationNetwork(clusterNetworkModel, value);
         }
+    }
+
+    private void updateMigrationNetwork(ClusterNetworkModel 
clusterNetworkModel, boolean value) {
+        networks.asEditor().flush().setMigrationNetwork(clusterNetworkModel, 
value);
+        refreshNetworksTable();
     }
 
     private final class DisplayNetworkIndicatorFieldUpdater implements 
FieldUpdater<ClusterNetworkModel, Boolean> {
         @Override
         public void update(int index, ClusterNetworkModel clusterNetworkModel, 
Boolean value) {
-            networks.asEditor().flush().setDisplayNetwork(clusterNetworkModel, 
value);
-            refreshNetworksTable();
+            updateDisplayNetwork(clusterNetworkModel, value);
         }
     }
 
+    private void updateDisplayNetwork(ClusterNetworkModel clusterNetworkModel, 
boolean value) {
+        networks.asEditor().flush().setDisplayNetwork(clusterNetworkModel, 
value);
+        refreshNetworksTable();
+    }
+
     private final static class DisplayNetworkIndicatorCheckboxColumn extends 
CheckboxColumn<ClusterNetworkModel> {
         private DisplayNetworkIndicatorCheckboxColumn(boolean 
multipleSelectionAllowed,
                 DisplayNetworkIndicatorFieldUpdater 
displayNetworkIndicatorFieldUpdater) {


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

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

Reply via email to