Hello Greg Padgett,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/31771

to review the following change.

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

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

The REST API supported DHCP, Static IP, and None as NIC address types
for cloud-init VM startup.  Make the same available in the UI as well.

Change-Id: Ic51a76e968922fb62a07ccaced969c8b580de083
Bug-Url: https://bugzilla.redhat.com/1120092
Signed-off-by: Greg Padgett <[email protected]>
Signed-off-by: Moti Asayag <[email protected]>
(cherry picked from commit d5dafab5c906c65a2878dbefd0a4b2cb8f3a1534)
---
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, 43 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/71/31771/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 99fb311..1c46e07 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("Boot Protocol")
+    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("Choose boot protocol 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..7cd4953 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;
@@ -17,6 +18,7 @@
 import 
org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelPasswordBoxEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelTextAreaEditor;
 import 
org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelTextBoxEditor;
+import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer;
 import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer;
 import 
org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget;
 import org.ovirt.engine.ui.uicommonweb.models.vms.VmInitModel;
@@ -316,10 +318,10 @@
     @Ignore
     FlowPanel networkOptions;
 
-    @UiField
-    @Path(value = "networkDhcp.entity")
+    @UiField(provided = true)
+    @Path(value = "networkBootProtocolList.selectedItem")
     @WithElementId
-    EntityModelCheckBoxEditor networkDhcpEditor;
+    ListModelListBoxEditor<NetworkBootProtocol> networkBootProtocolEditor;
 
     @UiField
     @Path(value = "networkIpAddress.entity")
@@ -384,8 +386,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 +404,8 @@
             }
         });
 
+        networkBootProtocolEditor =
+                new ListModelListBoxEditor<NetworkBootProtocol>(new 
EnumRenderer<NetworkBootProtocol>());
     }
 
     void initComboBoxEditors() {
@@ -449,7 +452,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 +475,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 +509,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 +601,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() == 
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 d08da8f..d25d0b5 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
@@ -124,7 +124,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 57f94c9..d2788c9 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
@@ -311,12 +311,14 @@
         removeNetworkCommand = value;
     }
 
-    private EntityModel<Boolean> privateNetworkDhcp;
-    public EntityModel<Boolean> getNetworkDhcp() {
-        return privateNetworkDhcp;
+    private ListModel<NetworkBootProtocol> networkBootProtocolList;
+
+    public ListModel<NetworkBootProtocol> getNetworkBootProtocolList() {
+        return networkBootProtocolList;
     }
-    private void setNetworkDhcp(EntityModel<Boolean> value) {
-        privateNetworkDhcp = value;
+
+    private void setNetworkBootProtocolList(ListModel<NetworkBootProtocol> 
value) {
+        networkBootProtocolList = value;
     }
 
     private EntityModel<String> privateNetworkIpAddress;
@@ -480,7 +482,7 @@
         setNetworkEnabled(new EntityModel<Boolean>());
         setNetworkSelectedName(new EntityModel<String>());
         setNetworkList(new ListModel<String>());
-        setNetworkDhcp(new EntityModel<Boolean>());
+        setNetworkBootProtocolList(new ListModel<NetworkBootProtocol>());
         setNetworkIpAddress(new EntityModel<String>());
         setNetworkNetmask(new EntityModel<String>());
         setNetworkGateway(new EntityModel<String>());
@@ -565,6 +567,9 @@
                 }));
 
         isWindowsOS = vm != null ? 
AsyncDataProvider.isWindowsOsType(vm.getOsId()) : true;
+
+        
getNetworkBootProtocolList().setItems(Arrays.asList(NetworkBootProtocol.values()));
+        getNetworkBootProtocolList().setSelectedItem(NetworkBootProtocol.NONE);
 
         VmInit vmInit = (vm != null) ? vm.getVmInit() : null;
         if (vmInit != null) {
@@ -754,7 +759,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 +901,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 +1025,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());
                 obj.setIp(getNetworkIpAddress().getEntity());
                 obj.setNetmask(getNetworkNetmask().getEntity());
                 obj.setGateway(getNetworkGateway().getEntity());
@@ -1042,7 +1046,13 @@
             networkName = getNetworkList().getSelectedItem();
             obj = networkMap.get(networkName);
         }
-        getNetworkDhcp().setEntity(obj == null ? null : obj.getBootProtocol() 
== NetworkBootProtocol.DHCP);
+
+        if (obj == null || obj.getBootProtocol() == null) {
+            
getNetworkBootProtocolList().setSelectedItem(NetworkBootProtocol.NONE);
+        } else {
+            
getNetworkBootProtocolList().setSelectedItem(obj.getBootProtocol());
+        }
+
         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/31771
To unsubscribe, visit http://gerrit.ovirt.org/settings

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

Reply via email to