Greg Padgett has uploaded a new change for review.

Change subject: webadmin: Allow selection of None for Cloud-Init network boot 
protocol
......................................................................

webadmin: Allow selection of None for Cloud-Init network boot protocol

Change-Id: Ic51a76e968922fb62a07ccaced969c8b580de083
Bug-Url: https://bugzilla.redhat.com/1120092
Signed-off-by: Greg Padgett <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.ui.xml
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
4 files changed, 59 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/51/31051/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
index 38fd447..2c08824 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
@@ -229,8 +229,8 @@
     @DefaultStringValue("Select network above")
     String cloudInitNetworkSelectLabel();
 
-    @DefaultStringValue("Use DHCP")
-    String cloudInitNetworkDhcpLabel();
+    @DefaultStringValue("Address Type")
+    String cloudInitNetworkBootProtocolLabel();
 
     @DefaultStringValue("IP Address")
     String cloudInitNetworkIpAddressLabel();
@@ -310,8 +310,8 @@
     @DefaultStringValue("Enter the name of a network interface, e.g. \"eth0\"")
     String cloudInitNetworkToolTip();
 
-    @DefaultStringValue("Enable to use DHCP on the selected network interface")
-    String cloudInitNetworkDhcpToolTip();
+    @DefaultStringValue("Select no address, DHCP, or Static IP for the 
selected network interface")
+    String cloudInitNetworkBootProtocolToolTip();
 
     @DefaultStringValue("Enter the IP address for the selected network 
interface")
     String cloudInitNetworkIpAddressToolTip();
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.java
index a808329..2c47689 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.java
@@ -2,6 +2,7 @@
 
 import java.util.Map;
 
+import 
org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol;
 import org.ovirt.engine.ui.common.CommonApplicationConstants;
 import org.ovirt.engine.ui.common.CommonApplicationResources;
 import org.ovirt.engine.ui.common.CommonApplicationTemplates;
@@ -316,10 +317,10 @@
     @Ignore
     FlowPanel networkOptions;
 
-    @UiField
-    @Path(value = "networkDhcp.entity")
+    @UiField(provided = true)
+    @Path(value = "networkBootProtocolList.selectedItem")
     @WithElementId
-    EntityModelCheckBoxEditor networkDhcpEditor;
+    ListModelListBoxEditor<Map.Entry<String, NetworkBootProtocol>> 
networkBootProtocolEditor;
 
     @UiField
     @Path(value = "networkIpAddress.entity")
@@ -384,8 +385,7 @@
 
     void initCheckBoxEditors() {
         networkEnabledEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
-        networkDhcpEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
-        networkStartOnBootEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
+        networkStartOnBootEditor = new EntityModelCheckBoxEditor(Align.LEFT);
     }
 
     void initListBoxEditors() {
@@ -403,6 +403,12 @@
             }
         });
 
+        networkBootProtocolEditor = new 
ListModelListBoxEditor<Map.Entry<String, NetworkBootProtocol>>(new 
NullSafeRenderer<Map.Entry<String, NetworkBootProtocol>>() {
+            @Override
+            protected String renderNullSafe(Map.Entry<String, 
NetworkBootProtocol> object) {
+                return object.getKey();
+            }
+        });
     }
 
     void initComboBoxEditors() {
@@ -449,7 +455,7 @@
         networkLabelSepAddRemove.setText(sep);
         networkRemoveLabel.setText(constants.cloudInitObjectRemoveLabel());
 
-        networkDhcpEditor.setLabel(constants.cloudInitNetworkDhcpLabel());
+        
networkBootProtocolEditor.setLabel(constants.cloudInitNetworkBootProtocolLabel());
         
networkIpAddressEditor.setLabel(constants.cloudInitNetworkIpAddressLabel());
         
networkNetmaskEditor.setLabel(constants.cloudInitNetworkNetmaskLabel());
         
networkGatewayEditor.setLabel(constants.cloudInitNetworkGatewayLabel());
@@ -472,7 +478,7 @@
 
         networkListEditor.setTitle(constants.cloudInitNetworkToolTip());
         networkNameEditor.setTitle(constants.cloudInitNetworkToolTip());
-        networkDhcpEditor.setTitle(constants.cloudInitNetworkDhcpToolTip());
+        
networkBootProtocolEditor.setTitle(constants.cloudInitNetworkBootProtocolToolTip());
         
networkIpAddressEditor.setTitle(constants.cloudInitNetworkIpAddressToolTip());
         
networkNetmaskEditor.setTitle(constants.cloudInitNetworkNetmaskToolTip());
         
networkGatewayEditor.setTitle(constants.cloudInitNetworkGatewayToolTip());
@@ -506,8 +512,11 @@
 
         
windowsSyspreptimeZoneEnabledEditor.addStyleName(customizableStyle.primaryOption());
         sysprepDomainEditor.addStyleName(customizableStyle.primaryOption());
+        
networkBootProtocolEditor.addStyleName(customizableStyle.primaryOption());
+        networkIpAddressEditor.addStyleName(customizableStyle.primaryOption());
+        networkNetmaskEditor.addStyleName(customizableStyle.primaryOption());
+        networkGatewayEditor.addStyleName(customizableStyle.primaryOption());
         
networkStartOnBootEditor.addStyleName(customizableStyle.primaryOption());
-        networkDhcpEditor.addStyleName(customizableStyle.primaryOption());
 
         
windowsSysprepTimeZoneEditor.addStyleName(customizableStyle.primaryOption());
         inputLocaleEditor.addStyleName(customizableStyle.primaryOption());
@@ -595,11 +604,11 @@
             }
         });
 
