Yevgeny Zaspitsky has uploaded a new change for review. Change subject: webadmin: Add managemenet network field to new/edit cluster dialog ......................................................................
webadmin: Add managemenet network field to new/edit cluster dialog Add managemenet network field to new/edit cluster dialog. Change-Id: I055babd6037f127235c349499f1545396e38333f Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.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/view/popup/cluster/ClusterPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml 7 files changed, 157 insertions(+), 20 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/37141/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index 0215c5b..baa912b 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -597,17 +597,30 @@ aQuery); } + public void getDefaultManagementNetwork(AsyncQuery aQuery, Guid networkId) { + aQuery.converterCallback = new AsIsAsyncConverter(); + Frontend.getInstance().runQuery( + VdcQueryType.GetDefaultManagementNetwork, + new IdQueryParameters(networkId), + aQuery); + } + + public void getManagementNetwork(AsyncQuery aQuery, Guid clusterId) { + aQuery.converterCallback = new AsIsAsyncConverter(); + Frontend.getInstance().runQuery( + VdcQueryType.GetManagementNetwork, + new IdQueryParameters(clusterId), + aQuery); + } + public void isManagementNetwork(AsyncQuery aQuery, Guid networkId) { - runBooleanQueryByEntityId(VdcQueryType.IsManagementNetwork, aQuery, networkId); + aQuery.converterCallback = new BooleanAsyncConverter(); + Frontend.getInstance().runQuery(VdcQueryType.IsManagementNetwork, new IdQueryParameters(networkId), aQuery); } public void isClusterEmpty(AsyncQuery aQuery, Guid clusterId) { - runBooleanQueryByEntityId(VdcQueryType.IsClusterEmpty, aQuery, clusterId); - } - - private void runBooleanQueryByEntityId(VdcQueryType queryType, AsyncQuery aQuery, Guid id) { aQuery.converterCallback = new BooleanAsyncConverter(); - Frontend.getInstance().runQuery(queryType, new IdQueryParameters(id), aQuery); + Frontend.getInstance().runQuery(VdcQueryType.IsClusterEmpty, new IdQueryParameters(clusterId), aQuery); } public void getHostArchitecture(AsyncQuery aQuery, Guid id) { @@ -3835,4 +3848,12 @@ return (Boolean) source; } } + + private static class AsIsAsyncConverter implements IAsyncConverter { + @Override + public Object Convert(Object source, AsyncQuery _asyncQuery) + { + return source; + } + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java index af8f429..2ee65bd 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java @@ -17,6 +17,7 @@ import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VmRngDevice; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -764,9 +765,20 @@ model.startProgress(null); - Frontend.getInstance().runAction(model.getIsNew() ? VdcActionType.AddVdsGroup : VdcActionType.UpdateVdsGroup, - model.getIsNew() ? new AddClusterOperationParameters(cluster) : - new VdsGroupOperationParameters(cluster), + final VdsGroupOperationParameters clusterOperationParameters; + final VdcActionType actionType; + if (model.getIsNew()) { + actionType = VdcActionType.AddVdsGroup; + final Network managementNetwork = model.getManagementNetwork().getSelectedItem(); + final Guid managementNetworkId = managementNetwork == null ? null : managementNetwork.getId(); + clusterOperationParameters = new AddClusterOperationParameters(cluster, managementNetworkId); + } else { + actionType = VdcActionType.UpdateVdsGroup; + clusterOperationParameters = new VdsGroupOperationParameters(cluster); + } + Frontend.getInstance().runAction( + actionType, + clusterOperationParameters, new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java index 662470ba..7b771bd 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterModel.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; @@ -16,6 +17,7 @@ import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VmRngDevice; +import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; @@ -35,9 +37,9 @@ import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicommonweb.models.FilteredListModel; import org.ovirt.engine.ui.uicommonweb.models.HasValidatedTabs; import org.ovirt.engine.ui.uicommonweb.models.ListModel; -import org.ovirt.engine.ui.uicommonweb.models.FilteredListModel; import org.ovirt.engine.ui.uicommonweb.models.TabName; import org.ovirt.engine.ui.uicommonweb.models.ValidationCompleteEvent; import org.ovirt.engine.ui.uicommonweb.models.vms.SerialNumberPolicyModel; @@ -208,6 +210,16 @@ public void setDataCenter(ListModel<StoragePool> value) { privateDataCenter = value; + } + + private ListModel<Network> managementNetwork; + + public void setManagementNetwork(ListModel<Network> managementNetwork) { + this.managementNetwork = managementNetwork; + } + + public ListModel<Network> getManagementNetwork() { + return managementNetwork; } private FilteredListModel<ServerCpu> privateCPU; @@ -1125,6 +1137,14 @@ setArchitecture(new ListModel<ArchitectureType>()); getArchitecture().setIsAvailable(ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)); + setManagementNetwork(new ListModel<Network>()); + if (isEdit) { + getManagementNetwork().setChangeProhibitionReason(ConstantsManager.getInstance() + .getConstants() + .prohibitManagementNetworkChangeInEditClusterInfoMessage()); + getManagementNetwork().setIsChangable(false); + } + setCPU(new FilteredListModel<ServerCpu>()); getCPU().setIsAvailable(ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly); getCPU().getSelectedItemChangedEvent().addListener(this); @@ -1293,29 +1313,90 @@ _asyncQuery.setModel(this); _asyncQuery.asyncCallback = new INewAsyncCallback() { @Override - public void onSuccess(Object model, Object result) - { + public void onSuccess(Object model, Object result) { ClusterModel clusterModel = (ClusterModel) model; - ArrayList<StoragePool> dataCenters = (ArrayList<StoragePool>) result; + List<StoragePool> dataCenters = (List<StoragePool>) result; clusterModel.getDataCenter().setItems(dataCenters); clusterModel.getDataCenter().setSelectedItem(null); - for (StoragePool a : dataCenters) - { - if (clusterModel.getEntity().getStoragePoolId() != null - && a.getId().equals(clusterModel.getEntity().getStoragePoolId())) - { - clusterModel.getDataCenter().setSelectedItem(a); + final Guid dataCenterId = clusterModel.getEntity().getStoragePoolId(); + for (StoragePool dataCenter : dataCenters) { + if (dataCenterId != null && dataCenter.getId().equals(dataCenterId)) { + clusterModel.getDataCenter().setSelectedItem(dataCenter); break; } } - clusterModel.getDataCenter().setIsChangable(clusterModel.getDataCenter().getSelectedItem() == null); + final StoragePool selectedDataCenter = clusterModel.getDataCenter().getSelectedItem(); + clusterModel.getDataCenter().setIsChangable(selectedDataCenter == null); clusterModel.setMigrateOnErrorOption(clusterModel.getEntity().getMigrateOnError()); + + final Guid selectedDataCenterId = selectedDataCenter == null ? null : selectedDataCenter.getId(); + if (getIsEdit()) { + loadCurrentClusteManagementNetwork(); + } else { + loadDcNetworks(selectedDataCenterId); + } } }; AsyncDataProvider.getInstance().getDataCenterList(_asyncQuery); + } + + private void loadCurrentClusteManagementNetwork() { + final AsyncQuery getManagementNetworkQuery = new AsyncQuery(this, new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + final ClusterModel clusterModel = (ClusterModel) model; + final Network managementNetwork = (Network) returnValue; + if (managementNetwork == null) { + setEmptyNetworkList(clusterModel); + } else { + clusterModel.getManagementNetwork().setItems(Collections.singletonList(managementNetwork)); + clusterModel.getManagementNetwork().setSelectedItem(managementNetwork); + } + } + }); + AsyncDataProvider.getInstance().getManagementNetwork(getManagementNetworkQuery, getClusterId()); + } + + private void setEmptyNetworkList(ClusterModel clusterModel) { + clusterModel.getManagementNetwork().setItems(Collections.<Network> emptyList()); + } + + private void loadDcNetworks(final Guid dataCenterId) { + if (dataCenterId == null) { + setEmptyNetworkList(this); + return; + } + final AsyncQuery getAllDataCenterNetworksQuery = new AsyncQuery(this, new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + final ClusterModel clusterModel = (ClusterModel) model; + final List<Network> dcNetworks = (List<Network>) returnValue; + clusterModel.getManagementNetwork().setItems(dcNetworks); + + final AsyncQuery getDefaultManagementNetworkQuery = + new AsyncQuery(clusterModel, new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + ClusterModel clusterModel = (ClusterModel) model; + Network defaultManagementNetwork = (Network) returnValue; + if (defaultManagementNetwork != null) { + for (Network network : dcNetworks) { + if (network.getId().equals(defaultManagementNetwork.getId())) { + clusterModel.getManagementNetwork().setSelectedItem(network); + break; + } + } + } + } + }); + AsyncDataProvider.getInstance() + .getDefaultManagementNetwork(getDefaultManagementNetworkQuery, dataCenterId); + } + }); + AsyncDataProvider.getInstance().getAllDataCenterNetworks(getAllDataCenterNetworksQuery, dataCenterId); } @Override @@ -1713,6 +1794,8 @@ } }; AsyncDataProvider.getInstance().getDataCenterVersions(_asyncQuery, selectedDataCenter.getId()); + + loadDcNetworks(selectedDataCenter.getId()); } private void clusterPolicyChanged() { diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java index 281c61a..31cce82 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java @@ -2461,4 +2461,7 @@ @DefaultStringValue("Click on Numa Pinning to configure VM's virtual node span on top of physical host NUMA nodes") String numaInfoMessage(); + + @DefaultStringValue("Changing management network is allowed through manage networks screen") + String prohibitManagementNetworkChangeInEditClusterInfoMessage(); } 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 35b7146..b26a36d 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 @@ -281,6 +281,9 @@ @DefaultStringValue("Comment") String commentLabel(); + @DefaultStringValue("Management Network") + String managementNetworkLabel(); + @DefaultStringValue("VM network") String vmNetworkLabel(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java index 929df12..69c3bed 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.java @@ -3,6 +3,7 @@ import org.ovirt.engine.core.common.businessentities.ArchitectureType; import org.ovirt.engine.core.common.businessentities.ServerCpu; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.core.common.scheduling.ClusterPolicy; import org.ovirt.engine.core.compat.Version; @@ -100,6 +101,11 @@ @Path(value = "comment.entity") @WithElementId StringEntityModelTextBoxEditor commentEditor; + + @UiField(provided = true) + @Path(value = "managementNetwork.selectedItem") + @WithElementId + ListModelListBoxEditor<Network> managementNetworkEditor; @UiField(provided = true) @Path(value = "CPU.selectedItem") @@ -441,6 +447,7 @@ nameEditor.setLabel(constants.clusterPopupNameLabel()); descriptionEditor.setLabel(constants.clusterPopupDescriptionLabel()); commentEditor.setLabel(constants.commentLabel()); + managementNetworkEditor.setLabel(constants.managementNetworkLabel()); cpuEditor.setLabel(constants.clusterPopupCPUTypeLabel()); architectureEditor.setLabel(constants.clusterPopupArchitectureLabel()); versionEditor.setLabel(constants.clusterPopupVersionLabel()); @@ -532,6 +539,13 @@ } }); + managementNetworkEditor = new ListModelListBoxEditor<Network>(new NullSafeRenderer<Network>() { + @Override + protected String renderNullSafe(Network network) { + return network.getName(); + } + }); + cpuEditor = new ListModelListBoxEditor<ServerCpu>(new NullSafeRenderer<ServerCpu>() { @Override public String renderNullSafe(ServerCpu object) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml index 23ce195..6177e73 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/ClusterPopupView.ui.xml @@ -167,6 +167,7 @@ <ge:StringEntityModelTextBoxEditor ui:field="nameEditor" /> <ge:StringEntityModelTextBoxEditor ui:field="descriptionEditor" /> <ge:StringEntityModelTextBoxEditor ui:field="commentEditor" /> + <e:ListModelListBoxEditor ui:field="managementNetworkEditor" /> <e:ListModelListBoxEditor ui:field="architectureEditor" /> <e:ListModelListBoxEditor ui:field="cpuEditor" /> <e:ListModelListBoxEditor ui:field="versionEditor" /> -- To view, visit http://gerrit.ovirt.org/37141 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I055babd6037f127235c349499f1545396e38333f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
