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