-        model.getNetworkDhcp().getEntityChangedEvent().addListener(new 
IEventListener() {
+        
model.getNetworkBootProtocolList().getSelectedItemChangedEvent().addListener(new
 IEventListener() {
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
-                
setNetworkStaticDetailsStyle(model.getNetworkDhcp().getEntity() == null
-                        || !model.getNetworkDhcp().getEntity());
+                
setNetworkStaticDetailsStyle(model.getNetworkBootProtocolList().getSelectedItem()
 == null
+                        || 
model.getNetworkBootProtocolList().getSelectedItem().getValue() == 
NetworkBootProtocol.STATIC_IP);
             }
         });
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.ui.xml
index 2910343..ebf2777 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.ui.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmInitWidget.ui.xml
@@ -129,7 +129,7 @@
                     <g:Label ui:field="networkRemoveLabel" />
                 </g:FlowPanel>
                 <g:FlowPanel ui:field="networkOptions" 
addStyleNames="{style.nestedOption}">
-                    <ge:EntityModelCheckBoxEditor ui:field="networkDhcpEditor" 
/>
+                    <e:ListModelListBoxEditor 
ui:field="networkBootProtocolEditor" />
                     <ge:StringEntityModelTextBoxEditor 
ui:field="networkIpAddressEditor" />
                     <ge:StringEntityModelTextBoxEditor 
ui:field="networkNetmaskEditor" />
                     <ge:StringEntityModelTextBoxEditor 
ui:field="networkGatewayEditor" />
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
index e8b0965..ee0605d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmInitModel.java
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -311,12 +312,12 @@
         removeNetworkCommand = value;
     }
 
-    private EntityModel<Boolean> privateNetworkDhcp;
-    public EntityModel<Boolean> getNetworkDhcp() {
-        return privateNetworkDhcp;
+    private ListModel<Map.Entry<String, NetworkBootProtocol>> 
privateNetworkBootProtocolList;
+    public ListModel<Map.Entry<String, NetworkBootProtocol>> 
getNetworkBootProtocolList() {
+        return privateNetworkBootProtocolList;
     }
-    private void setNetworkDhcp(EntityModel<Boolean> value) {
-        privateNetworkDhcp = value;
+    private void setNetworkBootProtocolList(ListModel<Map.Entry<String, 
NetworkBootProtocol>> value) {
+        privateNetworkBootProtocolList = value;
     }
 
     private EntityModel<String> privateNetworkIpAddress;
@@ -480,7 +481,7 @@
         setNetworkEnabled(new EntityModel<Boolean>());
         setNetworkSelectedName(new EntityModel<String>());
         setNetworkList(new ListModel<String>());
-        setNetworkDhcp(new EntityModel<Boolean>());
+        setNetworkBootProtocolList(new ListModel<Map.Entry<String, 
NetworkBootProtocol>>());
         setNetworkIpAddress(new EntityModel<String>());
         setNetworkNetmask(new EntityModel<String>());
         setNetworkGateway(new EntityModel<String>());
@@ -565,6 +566,19 @@
                 }));
 
         isWindowsOS = vm != null ? 
