Hello ofri masad,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/18518
to review the following change.
Change subject: webadmin: Add UI for synch mom policy
......................................................................
webadmin: Add UI for synch mom policy
Add UI for update/synch Mom policy on host. Action added to sub tab host
under main tab cluster.
Change-Id: I34836a2c60f2bdd2170d828f33ba7a50c9b13642
Signed-off-by: Ofri Masad <[email protected]>
---
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterHostListModel.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/tab/cluster/SubTabClusterHostView.java
3 files changed, 96 insertions(+), 0 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/18/18518/1
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterHostListModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterHostListModel.java
index 544105a..9bdf139 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterHostListModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterHostListModel.java
@@ -1,15 +1,34 @@
package org.ovirt.engine.ui.uicommonweb.models.clusters;
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.action.VdsActionParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
import org.ovirt.engine.core.common.interfaces.SearchType;
import org.ovirt.engine.core.common.queries.SearchParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.compat.Version;
+import org.ovirt.engine.ui.frontend.Frontend;
+import org.ovirt.engine.ui.uicommonweb.Linq;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
import org.ovirt.engine.ui.uicommonweb.models.hosts.HostListModel;
+import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
+import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
+
+import java.util.ArrayList;
@SuppressWarnings("unused")
public class ClusterHostListModel extends HostListModel
{
+
+ public ClusterHostListModel() {
+ setUpdateMomPolicyCommand(new UICommand("updateMomPolicyCommand",
this)); //$NON-NLS-1$
+ }
+
+ private UICommand updateMomPolicyCommand;
@Override
public VDSGroup getEntity()
@@ -57,4 +76,68 @@
getSearchCommand().execute();
}
}
+
+ public UICommand getUpdateMomPolicyCommand() {
+ return updateMomPolicyCommand;
+ }
+
+ public void setUpdateMomPolicyCommand(UICommand updateMomPolicyCommand) {
+ this.updateMomPolicyCommand = updateMomPolicyCommand;
+ }
+
+ private void updateActionAvailability() {
+ if (getEntity().getcompatibility_version().compareTo(Version.v3_3) >=
0) {
+ getUpdateMomPolicyCommand().setIsAvailable(true);
+ ArrayList<VDS> items =
+ getSelectedItems() != null ? Linq.<VDS>
cast(getSelectedItems()) : new ArrayList<VDS>();
+ boolean allHostRunning = !items.isEmpty();
+
+ for (VDS vds : items) {
+ if (vds.getStatus() != VDSStatus.Up) {
+ allHostRunning = false;
+ break;
+ }
+ }
+ getUpdateMomPolicyCommand().setIsExecutionAllowed(allHostRunning);
+ } else {
+ getUpdateMomPolicyCommand().setIsAvailable(false);
+ }
+ }
+
+ @Override
+ protected void onSelectedItemChanged() {
+ super.onSelectedItemChanged();
+ updateActionAvailability();
+ }
+
+ @Override
+ protected void selectedItemsChanged() {
+ super.selectedItemsChanged();
+ updateActionAvailability();
+ }
+
+ @Override
+ public void executeCommand(UICommand command) {
+ super.executeCommand(command);
+
+ if (command.equals(getUpdateMomPolicyCommand())) {
+ updateMomPolicy();
+ }
+ }
+
+ private void updateMomPolicy() {
+ ArrayList<VdcActionParametersBase> list = new
ArrayList<VdcActionParametersBase>();
+ for (Object item : getSelectedItems()) {
+ VDS vds = (VDS) item;
+ list.add(new VdsActionParameters(vds.getId()));
+ }
+
+ Frontend.RunMultipleAction(VdcActionType.UpdateMomPolicy, list,
+ new IFrontendMultipleActionAsyncCallback() {
+ @Override
+ public void executed(FrontendMultipleActionAsyncResult
result) {
+
+ }
+ }, null);
+ }
}
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 6d09492..813bed0 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
@@ -1801,6 +1801,9 @@
@DefaultStringValue("Load")
String loadClusterHost();
+ @DefaultStringValue("Synch Mom Policy")
+ String updateMomPolicyClusterHost();
+
// Cluster service
@DefaultStringValue("Host")
String hostService();
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
index 8d77a7f..f649b0f 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterHostView.java
@@ -9,6 +9,7 @@
import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider;
import org.ovirt.engine.ui.common.widget.table.column.EnumColumn;
import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
+import org.ovirt.engine.ui.uicommonweb.UICommand;
import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper;
import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterHostListModel;
import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel;
@@ -16,6 +17,7 @@
import org.ovirt.engine.ui.webadmin.ApplicationConstants;
import
org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterHostPresenter;
import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabTableView;
+import org.ovirt.engine.ui.webadmin.widget.action.WebAdminButtonDefinition;
import org.ovirt.engine.ui.webadmin.widget.table.column.HostStatusColumn;
public class SubTabClusterHostView extends AbstractSubTabTableView<VDSGroup,
VDS, ClusterListModel, ClusterHostListModel>
@@ -78,5 +80,13 @@
};
getTable().addColumn(consoleColumn,
constants.overriddenConsoleAddress(), "220px"); //$NON-NLS-1$
}
+
+ getTable().addActionButton(new
WebAdminButtonDefinition<VDS>(constants.updateMomPolicyClusterHost()) {
+
+ @Override
+ protected UICommand resolveCommand() {
+ return getDetailModel().getUpdateMomPolicyCommand();
+ }
+ });
}
}
--
To view, visit http://gerrit.ovirt.org/18518
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I34836a2c60f2bdd2170d828f33ba7a50c9b13642
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Martin Sivák <[email protected]>
Gerrit-Reviewer: ofri masad <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches