diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-06-28 18:17:37 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-06-28 18:19:28 +0530 |
| commit | 0643561ef89b12982d0835264146dcee97365476 (patch) | |
| tree | 71bee4b497919978f43454871cd16779b3f0f72c /src | |
| parent | a99ffbc7058ffb812a6fb246cbce0c9ad8fd5b15 (diff) | |
Bug 3100 - "Remove Brick" gets activated even with out checking the check box of any brick
Diffstat (limited to 'src')
5 files changed, 14 insertions, 24 deletions
diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java index c02d73b5..02a387e0 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterDataModelManager.java @@ -21,6 +21,7 @@ package com.gluster.storage.management.client; import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; +import java.util.Set; import com.gluster.storage.management.core.exceptions.GlusterRuntimeException; import com.gluster.storage.management.core.model.Brick; @@ -339,7 +340,7 @@ public class GlusterDataModelManager { } } - public void removeBricks(Volume volume, List<Brick> bricks) { + public void removeBricks(Volume volume, Set<Brick> bricks) { for (ClusterListener listener : listeners) { listener.volumeChanged(volume, new Event(EVENT_TYPE.BRICKS_REMOVED, bricks)); } diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java index 4ec3ff13..be9b82b0 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/VolumesClient.java @@ -31,6 +31,7 @@ import static com.gluster.storage.management.core.constants.RESTConstants.FORM_P import java.util.Date; import java.util.List; +import java.util.Set; import javax.ws.rs.core.MultivaluedMap; @@ -175,7 +176,7 @@ public class VolumesClient extends AbstractClient { downloadSubResource(volumeName + "/" + RESTConstants.RESOURCE_LOGS + "/" + RESTConstants.RESOURCE_DOWNLOAD, filePath); } - public void removeBricks(String volumeName, List<Brick> BrickList, boolean deleteOption) { + public void removeBricks(String volumeName, Set<Brick> BrickList, boolean deleteOption) { String bricks = StringUtil.collectionToString(GlusterCoreUtil.getQualifiedBrickList(BrickList), ","); MultivaluedMap<String, String> queryParams = prepareRemoveBrickQueryParams(volumeName, bricks, deleteOption); deleteSubResource(volumeName + "/" + RESTConstants.RESOURCE_BRICKS, queryParams); diff --git a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/GlusterCoreUtil.java b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/GlusterCoreUtil.java index c238cad7..4194a642 100644 --- a/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/GlusterCoreUtil.java +++ b/src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/utils/GlusterCoreUtil.java @@ -22,6 +22,7 @@ package com.gluster.storage.management.core.utils; import java.util.ArrayList; import java.util.List; +import java.util.Set; import com.gluster.storage.management.core.model.Brick; import com.gluster.storage.management.core.model.Disk; @@ -37,7 +38,7 @@ public class GlusterCoreUtil { return qualifiedDiskNames; } - public static final List<String> getQualifiedBrickList(List<Brick> bricks) { + public static final List<String> getQualifiedBrickList(Set<Brick> bricks) { List<String> qualifiedBricks = new ArrayList<String>(); for (Brick brick : bricks) { qualifiedBricks.add(brick.getQualifiedName()); diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java index 9df40457..b79a4ee4 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveDiskAction.java @@ -3,6 +3,7 @@ package com.gluster.storage.management.gui.actions; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Set; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.MessageDialog; @@ -15,6 +16,7 @@ import org.eclipse.ui.IWorkbenchPart; import com.gluster.storage.management.client.GlusterDataModelManager; import com.gluster.storage.management.client.VolumesClient; import com.gluster.storage.management.core.model.Brick; +import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.Status; import com.gluster.storage.management.core.model.Volume; import com.gluster.storage.management.core.utils.StringUtil; @@ -25,7 +27,7 @@ import com.gluster.storage.management.gui.views.VolumeBricksView; public class RemoveDiskAction extends AbstractActionDelegate { private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance(); private GUIHelper guiHelper = GUIHelper.getInstance(); - private List<Brick> bricks; + private Set<Brick> bricks; private Volume volume; boolean confirmDelete = false; @@ -90,28 +92,13 @@ public class RemoveDiskAction extends AbstractActionDelegate { IWorkbenchPart view = guiHelper.getActiveView(); if (view instanceof VolumeBricksView) { // volume disks view is open. check if any brick is selected - bricks = getSelectedBricks(selection); + bricks = GUIHelper.getInstance().getSelectedEntities(getWindow(), Brick.class); action.setEnabled(bricks.size() > 0); } } } - private List<Brick> getSelectedBricks(ISelection selection) { - List<Brick> selectedBricks = new ArrayList<Brick>(); - - if (selection instanceof IStructuredSelection) { - Iterator<Object> iter = ((IStructuredSelection) selection).iterator(); - while (iter.hasNext()) { - Object selectedObj = iter.next(); - if (selectedObj instanceof Brick) { - selectedBricks.add((Brick) selectedObj); - } - } - } - return selectedBricks; - } - - private List<String> getBrickList(List<Brick> bricks) { + private List<String> getBrickList(Set<Brick> bricks) { List<String> brickList = new ArrayList<String>(); for (Brick brick : bricks) { brickList.add(brick.getServerName() + ":" + brick.getBrickDirectory()); diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java index 720c050e..5b70d7a8 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/RebalanceVolumeTask.java @@ -52,7 +52,7 @@ public class RebalanceVolumeTask extends Task { ProcessResult processResult = sshUtil.executeRemote(serverName, command); TaskStatus taskStatus = new TaskStatus(); if (processResult.isSuccess()) { - if (processResult.getOutput().trim().matches("*has been successful$")) { + if (processResult.getOutput().trim().matches(".*has been successful$")) { taskStatus.setCode(Status.STATUS_CODE_RUNNING); } else { taskStatus.setCode(Status.STATUS_CODE_FAILURE); @@ -76,7 +76,7 @@ public class RebalanceVolumeTask extends Task { ProcessResult processResult = sshUtil.executeRemote(serverName, command); TaskStatus taskStatus = new TaskStatus(); if (processResult.isSuccess()) { - if (processResult.getOutput().trim().matches("*has been successful$")) { + if (processResult.getOutput().trim().matches(".*has been successful$")) { taskStatus.setCode(Status.STATUS_CODE_SUCCESS); } else { taskStatus.setCode(Status.STATUS_CODE_FAILURE); @@ -100,7 +100,7 @@ public class RebalanceVolumeTask extends Task { ProcessResult processResult = sshUtil.executeRemote(serverName, command); TaskStatus taskStatus = new TaskStatus(); if (processResult.isSuccess()) { - if (processResult.getOutput().matches("Rebalance completed!")) { + if (processResult.getOutput().trim().matches("Rebalance completed!")) { taskStatus.setCode(Status.STATUS_CODE_SUCCESS); } else { taskStatus.setCode(Status.STATUS_CODE_RUNNING); |
