Kanagaraj M has uploaded a new change for review. Change subject: webadmin: Gluster Hooks sub tab in Cluster ......................................................................
webadmin: Gluster Hooks sub tab in Cluster Gluster Hooks sub tab is added to Cluster Main tab. Gluster Hooks will be visible only if the selected cluster suports Gluster. Change-Id: Ibe5b393c6624d79219cfd9e490e9ddbea9445006 Signed-off-by: Kanagaraj M <kmayi...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterListModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.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/gin/ManagedComponents.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGlusterHookPresenter.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterPermissionPresenter.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java 13 files changed, 286 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/35/11235/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml index 90808a6..c6ac2f3 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml @@ -305,6 +305,9 @@ <include name="common/businessentities/gluster/MemoryStatus.java"/> <include name="common/businessentities/gluster/Mempool.java"/> <include name="common/businessentities/gluster/ServiceType.java"/> + <include name="common/businessentities/gluster/GlusterHookEntity.java"/> + <include name="common/businessentities/gluster/GlusterHookStatus.java"/> + <include name="common/businessentities/gluster/GlusterHookLevel.java"/> <include name="common/action/gluster/*.java"/> <include name="common/queries/gluster/*.java"/> <include name="common/constants/gluster/GlusterConstants.java"/> 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 1b0e739..39c1365 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 @@ -45,6 +45,7 @@ import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.businessentities.tags; import org.ovirt.engine.core.common.businessentities.vm_pools; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; @@ -55,7 +56,6 @@ import org.ovirt.engine.core.common.queries.CommandVersionsInfo; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.GetAllAttachableDisks; -import org.ovirt.engine.core.common.queries.InterfaceAndIdQueryParameters; import org.ovirt.engine.core.common.queries.GetAllDisksByVmIdParameters; import org.ovirt.engine.core.common.queries.GetAllFromExportDomainQueryParameters; import org.ovirt.engine.core.common.queries.GetAllImagesListByStoragePoolIdParameters; @@ -83,6 +83,7 @@ import org.ovirt.engine.core.common.queries.GetVmTemplatesByStoragePoolIdParameters; import org.ovirt.engine.core.common.queries.GetVmTemplatesDisksParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.common.queries.InterfaceAndIdQueryParameters; import org.ovirt.engine.core.common.queries.IsVmPoolWithSameNameExistsParameters; import org.ovirt.engine.core.common.queries.IsVmTemlateWithSameNameExistParameters; import org.ovirt.engine.core.common.queries.IsVmWithSameNameExistParameters; @@ -1126,6 +1127,19 @@ aQuery); } + public static void getGlusterHooks(AsyncQuery aQuery, Guid clusterId) { + aQuery.converterCallback = new IAsyncConverter() { + @Override + public Object Convert(Object source, AsyncQuery _asyncQuery) + { + return source != null ? source : new ArrayList<GlusterHookEntity>(); + } + }; + Frontend.RunQuery(VdcQueryType.GetGlusterHooks, + new GlusterParameters(clusterId), + aQuery); + } + public static void GetRpmVersionViaPublic(AsyncQuery aQuery) { aQuery.converterCallback = new IAsyncConverter() { @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java new file mode 100644 index 0000000..8dfc1d0 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/clusters/ClusterGlusterHookListModel.java @@ -0,0 +1,74 @@ +package org.ovirt.engine.ui.uicommonweb.models.clusters; + +import java.util.List; + +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; +import org.ovirt.engine.core.common.mode.ApplicationMode; +import org.ovirt.engine.ui.frontend.AsyncQuery; +import org.ovirt.engine.ui.frontend.INewAsyncCallback; +import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; +import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; +import org.ovirt.engine.ui.uicompat.ConstantsManager; + +public class ClusterGlusterHookListModel extends SearchableListModel { + + @Override + public VDSGroup getEntity() + { + return (VDSGroup) super.getEntity(); + } + + public ClusterGlusterHookListModel() + { + setTitle(ConstantsManager.getInstance().getConstants().glusterHooksTitle()); + setHashName("gluster_hooks"); // $//$NON-NLS-1$ + setAvailableInModes(ApplicationMode.GlusterOnly); + } + + @Override + protected void OnEntityChanged() + { + super.OnEntityChanged(); + getSearchCommand().Execute(); + } + + @Override + public void Search() + { + if (getEntity() != null) + { + super.Search(); + } + } + + @Override + protected void SyncSearch() + { + if (getEntity() == null) + { + return; + } + + AsyncDataProvider.getGlusterHooks(new AsyncQuery(this, new INewAsyncCallback() { + + @Override + public void OnSuccess(Object model, Object returnValue) { + List<GlusterHookEntity> glusterHooks = (List<GlusterHookEntity>) returnValue; + setItems(glusterHooks); + } + }), getEntity().getId()); + } + + @Override + protected void AsyncSearch() + { + super.AsyncSearch(); + SyncSearch(); + } + + @Override + protected String getListName() { + return "ClusterHookListModel"; //$NON-NLS-1$ + } +} 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 7de8a7c..babfea3 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 @@ -154,6 +154,16 @@ this.clusterServiceModel = clusterServiceModel; } + private ClusterGlusterHookListModel clusterGlusterHookListModel; + + public ClusterGlusterHookListModel getClusterGlusterHookListModel() { + return clusterGlusterHookListModel; + } + + public void setClusterGlusterHookListModel(ClusterGlusterHookListModel clusterGlusterHookListModel) { + this.clusterGlusterHookListModel = clusterGlusterHookListModel; + } + public ClusterListModel() { setTitle(ConstantsManager.getInstance().getConstants().clustersTitle()); @@ -211,6 +221,7 @@ super.InitDetailModels(); setClusterServiceModel(new ClusterServiceModel()); + setClusterGlusterHookListModel(new ClusterGlusterHookListModel()); ObservableCollection<EntityModel> list = new ObservableCollection<EntityModel>(); clusterGeneralModel = new ClusterGeneralModel(); @@ -219,6 +230,7 @@ list.add(new ClusterHostListModel()); list.add(new ClusterVmListModel()); list.add(getClusterServiceModel()); + list.add(getClusterGlusterHookListModel()); list.add(new PermissionListModel()); setDetailModels(list); } @@ -227,6 +239,7 @@ protected void UpdateDetailsAvailability() { super.UpdateDetailsAvailability(); getClusterServiceModel().setIsAvailable(((VDSGroup) getSelectedItem()).supportsGlusterService()); + getClusterGlusterHookListModel().setIsAvailable(((VDSGroup) getSelectedItem()).supportsGlusterService()); } @Override @@ -577,8 +590,8 @@ cluster.setcpu_name(((ServerCpu) model.getCPU().getSelectedItem()).getCpuName()); } cluster.setmax_vds_memory_over_commit(model.getMemoryOverCommit()); - cluster.setCountThreadsAsCores(Boolean.TRUE.equals((Boolean) model.getVersionSupportsCpuThreads().getEntity()) - && Boolean.TRUE.equals((Boolean) model.getCountThreadsAsCores().getEntity())); + cluster.setCountThreadsAsCores(Boolean.TRUE.equals(model.getVersionSupportsCpuThreads().getEntity()) + && Boolean.TRUE.equals(model.getCountThreadsAsCores().getEntity())); cluster.setTransparentHugepages(version.compareTo(new Version("3.0")) >= 0); //$NON-NLS-1$ cluster.setcompatibility_version(version); cluster.setMigrateOnError(model.getMigrateOnErrorOption()); diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java index f94e5b1..c72dd1b 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java @@ -79,6 +79,9 @@ @DefaultStringValue("Services") String servicesTitle(); + @DefaultStringValue("Gluster Hooks") + String glusterHooksTitle(); + @DefaultStringValue("Edit Policy") String editPolicyTitle(); 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 c7cb7f4..02cdfeb 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 @@ -307,6 +307,9 @@ @DefaultStringValue("Services") String clusterServiceSubTabLabel(); + @DefaultStringValue("Gluster Hooks") + String clusterHooksSubTabLabel(); + @DefaultStringValue("Permissions") String clusterPermissionSubTabLabel(); @@ -1661,6 +1664,19 @@ @DefaultStringValue("Show All") String showAllService(); + // Cluster Hooks + @DefaultStringValue("Name") + String nameHook(); + + @DefaultStringValue("Command") + String glusterCommandHook(); + + @DefaultStringValue("Stage") + String stageHook(); + + @DefaultStringValue("Status") + String statusHook(); + // Interface @DefaultStringValue("Empty") String emptyInterface(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java index 6310f93..9571f60 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/ManagedComponents.java @@ -19,6 +19,7 @@ import org.ovirt.engine.core.common.businessentities.storage_pool; import org.ovirt.engine.core.common.businessentities.vm_pools; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeOptionEntity; import org.ovirt.engine.core.common.businessentities.network.Network; @@ -33,6 +34,7 @@ import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterGeneralModel; +import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterGlusterHookListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterHostListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkListModel; @@ -55,9 +57,9 @@ import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeEventListModel; import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.gluster.VolumeParameterListModel; -import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHardwareGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostEventListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostGeneralModel; +import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHardwareGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostHooksListModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceLineModel; import org.ovirt.engine.ui.uicommonweb.models.hosts.HostInterfaceListModel; @@ -142,6 +144,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabVolumePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.ClusterSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterGeneralPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterGlusterHookPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterHostPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterNetworkPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterPermissionPresenter; @@ -167,9 +170,9 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumePermissionPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.VolumeSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.HostSubTabPanelPresenter; -import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostEventPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHookPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostPermissionPresenter; @@ -422,6 +425,10 @@ DetailModelProvider<ClusterListModel, ClusterServiceModel> getSubTabClusterServiceModelProvider(); + AsyncProvider<SubTabClusterGlusterHookPresenter> getSubTabClusterGlusterHookPresenter(); + + SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> getSubTabClusterGlusterHookModelProvider(); + AsyncProvider<SubTabClusterPermissionPresenter> getSubTabClusterPermissionPresenter(); SearchableDetailModelProvider<permissions, ClusterListModel, PermissionListModel> getSubTabClusterPermissionModelProvider(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java index 3faf600..aea46c2 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java @@ -99,6 +99,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.MainTabVolumePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.ClusterSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterGeneralPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterGlusterHookPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterHostPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterNetworkPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterPermissionPresenter; @@ -124,9 +125,9 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.SubTabVolumePermissionPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.gluster.VolumeSubTabPanelPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.HostSubTabPanelPresenter; -import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostEventPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostGeneralPresenter; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHardwarePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostHookPresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostInterfacePresenter; import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.host.SubTabHostPermissionPresenter; @@ -281,6 +282,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.tab.MainTabVolumeView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.ClusterSubTabPanelView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterGeneralView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterGlusterHookView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterHostView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterNetworkView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster.SubTabClusterPermissionView; @@ -306,9 +308,9 @@ import org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.SubTabVolumePermissionView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.gluster.VolumeSubTabPanelView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.HostSubTabPanelView; -import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostHardwareView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostEventView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostGeneralView; +import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostHardwareView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostHookView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostInterfaceView; import org.ovirt.engine.ui.webadmin.section.main.view.tab.host.SubTabHostPermissionView; @@ -580,6 +582,10 @@ SubTabClusterServicePresenter.ViewDef.class, SubTabClusterServiceView.class, SubTabClusterServicePresenter.ProxyDef.class); + bindPresenter(SubTabClusterGlusterHookPresenter.class, + SubTabClusterGlusterHookPresenter.ViewDef.class, + SubTabClusterGlusterHookView.class, + SubTabClusterGlusterHookPresenter.ProxyDef.class); bindPresenter(SubTabClusterPermissionPresenter.class, SubTabClusterPermissionPresenter.ViewDef.class, SubTabClusterPermissionView.class, diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java index ba97aa1..31843bd 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/ClusterModule.java @@ -4,6 +4,7 @@ import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.permissions; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; import org.ovirt.engine.ui.common.presenter.ModelBoundPresenterWidget; @@ -19,6 +20,7 @@ import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.Model; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterGeneralModel; +import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterGlusterHookListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterHostListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterNetworkListModel; @@ -29,8 +31,8 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.ReportPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.PermissionsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterManageNetworkPopupPresenterWidget; -import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.NewClusterNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.ClusterPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.cluster.NewClusterNetworkPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.DetachGlusterHostsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.guide.GuidePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.host.MultipleHostsPopupPresenterWidget; @@ -166,6 +168,14 @@ @Provides @Singleton + public SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> getClusterGlusterHookListProvider(ClientGinjector ginjector) { + return new SearchableDetailTabModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel>(ginjector, + ClusterListModel.class, + ClusterGlusterHookListModel.class); + } + + @Provides + @Singleton public SearchableDetailModelProvider<permissions, ClusterListModel, PermissionListModel> getPermissionListProvider(ClientGinjector ginjector, final Provider<PermissionsPopupPresenterWidget> popupProvider, final Provider<RemoveConfirmationPopupPresenterWidget> removeConfirmPopupProvider) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java index 0c5f930..694a330 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/place/ApplicationPlaces.java @@ -114,6 +114,9 @@ public static final String clusterServiceSubTabPlace = clusterMainTabPlace + SUB_TAB_PREFIX + "services"; //$NON-NLS-1$ + public static final String clusterGlusterHookSubTabPlace = clusterMainTabPlace + SUB_TAB_PREFIX + + "gluster_hooks"; //$NON-NLS-1$ + public static final String clusterPermissionSubTabPlace = clusterMainTabPlace + SUB_TAB_PREFIX + "permissions"; //$NON-NLS-1$ diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGlusterHookPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGlusterHookPresenter.java new file mode 100644 index 0000000..993e63e --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterGlusterHookPresenter.java @@ -0,0 +1,64 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster; + +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; +import org.ovirt.engine.ui.common.presenter.AbstractSubTabPresenter; +import org.ovirt.engine.ui.common.uicommon.model.SearchableDetailModelProvider; +import org.ovirt.engine.ui.common.widget.tab.ModelBoundTabData; +import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterGlusterHookListModel; +import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; +import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; +import org.ovirt.engine.ui.webadmin.place.ApplicationPlaces; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.ClusterSelectionChangeEvent; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.gwtplatform.mvp.client.TabData; +import com.gwtplatform.mvp.client.annotations.NameToken; +import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit; +import com.gwtplatform.mvp.client.annotations.ProxyEvent; +import com.gwtplatform.mvp.client.annotations.TabInfo; +import com.gwtplatform.mvp.client.proxy.PlaceManager; +import com.gwtplatform.mvp.client.proxy.PlaceRequest; +import com.gwtplatform.mvp.client.proxy.RevealContentEvent; +import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace; + +public class SubTabClusterGlusterHookPresenter extends AbstractSubTabPresenter<VDSGroup, ClusterListModel, ClusterGlusterHookListModel, SubTabClusterGlusterHookPresenter.ViewDef, SubTabClusterGlusterHookPresenter.ProxyDef> { + + @ProxyCodeSplit + @NameToken(ApplicationPlaces.clusterGlusterHookSubTabPlace) + public interface ProxyDef extends TabContentProxyPlace<SubTabClusterGlusterHookPresenter> { + } + + public interface ViewDef extends AbstractSubTabPresenter.ViewDef<VDSGroup> { + } + + @TabInfo(container = ClusterSubTabPanelPresenter.class) + static TabData getTabData(ClientGinjector ginjector) { + return new ModelBoundTabData(ginjector.getApplicationConstants().clusterHooksSubTabLabel(), 5, + ginjector.getSubTabClusterGlusterHookModelProvider()); + } + + @Inject + public SubTabClusterGlusterHookPresenter(EventBus eventBus, ViewDef view, ProxyDef proxy, + PlaceManager placeManager, + SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> modelProvider) { + super(eventBus, view, proxy, placeManager, modelProvider); + } + + @Override + protected void revealInParent() { + RevealContentEvent.fire(this, ClusterSubTabPanelPresenter.TYPE_SetTabContent, this); + } + + @Override + protected PlaceRequest getMainTabRequest() { + return new PlaceRequest(ApplicationPlaces.clusterMainTabPlace); + } + + @ProxyEvent + public void onClusterSelectionChange(ClusterSelectionChangeEvent event) { + updateMainTabSelection(event.getSelectedItems()); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterPermissionPresenter.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterPermissionPresenter.java index b426eab..2a7d94e 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterPermissionPresenter.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/tab/cluster/SubTabClusterPermissionPresenter.java @@ -35,7 +35,7 @@ @TabInfo(container = ClusterSubTabPanelPresenter.class) static TabData getTabData(ClientGinjector ginjector) { - return new ModelBoundTabData(ginjector.getApplicationConstants().clusterPermissionSubTabLabel(), 5, + return new ModelBoundTabData(ginjector.getApplicationConstants().clusterPermissionSubTabLabel(), 6, ginjector.getSubTabClusterPermissionModelProvider()); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java new file mode 100644 index 0000000..8575cf9 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/cluster/SubTabClusterGlusterHookView.java @@ -0,0 +1,64 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.tab.cluster; + +import javax.inject.Inject; + +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookLevel; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookStatus; +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.models.clusters.ClusterGlusterHookListModel; +import org.ovirt.engine.ui.uicommonweb.models.clusters.ClusterListModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.section.main.presenter.tab.cluster.SubTabClusterGlusterHookPresenter; +import org.ovirt.engine.ui.webadmin.section.main.view.AbstractSubTabTableView; + +public class SubTabClusterGlusterHookView extends AbstractSubTabTableView<VDSGroup, GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> + implements SubTabClusterGlusterHookPresenter.ViewDef { + + @Inject + public SubTabClusterGlusterHookView(SearchableDetailModelProvider<GlusterHookEntity, ClusterListModel, ClusterGlusterHookListModel> modelProvider, + ApplicationConstants constants) { + super(modelProvider); + initTable(constants); + initWidget(getTable()); + } + + void initTable(final ApplicationConstants constants) { + TextColumnWithTooltip<GlusterHookEntity> nameColumn = new TextColumnWithTooltip<GlusterHookEntity>() { + @Override + public String getValue(GlusterHookEntity object) { + return object.getName(); + } + }; + getTable().addColumn(nameColumn, constants.nameHook()); + + TextColumnWithTooltip<GlusterHookEntity> glusterCommandColumn = new TextColumnWithTooltip<GlusterHookEntity>() { + @Override + public String getValue(GlusterHookEntity object) { + return object.getGlusterCommand(); + } + }; + getTable().addColumn(glusterCommandColumn, constants.glusterCommandHook()); + + TextColumnWithTooltip<GlusterHookEntity> stageColumn = new EnumColumn<GlusterHookEntity, GlusterHookLevel>() { + + @Override + protected GlusterHookLevel getRawValue(GlusterHookEntity object) { + return object.getLevel(); + } + }; + getTable().addColumn(stageColumn, constants.stageHook()); + + TextColumnWithTooltip<GlusterHookEntity> statusColumn = new EnumColumn<GlusterHookEntity, GlusterHookStatus>() { + + @Override + protected GlusterHookStatus getRawValue(GlusterHookEntity object) { + return object.getStatus(); + } + }; + getTable().addColumn(statusColumn, constants.statusHook()); + } +} -- To view, visit http://gerrit.ovirt.org/11235 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibe5b393c6624d79219cfd9e490e9ddbea9445006 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Kanagaraj M <kmayi...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches