Lior Vernia has uploaded a new change for review. Change subject: webadmin: Moved provider discovery logic to popup ......................................................................
webadmin: Moved provider discovery logic to popup Moved the logic for discovering provider networks from the Providers/Networks subtab to the popup window itself. Change-Id: I06a8acf5ecfdc0db8b2f0c73441c6367b5c3dc0f Signed-off-by: Lior Vernia <lver...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java 2 files changed, 143 insertions(+), 75 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/15029/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java index 2822145..c699c65 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/DiscoverNetworksModel.java @@ -1,15 +1,47 @@ package org.ovirt.engine.ui.uicommonweb.models.providers; +import java.util.ArrayList; +import java.util.List; + +import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters; +import org.ovirt.engine.core.common.action.VdcActionParametersBase; +import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.action.VdcReturnValueBase; +import org.ovirt.engine.core.common.businessentities.Provider; +import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.compat.StringHelper; +import org.ovirt.engine.ui.frontend.AsyncQuery; +import org.ovirt.engine.ui.frontend.Frontend; +import org.ovirt.engine.ui.frontend.INewAsyncCallback; +import org.ovirt.engine.ui.uicommonweb.Linq; +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.Model; +import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; +import org.ovirt.engine.ui.uicompat.ConstantsManager; +import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult; +import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback; +@SuppressWarnings("deprecation") public class DiscoverNetworksModel extends Model { + + private static final String CMD_DISCOVER = "OnDiscover"; //$NON-NLS-1$ + private static final String CMD_CANCEL = "Cancel"; //$NON-NLS-1$ + + private final SearchableListModel sourceListModel; + private final Provider provider; + + private ListModel dataCenters; + private ListModel networkList; public ListModel getDataCenters() { return dataCenters; } - public void setDataCenters(ListModel dc) { + private void setDataCenters(ListModel dc) { this.dataCenters = dc; } @@ -17,16 +49,121 @@ return networkList; } - public void setNetworkList(ListModel networkList) { + private void setNetworkList(ListModel networkList) { this.networkList = networkList; } - private ListModel dataCenters; - private ListModel networkList; + public DiscoverNetworksModel(SearchableListModel sourceListModel, Provider provider) { + this.sourceListModel = sourceListModel; + this.provider = provider; - public DiscoverNetworksModel() { + setTitle(ConstantsManager.getInstance().getConstants().discoverNetworksTitle()); + setHashName("discover_networks"); //$NON-NLS-1$ + setDataCenters(new ListModel()); setNetworkList(new ListModel()); + + UICommand tempVar = new UICommand(CMD_DISCOVER, this); + tempVar.setTitle(ConstantsManager.getInstance().getConstants().importNetworksTitle()); + tempVar.setIsDefault(true); + getCommands().add(tempVar); + UICommand tempVar2 = new UICommand(CMD_CANCEL, this); + tempVar2.setTitle(ConstantsManager.getInstance().getConstants().cancel()); + tempVar2.setIsCancel(true); + getCommands().add(tempVar2); + + initBackendData(); + } + + private void initBackendData() { + final AsyncQuery networkQuery = new AsyncQuery(); + networkQuery.asyncCallback = new INewAsyncCallback() { + + @SuppressWarnings("unchecked") + @Override + public void onSuccess(Object model, Object returnValue) { + List<Network> networks = (ArrayList<Network>) returnValue; + List<ExternalNetwork> items = new ArrayList<ExternalNetwork>(); + for (Network network : networks) { + ExternalNetwork externalNetwork = new ExternalNetwork(); + externalNetwork.setNetwork(network); + externalNetwork.setAttached(false); + externalNetwork.setPublicUse(false); + items.add(externalNetwork); + } + getNetworkList().setItems(items); + + stopProgress(); + } + }; + + final AsyncQuery dcQuery = new AsyncQuery(); + dcQuery.asyncCallback = new INewAsyncCallback() { + + @SuppressWarnings("unchecked") + @Override + public void onSuccess(Object model, Object returnValue) { + ArrayList<StoragePool> dataCenters = (ArrayList<StoragePool>) returnValue; + getDataCenters().setItems(dataCenters); + getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters)); + + AsyncDataProvider.GetExternalNetworkList(networkQuery, provider.getId()); + } + }; + + startProgress(null); + AsyncDataProvider.getDataCenterList(dcQuery); + } + + public void cancel() { + sourceListModel.setWindow(null); + } + + @SuppressWarnings("unchecked") + public void onDiscover() { + ArrayList<VdcActionParametersBase> mulipleActionParameters = + new ArrayList<VdcActionParametersBase>(); + Guid dcId = ((StoragePool) (getDataCenters().getSelectedItem())).getId(); + + for (ExternalNetwork externalNetwork : (List<ExternalNetwork>) getNetworkList().getItems()) { + if (externalNetwork.isAttached()) { + externalNetwork.getNetwork().setDataCenterId(dcId); + AddNetworkStoragePoolParameters params = + new AddNetworkStoragePoolParameters(dcId, externalNetwork.getNetwork()); + params.setPublicUse(externalNetwork.isPublicUse()); + mulipleActionParameters.add(params); + } + } + + startProgress(null); + Frontend.RunMultipleAction(VdcActionType.AddNetwork, + mulipleActionParameters, + new IFrontendMultipleActionAsyncCallback() { + + @Override + public void executed(FrontendMultipleActionAsyncResult result) { + stopProgress(); + List<VdcReturnValueBase> resList = result.getReturnValue(); + for (VdcReturnValueBase res : resList) { + if (res == null || !res.getSucceeded()) { + return; + } + } + cancel(); + sourceListModel.getSearchCommand().execute(); + } + }); + } + + @Override + public void executeCommand(UICommand command) { + super.executeCommand(command); + + if (StringHelper.stringsEqual(command.getName(), CMD_DISCOVER)) { + onDiscover(); + } else if (StringHelper.stringsEqual(command.getName(), CMD_CANCEL)) { + cancel(); + } } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java index fcde0a1..2d2bc09 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderNetworkListModel.java @@ -11,7 +11,6 @@ import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; -import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; @@ -93,73 +92,7 @@ if (getWindow() != null) { return; } - - final DiscoverNetworksModel model = new DiscoverNetworksModel(); - - model.setTitle(ConstantsManager.getInstance().getConstants().discoverNetworksTitle()); - model.setHashName("discover_networks"); //$NON-NLS-1$ - - AsyncQuery _asyncQuery = new AsyncQuery(); - _asyncQuery.asyncCallback = new INewAsyncCallback() { - @Override - public void onSuccess(Object innerModel, Object result) { - ArrayList<StoragePool> dataCenters = (ArrayList<StoragePool>) result; - model.getDataCenters().setItems(dataCenters); - model.getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters)); - - AsyncQuery _asyncQuery2 = new AsyncQuery(); - _asyncQuery2.asyncCallback = new INewAsyncCallback() { - @Override - public void onSuccess(Object innerModel, Object result) { - List<Network> networks = (ArrayList<Network>) result; - List<ExternalNetwork> items = new ArrayList<ExternalNetwork>(); - for (Network network : networks) { - ExternalNetwork externalNetwork = new ExternalNetwork(); - externalNetwork.setNetwork(network); - externalNetwork.setAttached(false); - externalNetwork.setPublicUse(false); - items.add(externalNetwork); - } - model.getNetworkList().setItems(items); - - setWindow(model); - - UICommand tempVar = new UICommand("OnDiscover", ProviderNetworkListModel.this); //$NON-NLS-1$ - tempVar.setTitle(ConstantsManager.getInstance().getConstants().importNetworksTitle()); - tempVar.setIsDefault(true); - model.getCommands().add(tempVar); - UICommand tempVar2 = new UICommand("Cancel", ProviderNetworkListModel.this); //$NON-NLS-1$ - tempVar2.setTitle(ConstantsManager.getInstance().getConstants().cancel()); - tempVar2.setIsCancel(true); - model.getCommands().add(tempVar2); - } - }; - AsyncDataProvider.GetExternalNetworkList(_asyncQuery2, getEntity().getId()); - } - }; - AsyncDataProvider.getDataCenterList(_asyncQuery); - } - - public void onDiscover() { - DiscoverNetworksModel model = (DiscoverNetworksModel) getWindow(); - ArrayList<VdcActionParametersBase> mulipleActionParameters = - new ArrayList<VdcActionParametersBase>(); - - Guid dcId = ((StoragePool) (model.getDataCenters().getSelectedItem())).getId(); - for (ExternalNetwork externalNetwork : (List<ExternalNetwork>) model.getNetworkList().getItems()) { - - if (externalNetwork.isAttached()) { - externalNetwork.getNetwork().setDataCenterId(dcId); - AddNetworkStoragePoolParameters params = - new AddNetworkStoragePoolParameters(dcId, externalNetwork.getNetwork()); - params.setPublicUse(externalNetwork.isPublicUse()); - mulipleActionParameters.add(params); - } - } - - Frontend.RunMultipleAction(VdcActionType.AddNetwork, mulipleActionParameters); - - cancel(); + setWindow(new DiscoverNetworksModel(this, getEntity())); } public void add() { @@ -259,8 +192,6 @@ add(); } else if (command == getRemoveCommand()) { remove(); - } else if (StringHelper.stringsEqual(command.getName(), "OnDiscover")) { //$NON-NLS-1$ - onDiscover(); } else if (StringHelper.stringsEqual(command.getName(), "Cancel")) { //$NON-NLS-1$ cancel(); } else if (StringHelper.stringsEqual(command.getName(), "OnRemove")) { //$NON-NLS-1$ -- To view, visit http://gerrit.ovirt.org/15029 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I06a8acf5ecfdc0db8b2f0c73441c6367b5c3dc0f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <lver...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches