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