Muli Salem has uploaded a new change for review.

Change subject: webadmin: Alternative Installation Address (2)
......................................................................

webadmin: Alternative Installation Address (2)

This patch adds support for the above feature when adding
a new host. The text box of alternative installation address
is grayed out unless the relevant check box is ticked.

Change-Id: I9ef6559caf9aff3b5b768be27e501a0e7fe698ea
Signed-off-by: Muli Salem <msa...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterGuideModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.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/presenter/popup/host/HostPopupPresenterWidget.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
7 files changed, 121 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/68/13168/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterGuideModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterGuideModel.java
index 6974af5..b003680 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterGuideModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/DataCenterGuideModel.java
@@ -16,6 +16,7 @@
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.action.VdsGroupOperationParameters;
 import org.ovirt.engine.core.common.businessentities.ServerCpu;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainSharedStatus;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatic;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
@@ -26,7 +27,6 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
-import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.interfaces.SearchType;
 import org.ovirt.engine.core.common.queries.SearchParameters;
@@ -1629,6 +1629,7 @@
         addVdsParams.setVdsId(host.getId());
         addVdsParams.setvds(host);
         addVdsParams.setRootPassword((String) 
model.getRootPassword().getEntity());
+        addVdsParams.setInstallationAddress((String) 
model.getAlternativeInstallationAddress().getEntity());
 
         model.StartProgress(null);
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
index 3b8157a..85569f5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostListModel.java
@@ -834,6 +834,12 @@
             parameters.setVdsId(host.getId());
             parameters.setvds(host);
             parameters.setRootPassword((String) 
model.getRootPassword().getEntity());
+
+            if ((Boolean) 
model.getHasAlternativeInstallationAddress().getEntity())
+            {
+                parameters.setInstallationAddress((String) 
model.getAlternativeInstallationAddress().getEntity());
+            }
+
             parameters.setOverrideFirewall((Boolean) 
model.getOverrideIpTables().getEntity());
 
             Frontend.RunAction(VdcActionType.AddVds, parameters,
@@ -855,6 +861,7 @@
             parameters.setvds(host);
             parameters.setVdsId(host.getId());
             parameters.setRootPassword(""); //$NON-NLS-1$
+            parameters.setInstallationAddress(null);
             parameters.setInstallVds(false);
 
             if (!oldClusterId.equals(newClusterId))
@@ -1141,6 +1148,8 @@
             boolean isEditWithPMemphasis)
     {
         model.setHostId(vds.getId());
+        model.getHasAlternativeInstallationAddress().setIsAvailable(false);
+        model.getAlternativeInstallationAddress().setIsAvailable(false);
         model.getRootPassword().setIsAvailable(false);
         model.getOverrideIpTables().setIsAvailable(false);
         model.setSpmPriorityValue(vds.getVdsSpmPriority());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
index b50af8f..0bd72f7 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
@@ -165,6 +165,30 @@
         privatePort = value;
     }
 
+    private EntityModel privateHasAlternativeInstallationAddress;
+
+    public EntityModel getHasAlternativeInstallationAddress()
+    {
+        return privateHasAlternativeInstallationAddress;
+    }
+
+    private void setHasAlternativeInstallationAddress(EntityModel value)
+    {
+        privateHasAlternativeInstallationAddress = value;
+    }
+
+    private EntityModel privateAlternativeInstallationAddress;
+
+    public EntityModel getAlternativeInstallationAddress()
+    {
+        return privateAlternativeInstallationAddress;
+    }
+
+    private void setAlternativeInstallationAddress(EntityModel value)
+    {
+        privateAlternativeInstallationAddress = value;
+    }
+
     private EntityModel privateRootPassword;
 
     public EntityModel getRootPassword()
@@ -622,6 +646,10 @@
         getCluster().getSelectedItemChangedEvent().addListener(this);
         setPort(new EntityModel());
         setRootPassword(new EntityModel());
+        setAlternativeInstallationAddress(new EntityModel());
+        EntityModel hasAlternativeInstallationAddress = new EntityModel();
+        hasAlternativeInstallationAddress.setEntity(false);
+        
setHasAlternativeInstallationAddress(hasAlternativeInstallationAddress);
         setOverrideIpTables(new EntityModel());
         getOverrideIpTables().setEntity(false);
 
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 c3eb792..d7adcaf 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
@@ -388,6 +388,9 @@
     @DefaultStringValue("Root Password")
     String hostPopupRootPasswordLabel();
 
