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