AsyncDataProvider.getInstance().isWindowsOsType(vm.getOsId()) : true;
+
+        Map<String, NetworkBootProtocol> networkBootProtocols = new 
HashMap<String, NetworkBootProtocol>();
+        networkBootProtocols.put("None", NetworkBootProtocol.NONE); 
//$NON-NLS-1$
+        networkBootProtocols.put("DHCP", NetworkBootProtocol.DHCP); 
//$NON-NLS-1$
+        networkBootProtocols.put("Static IP", NetworkBootProtocol.STATIC_IP); 
//$NON-NLS-1$
+        getNetworkBootProtocolList().setItems(networkBootProtocols.entrySet());
+        
getNetworkBootProtocolList().setSelectedItem(Linq.firstOrDefault(networkBootProtocols.entrySet(),
+                new IPredicate<Map.Entry<String, NetworkBootProtocol>>() {
+                    @Override
+                    public boolean match(Map.Entry<String, 
NetworkBootProtocol> item) {
+                        return item.getValue() == NetworkBootProtocol.NONE;
+                    }
+                }));
 
         VmInit vmInit = (vm != null) ? vm.getVmInit() : null;
         if (vmInit != null) {
@@ -754,7 +768,7 @@
                 String name = entry.getKey();
                 VmInitNetwork params = entry.getValue();
 
-                if (params.getBootProtocol() != NetworkBootProtocol.DHCP) {
+                if (params.getBootProtocol() == NetworkBootProtocol.STATIC_IP) 
{
                     if (!validateHidden(getNetworkList(), name, null,
                                     new IValidation[] { new 
AsciiNameValidation() })
                             || !validateHidden(getNetworkIpAddress(), 
params.getIp(), null,
@@ -896,7 +910,7 @@
             if (!networkMap.isEmpty()) {
                 for (Map.Entry<String, VmInitNetwork> entry : 
networkMap.entrySet()) {
                     VmInitNetwork params = entry.getValue();
-                    if (params.getBootProtocol() == NetworkBootProtocol.DHCP) {
+                    if (params.getBootProtocol() != 
NetworkBootProtocol.STATIC_IP) {
                         params.setIp(null);
                         params.setNetmask(null);
                         params.setGateway(null);
@@ -1020,8 +1034,7 @@
         if (lastSelectedNetworkName != null) {
             VmInitNetwork obj = networkMap.get(lastSelectedNetworkName);
             if (obj != null) {
-                obj.setBootProtocol((getNetworkDhcp().getEntity() != null && 
getNetworkDhcp().getEntity())
-                                    ? NetworkBootProtocol.DHCP : 
NetworkBootProtocol.STATIC_IP);
+                
obj.setBootProtocol(getNetworkBootProtocolList().getSelectedItem().getValue());
                 obj.setIp(getNetworkIpAddress().getEntity());
                 obj.setNetmask(getNetworkNetmask().getEntity());
                 obj.setGateway(getNetworkGateway().getEntity());
@@ -1042,7 +1055,17 @@
             networkName = getNetworkList().getSelectedItem();
             obj = networkMap.get(networkName);
         }
-        getNetworkDhcp().setEntity(obj == null ? null : obj.getBootProtocol() 
== NetworkBootProtocol.DHCP);
+
+        final NetworkBootProtocol bootProtocol = ((obj == null || 
obj.getBootProtocol() == null)
+                ? NetworkBootProtocol.NONE : obj.getBootProtocol());
+        
getNetworkBootProtocolList().setSelectedItem(Linq.firstOrDefault(getNetworkBootProtocolList().getItems(),
+                new IPredicate<Map.Entry<String, NetworkBootProtocol>>() {
+                    @Override
+                    public boolean match(Map.Entry<String, 
NetworkBootProtocol> item) {
+                        return item.getValue() == bootProtocol;
+                    }
+                }));
+
         getNetworkIpAddress().setEntity(obj == null ? null : obj.getIp());
         getNetworkNetmask().setEntity(obj == null ? null : obj.getNetmask());
         getNetworkGateway().setEntity(obj == null ? null : obj.getGateway());


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

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

Reply via email to