+    @DefaultStringValue("Alternative Installation Address")
+    String hostPopupAlternativeInstallationAddressLabel();
+
     @DefaultStringValue("Automatically configure host firewall")
     String hostPopupOverrideIpTablesLabel();
 
@@ -2578,4 +2581,7 @@
 
     @DefaultStringValue("Cluster Node Type")
     String clusterType();
+
+    @DefaultStringValue("Use if management address is not yet accessible, e.g. 
if it is over a VLAN")
+    String alternativeInstallationAddressHelpMessage();
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/host/HostPopupPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/host/HostPopupPresenterWidget.java
index 30ab218..514a861 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/host/HostPopupPresenterWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/host/HostPopupPresenterWidget.java
@@ -2,6 +2,7 @@
 
 import 
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
 import org.ovirt.engine.ui.common.widget.HasUiCommandClickHandlers;
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.HostModel;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
@@ -24,6 +25,8 @@
          */
         void showPowerManagement();
 
+        void setAlternativeInstallationAddressEnabled(Boolean isEnabled);
+
     }
 
     @Inject
@@ -37,7 +40,23 @@
 
         addTestButtonListener();
         addPowerManagementListener(model);
+        addAlternativeInstallationAddressListener(model);
+    }
 
+    private void addAlternativeInstallationAddressListener(HostModel model) {
+        Boolean hasAlternativeInstallationAddressValue =
+                (Boolean) 
model.getHasAlternativeInstallationAddress().getEntity();
+        
getView().setAlternativeInstallationAddressEnabled(hasAlternativeInstallationAddressValue);
+
+        
model.getHasAlternativeInstallationAddress().getEntityChangedEvent().addListener(new
 IEventListener() {
+            @Override
+            public void eventRaised(Event ev, Object sender, EventArgs args) {
+                EntityModel hasAlternativeInstallationAddressEntity = 
(EntityModel) sender;
+                Boolean hasAlternativeInstallationAddressValue =
+                        (Boolean) 
hasAlternativeInstallationAddressEntity.getEntity();
+                
getView().setAlternativeInstallationAddressEnabled(hasAlternativeInstallationAddressValue);
+            }
+        });
     }
 
     private void addPowerManagementListener(final HostModel model) {
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
index 0daac11..f145fb7 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.java
@@ -19,6 +19,7 @@
 import org.ovirt.engine.ui.common.widget.editor.EntityModelCheckBoxEditor;
 import org.ovirt.engine.ui.common.widget.editor.EntityModelPasswordBoxEditor;
 import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxEditor;
+import org.ovirt.engine.ui.common.widget.editor.EntityModelTextBoxOnlyEditor;
 import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor;
 import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxOnlyEditor;
 import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer;
@@ -47,6 +48,7 @@
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.ListBox;
 import com.google.gwt.user.client.ui.RadioButton;
@@ -103,6 +105,18 @@
     @Path(value = "host.entity")
     @WithElementId("host")
     EntityModelTextBoxEditor hostAddressEditor;
+
+    @UiField(provided = true)
+    @Path(value = "hasAlternativeInstallationAddress.entity")
+    public EntityModelCheckBoxEditor hasAlternativeInstallationAddressEditor;
+
+    @UiField(provided = true)
+    @Ignore
+    public InfoIcon alternativeInstallationAddressInfoIcon;
+
+    @UiField
+    @Path(value = "alternativeInstallationAddress.entity")
+    public EntityModelTextBoxOnlyEditor alternativeInstallationAddressEditor;
 
     @UiField
     @Path(value = "rootPassword.entity")
@@ -272,6 +286,9 @@
     @Path(value = "consoleAddressEnabled.entity")
     EntityModelCheckBoxEditor consoleAddressEnabled;
 
+    @UiField
+    protected HorizontalPanel alternativeInstallationAddressPanel;
+
     private final CommonApplicationTemplates applicationTemplates;
 
     private final ApplicationResources resources;
@@ -295,10 +312,15 @@
     private void initInfoIcon(ApplicationConstants constants) {
         consoleAddressInfoIcon =
                 new 
InfoIcon(applicationTemplates.italicText(constants.enableConsoleAddressOverrideHelpMessage()),
 resources); //$NON-NLS-1$
+        alternativeInstallationAddressInfoIcon =
+                new 
InfoIcon(applicationTemplates.italicText(constants.alternativeInstallationAddressHelpMessage()),
+                        resources);
     }
 
     private void addStyles() {
         
overrideIpTablesEditor.addContentWidgetStyleName(style.overrideIpStyle());
+        
hasAlternativeInstallationAddressEditor.addContentWidgetStyleName(style.hasAlternativeInstallationAddressEditorContent());
+        
alternativeInstallationAddressEditor.addContentWidgetStyleName(style.alternativeInstallationAddressEditorContent());
     }
 
     private void initEditors() {
@@ -340,6 +362,7 @@
 
         // Check boxes
         pmEnabledEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
+        hasAlternativeInstallationAddressEditor = new 
EntityModelCheckBoxEditor(Align.RIGHT);
     }
 
     void localize(ApplicationConstants constants) {
@@ -350,6 +373,7 @@
         nameEditor.setLabel(constants.hostPopupNameLabel());
         hostAddressEditor.setLabel(constants.hostPopupHostAddressLabel());
         rootPasswordEditor.setLabel(constants.hostPopupRootPasswordLabel());
+        
hasAlternativeInstallationAddressEditor.setLabel(constants.hostPopupAlternativeInstallationAddressLabel());
         
overrideIpTablesEditor.setLabel(constants.hostPopupOverrideIpTablesLabel());
 
         // Power Management tab
@@ -586,7 +610,16 @@
 
         String radioButton();
 
+        String hasAlternativeInstallationAddressEditorContent();
+
+        String alternativeInstallationAddressEditorContent();
+
         String overrideIpStyle();
     }
 
+    @Override
+    public void setAlternativeInstallationAddressEnabled(Boolean isEnabled) {
+        alternativeInstallationAddressEditor.setEnabled(isEnabled);
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
index 3b5d25d..8411a5b 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/host/HostPopupView.ui.xml
@@ -9,6 +9,9 @@
 
     <ui:with field='constants' 
type='org.ovirt.engine.ui.common.CommonApplicationConstants'/>
     <ui:style 
type="org.ovirt.engine.ui.webadmin.section.main.view.popup.host.HostPopupView.Style">
+
+    @external .gwt-CheckBox;
+
         .generalTabTopDecorator {
             background-color: #D3D3D3;
             margin-bottom: 8px;
@@ -100,6 +103,22 @@
             float: right;
             width: 230px;
         }
+
+               .hasAlternativeInstallationAddressEditorContent .gwt-CheckBox{
+                       padding: 0px !important;
+                       border-width: 0px !important;
+               }
+
+               .hasAlternativeInstallationAddressEditorContent {
+                       padding: 0px;
+               }
+
+               .alternativeInstallationAddressEditorContent {
+            float: right;
+            width: 230px;
+        }
+
+
     </ui:style>
 
     <d:SimpleDialogPanel width="650px" height="500px">
@@ -115,6 +134,11 @@
                                 </g:FlowPanel>
                                 <e:EntityModelTextBoxEditor 
ui:field="nameEditor"/>
                                 <e:EntityModelTextBoxEditor 
ui:field="hostAddressEditor"/>
+                                <g:HorizontalPanel 
ui:field="alternativeInstallationAddressPanel" width="100%">
+                                    <e:EntityModelCheckBoxEditor 
ui:field="hasAlternativeInstallationAddressEditor" />
+                                    <d:InfoIcon 
ui:field="alternativeInstallationAddressInfoIcon" />
+                                    <e:EntityModelTextBoxOnlyEditor 
ui:field="alternativeInstallationAddressEditor" />
+                                </g:HorizontalPanel>
                                 <e:EntityModelPasswordBoxEditor 
ui:field="rootPasswordEditor"/>
                                 <e:EntityModelCheckBoxEditor 
ui:field="overrideIpTablesEditor"/>
                             </g:FlowPanel>


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

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

Reply via email to