ofri masad has uploaded a new change for review.

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: I4cc12a69edd6f92e1aff8d90769a8cb99256c77d
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, 92 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/80/17380/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..42759a9 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,33 @@
 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.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 +75,65 @@
             getSearchCommand().execute();
         }
     }
+
+    public UICommand getUpdateMomPolicyCommand() {
+        return updateMomPolicyCommand;
+    }
+
+    public void setUpdateMomPolicyCommand(UICommand updateMomPolicyCommand) {
+        this.updateMomPolicyCommand = updateMomPolicyCommand;
+    }
+
+    private void updateActionAvailability() {
+
+        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);
+    }
+
+    @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 fcd5d34..f2a6121 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
@@ -1803,6 +1803,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/17380
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4cc12a69edd6f92e1aff8d90769a8cb99256c77d
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: 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