anmolbabu has uploaded a new change for review.

Change subject: webadmin : Optimise for virt store on volumes
......................................................................

webadmin : Optimise for virt store on volumes

This patch adds a check for eligibility to optimise
for virt store and just in case the options are not
enabled already, it adds the suggested options.

Change-Id: I6f995dec2258a3f5fc9673d5d075866b89f7773c
Signed-off-by: Anmol Babu <anb...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
1 file changed, 55 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/31041/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
index 7604eac..bae069e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.List;
 
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -28,6 +29,7 @@
 import org.ovirt.engine.core.common.mode.ApplicationMode;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters;
+import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.SearchParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -439,6 +441,7 @@
                 if (volume.getStatus() == GlusterStatus.UP) {
                     allowStart = false;
                     allowRemove = false;
+                    allowOptimize = getAllowOptimizeAvailability(volume);
                 }
                 else if (volume.getStatus() == GlusterStatus.DOWN) {
                     allowStop = false;
@@ -485,6 +488,13 @@
         
getStartVolumeProfilingCommand().setIsExecutionAllowed(allowStartProfiling);
         
getStopVolumeProfilingCommand().setIsExecutionAllowed(allowStopProfiling);
         
getShowVolumeProfileDetailsCommand().setIsExecutionAllowed(allowProfileStatisticsDetails);
+    }
+
+    private boolean getAllowOptimizeAvailability(GlusterVolumeEntity volume) {
+        if(volume.getReplicaCount() == 3) {
+            return true;
+        }
+        return false;
     }
 
     private boolean isStopProfileAvailable(List<GlusterVolumeEntity> list) {
@@ -821,30 +831,55 @@
                             @Override
                             public void onSuccess(Object modelInner1, Object 
resultInner1)
                             {
-                                String optionGroupVirt = (String) result;
-                                String optionOwnerUserVirt = (String) 
resultInner;
-                                String optionOwnerGroupVirt = (String) 
resultInner1;
+                                final String optionGroupVirt = (String) result;
+                                final String optionOwnerUserVirt = (String) 
resultInner;
+                                final String optionOwnerGroupVirt = (String) 
resultInner1;
 
-                                ArrayList<VdcActionParametersBase> list = new 
ArrayList<VdcActionParametersBase>();
-                                for (Guid volumeId : volumeList)
+                                final ArrayList<VdcActionParametersBase> list 
= new ArrayList<VdcActionParametersBase>();
+                                for (final Guid volumeId : volumeList)
                                 {
-                                    GlusterVolumeOptionEntity optionGroup = 
new GlusterVolumeOptionEntity();
-                                    optionGroup.setVolumeId(volumeId);
-                                    optionGroup.setKey("group"); //$NON-NLS-1$
-                                    optionGroup.setValue(optionGroupVirt);
-                                    list.add(new 
GlusterVolumeOptionParameters(optionGroup));
+                                    AsyncQuery volumeQuery = new AsyncQuery();
+                                    volumeQuery.setModel(this);
+                                    volumeQuery.asyncCallback = new 
INewAsyncCallback() {
 
-                                    GlusterVolumeOptionEntity optionOwnerUser 
= new GlusterVolumeOptionEntity();
-                                    optionOwnerUser.setVolumeId(volumeId);
-                                    
optionOwnerUser.setKey("storage.owner-uid"); //$NON-NLS-1$
-                                    
optionOwnerUser.setValue(optionOwnerUserVirt);
-                                    list.add(new 
GlusterVolumeOptionParameters(optionOwnerUser));
+                                        @Override
+                                        public void onSuccess(Object model, 
Object returnValue) {
+                                            VdcQueryReturnValue vdcValue = 
(VdcQueryReturnValue) returnValue;
+                                            GlusterVolumeEntity volume = 
vdcValue.getReturnValue();
+                                            
Collection<GlusterVolumeOptionEntity> options = volume.getOptions();
+                                            GlusterVolumeOptionEntity 
timeOutOption =
+                                                    new 
GlusterVolumeOptionEntity(volume.getId(),
+                                                            
"network.ping-timeout", "10");//$NON-NLS-1$//$NON-NLS-2$
+                                            GlusterVolumeOptionEntity 
quorumOption =
+                                                    new 
GlusterVolumeOptionEntity(volume.getId(),
+                                                            
"cluster.quorum-type", "auto");//$NON-NLS-1$//$NON-NLS-2$
+                                            if (options.contains(quorumOption) 
&& options.contains(timeOutOption)) {
 
-                                    GlusterVolumeOptionEntity optionOwnerGroup 
= new GlusterVolumeOptionEntity();
-                                    optionOwnerGroup.setVolumeId(volumeId);
-                                    
optionOwnerGroup.setKey("storage.owner-gid"); //$NON-NLS-1$
-                                    
optionOwnerGroup.setValue(optionOwnerGroupVirt);
-                                    list.add(new 
GlusterVolumeOptionParameters(optionOwnerGroup));
+                                            } else {
+                                                list.add(new 
GlusterVolumeOptionParameters(timeOutOption));
+                                                list.add(new 
GlusterVolumeOptionParameters(quorumOption));
+                                            }
+                                            GlusterVolumeOptionEntity 
optionGroup = new GlusterVolumeOptionEntity();
+                                            optionGroup.setVolumeId(volumeId);
+                                            optionGroup.setKey("group"); 
//$NON-NLS-1$
+                                            
optionGroup.setValue(optionGroupVirt);
+                                            list.add(new 
GlusterVolumeOptionParameters(optionGroup));
+
+                                            GlusterVolumeOptionEntity 
optionOwnerUser = new GlusterVolumeOptionEntity();
+                                            
optionOwnerUser.setVolumeId(volumeId);
+                                            
optionOwnerUser.setKey("storage.owner-uid"); //$NON-NLS-1$
+                                            
optionOwnerUser.setValue(optionOwnerUserVirt);
+                                            list.add(new 
GlusterVolumeOptionParameters(optionOwnerUser));
+
+                                            GlusterVolumeOptionEntity 
optionOwnerGroup =
+                                                    new 
GlusterVolumeOptionEntity();
+                                            
optionOwnerGroup.setVolumeId(volumeId);
+                                            
optionOwnerGroup.setKey("storage.owner-gid"); //$NON-NLS-1$
+                                            
optionOwnerGroup.setValue(optionOwnerGroupVirt);
+                                            list.add(new 
GlusterVolumeOptionParameters(optionOwnerGroup));
+                                        }
+                                    };
+                                    
Frontend.getInstance().runQuery(VdcQueryType.GetGlusterVolumeById, new 
IdQueryParameters(volumeId), volumeQuery);
                                 }
                                 
Frontend.getInstance().runMultipleAction(VdcActionType.SetGlusterVolumeOption, 
list);
                             }


-- 
To view, visit http://gerrit.ovirt.org/31041
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6f995dec2258a3f5fc9673d5d075866b89f7773c
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: anmolbabu <anb...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to