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 <oma...@redhat.com>
---
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 <msi...@redhat.com>
Gerrit-Reviewer: ofri masad <oma...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to