Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Added QoS to Network dialog
......................................................................

webadmin: Added QoS to Network dialog

This to enable to attach a QoS configuration to a network, to be
carried over to host interfaces.

Change-Id: I26a7444eee1d5e3bd37d056a0faa080d8e7da1fe
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.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/AbstractNetworkPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
4 files changed, 58 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/22607/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
index 14a987e..885e4df 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
@@ -10,6 +10,7 @@
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
 import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfile;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.compat.Guid;
@@ -17,6 +18,7 @@
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -54,6 +56,7 @@
     private EntityModel privateHasMtu;
     private EntityModel privateMtu;
     private EntityModel privateIsVmNetwork;
+    private ListModel<NetworkQoS> qos;
     private boolean isSupportBridgesReportByVDSM = false;
     private boolean mtuOverrideSupported = false;
     private ListModel privateDataCenters;
@@ -139,6 +142,8 @@
         profiles.add(defaultProfile);
         getProfiles().setDefaultProfile(defaultProfile);
         getProfiles().setItems(profiles);
+
+        setQos(new ListModel<NetworkQoS>());
 
         // Update changeability according to initial values
         onExportChanged();
@@ -303,6 +308,14 @@
         privateIsVmNetwork = value;
     }
 
+    public ListModel<NetworkQoS> getQos() {
+        return qos;
+    }
+
+    private void setQos(ListModel<NetworkQoS> qos) {
+        this.qos = qos;
+    }
+
     public boolean isSupportBridgesReportByVDSM() {
         return isSupportBridgesReportByVDSM;
     }
@@ -442,8 +455,20 @@
 
         setMTUOverrideSupported(isMTUOverrideSupported);
 
-        onExportChanged();
+        AsyncQuery query = new AsyncQuery();
+        query.asyncCallback = new INewAsyncCallback() {
 
+            @Override
+            public void onSuccess(Object model, Object returnValue) {
+                Iterable<NetworkQoS> qos = (Iterable<NetworkQoS>) returnValue;
+                NetworkQoS selectedQos = getNetwork().getQos();
+                getQos().setItems(qos);
+                getQos().setSelectedItem(Linq.findNetworkQosById(qos, 
selectedQos == null ? null : selectedQos.getId()));
+            }
+        };
+        AsyncDataProvider.getAllNetworkQos(dc.getId(), query);
+
+        onExportChanged();
         getProfiles().updateDcId(dc.getId());
     }
 
@@ -486,6 +511,9 @@
         for (VnicProfileModel profileModel : getProfiles().getItems()) {
             profileModel.flush();
         }
+
+        NetworkQoS qos = getQos().getSelectedItem();
+        network.setQos(qos == NetworkQoSModel.getEmptyQos() ? null : qos);
     }
 
     protected abstract void executeSave();
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 863aa00..5cb8a89 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
@@ -212,6 +212,9 @@
     @DefaultStringValue("Override MTU")
     String overrideMtuLabel();
 
+    @DefaultStringValue("Quality of Service")
+    String qos();
+
     @DefaultStringValue("Name")
     String nameClusterHeader();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
index 63a1dc3..7224913 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
@@ -4,6 +4,7 @@
 
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
 import org.ovirt.engine.ui.common.idhandler.WithElementId;
 import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
 import org.ovirt.engine.ui.common.widget.Align;
@@ -113,6 +114,10 @@
     public EntityModelTextBoxOnlyEditor mtuEditor;
 
     @UiField(provided = true)
+    @Path(value = "qos.selectedItem")
+    public ListModelListBoxEditor<NetworkQoS> qosEditor;
+
+    @UiField(provided = true)
     @Ignore
     public final EntityModelCellTable<ListModel> clustersTable;
 
@@ -167,6 +172,12 @@
                 return ((Provider) object).getName();
             }
         });
+        qosEditor = new ListModelListBoxEditor<NetworkQoS>(new 
NullSafeRenderer<NetworkQoS>() {
+            @Override
+            protected String renderNullSafe(NetworkQoS qos) {
+                return qos.getName();
+            }
+        });
         exportEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
         exportEditor.asCheckBox().addValueChangeHandler(new 
ValueChangeHandler<Boolean>() {
 
@@ -205,6 +216,7 @@
         isVmNetworkEditor.setLabel(constants.vmNetworkLabel());
         vlanTagging.setLabel(constants.enableVlanTagLabel());
         hasMtuEditor.setLabel(constants.overrideMtuLabel());
+        qosEditor.setLabel(constants.qos());
 
         profilesLabel.setText(constants.profilesLabel());
     }
@@ -212,12 +224,15 @@
    protected void addStyles() {
         vlanTag.addContentWidgetStyleName(style.valueBox());
         mtuEditor.addContentWidgetStyleName(style.valueBox());
+        qosEditor.addContentWidgetStyleName(style.valueBox());
         isVmNetworkEditor.addContentWidgetStyleName(style.checkBox());
         isVmNetworkEditor.asCheckBox().addStyleName(style.checkBox());
         vlanTagging.addContentWidgetStyleName(style.checkBox());
         vlanTagging.asCheckBox().addStyleName(style.checkBox());
         hasMtuEditor.addContentWidgetStyleName(style.checkBox());
         hasMtuEditor.asCheckBox().addStyleName(style.checkBox());
+        qosEditor.addLabelStyleName(style.checkBox());
+        qosEditor.addLabelStyleName(style.qosLabel());
     }
 
     @Override
@@ -386,6 +401,8 @@
         String valueBox();
 
         String checkBox();
+
+        String qosLabel();
     }
 
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
index ad4a2d8..fcff767 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
@@ -51,6 +51,14 @@
                        padding: 5px;
                }
 
+               .qosStyle {
+                       float: left;
+               }
+
+               .qosLabel {
+                       display: inline-block;
+               }
+
        </ui:style>
 
        <d:SimpleDialogPanel ui:field="mainPanel" width="780px" height="550px">
@@ -84,6 +92,7 @@
                                                                                
<e:EntityModelCheckBoxEditor ui:field="hasMtuEditor"/>
                                                                                
<e:EntityModelTextBoxOnlyEditor ui:field="mtuEditor" />
                                                                        
</g:HorizontalPanel>
+                                                                       
<e:ListModelListBoxEditor ui:field="qosEditor" 
addStyleNames="{style.dependentField} {style.qosStyle}" />
                                                                </g:FlowPanel>
                                                        </g:FlowPanel>
                         </t:content>


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I26a7444eee1d5e3bd37d056a0faa080d8e7da1fe
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