summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSelvasundaram <selvam@gluster.com>2011-08-18 21:28:49 +0530
committerSelvasundaram <selvam@gluster.com>2011-08-18 21:28:49 +0530
commitd905c66247f3f0ada455544388a7700d088cbb7e (patch)
treeb7247da332d3121e70ff0b6b2831a56f98eef75c /src
parenteeac0d5ae3d106b2f19a29fb643336e289acb0fa (diff)
parente141543f08978529e014b023d2949eaf0088d1cc (diff)
Merge branch 'master' of github.com:gluster/console
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AbstractMonitoredActionDelegate.java3
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AddServerAction.java99
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java91
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/RemoveServerAction.java80
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java12
-rw-r--r--src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java10
6 files changed, 129 insertions, 166 deletions
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AbstractMonitoredActionDelegate.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AbstractMonitoredActionDelegate.java
index bcbba8c8..1669d273 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AbstractMonitoredActionDelegate.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AbstractMonitoredActionDelegate.java
@@ -26,15 +26,12 @@ import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import com.gluster.storage.management.console.ConsoleConstants;
-import com.gluster.storage.management.console.utils.GlusterLogger;
/**
* Any action that can potentially run for a long time, and supports monitoring and progress dialog should extend from
* this class
*/
public abstract class AbstractMonitoredActionDelegate extends AbstractActionDelegate {
- private GlusterLogger logger = GlusterLogger.getInstance();
-
/* (non-Javadoc)
* @see com.gluster.storage.management.console.actions.AbstractActionDelegate#performAction(org.eclipse.jface.action.IAction)
*/
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AddServerAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AddServerAction.java
index 0c371f05..c3b24eba 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AddServerAction.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/AddServerAction.java
@@ -22,9 +22,8 @@ import java.net.URI;
import java.util.HashSet;
import java.util.Set;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
import com.gluster.storage.management.client.GlusterServersClient;
import com.gluster.storage.management.console.GlusterDataModelManager;
@@ -33,65 +32,63 @@ import com.gluster.storage.management.console.utils.GUIHelper;
import com.gluster.storage.management.core.constants.CoreConstants;
import com.gluster.storage.management.core.model.Server;
-public class AddServerAction extends AbstractActionDelegate {
+public class AddServerAction extends AbstractMonitoredActionDelegate {
private GUIHelper guiHelper = GUIHelper.getInstance();
@Override
- protected void performAction(final IAction action) {
- final Runnable addServerThread = new Runnable() {
- @Override
- public void run() {
- GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
- GlusterServersClient glusterServersClient = new GlusterServersClient();
+ protected void performAction(final IAction action, IProgressMonitor monitor) {
+ GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
+ GlusterServersClient glusterServersClient = new GlusterServersClient();
- Set<Server> selectedServers = GUIHelper.getInstance().getSelectedEntities(getWindow(), Server.class);
- Set<Server> successServers = new HashSet<Server>();
- Set<Server> partSuccessServers = new HashSet<Server>();
- String errMsg = "";
- String partErrMsg = "";
-
- if (selectedServers.isEmpty()) {
- addServerManually();
- } else {
- for (Server server : selectedServers) {
- guiHelper.setStatusMessage("Adding server [" + server.getName() + "]...");
+ Set<Server> selectedServers = GUIHelper.getInstance().getSelectedEntities(getWindow(), Server.class);
+ Set<Server> successServers = new HashSet<Server>();
+ Set<Server> partSuccessServers = new HashSet<Server>();
+ String errMsg = "";
+ String partErrMsg = "";
- try {
- URI newServerURI = glusterServersClient.addServer(server.getName());
- modelManager.addGlusterServer(glusterServersClient.getGlusterServer(newServerURI));
- successServers.add(server);
- } catch (Exception e) {
- if (!errMsg.isEmpty()) {
- errMsg += CoreConstants.NEWLINE;
- }
- errMsg += "Server " + server.getName() + ". Error: [" + e.getMessage() + "]";
- }
- }
-
- guiHelper.clearStatusMessage();
- showStatusMessage(action.getDescription(), selectedServers, successServers, partSuccessServers,
- errMsg, partErrMsg);
- }
+ if (selectedServers.isEmpty()) {
+ monitor.beginTask("Starting Manual Server Addition", 1);
+ addServerManually();
+ monitor.worked(1);
+ monitor.done();
+ return;
+ }
+
+ monitor.beginTask("Adding Selected Servers...", selectedServers.size());
+ for (Server server : selectedServers) {
+ if(monitor.isCanceled()) {
+ break;
}
+
+ monitor.setTaskName("Adding server [" + server.getName() + "]...");
- private void addServerManually() {
- try {
- // To open a dialog for server addition
- ServerAdditionDialog dialog = new ServerAdditionDialog(getShell());
- dialog.open();
- } catch (Exception e) {
- logger.error("Error in Manual server addition", e);
- showErrorDialog("Add server", "Add server failed! [" + e.getMessage() + "]");
+ try {
+ URI newServerURI = glusterServersClient.addServer(server.getName());
+ modelManager.addGlusterServer(glusterServersClient.getGlusterServer(newServerURI));
+ successServers.add(server);
+ } catch (Exception e) {
+ if (!errMsg.isEmpty()) {
+ errMsg += CoreConstants.NEWLINE;
}
+ errMsg += "Server " + server.getName() + ". Error: [" + e.getMessage() + "]";
}
- };
+ monitor.worked(1);
+ }
+ monitor.done();
- BusyIndicator.showWhile(Display.getDefault(), new Runnable() {
- @Override
- public void run() {
- Display.getDefault().asyncExec(addServerThread);
- }
- });
+ showStatusMessage(action.getDescription(), selectedServers, successServers, partSuccessServers, errMsg,
+ partErrMsg);
+ }
+
+ private void addServerManually() {
+ try {
+ // To open a dialog for server addition
+ ServerAdditionDialog dialog = new ServerAdditionDialog(getShell());
+ dialog.open();
+ } catch (Exception e) {
+ logger.error("Error in Manual server addition", e);
+ showErrorDialog("Add server", "Add server failed! [" + e.getMessage() + "]");
+ }
}
private void showStatusMessage(String dialogTitle, Set<Server> selectedServers, Set<Server> successServers,
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java
index c9ef9281..869e37e3 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/DeleteVolumeAction.java
@@ -22,11 +22,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Set;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
import com.gluster.storage.management.client.VolumesClient;
import com.gluster.storage.management.console.GlusterDataModelManager;
@@ -36,15 +35,14 @@ import com.gluster.storage.management.core.constants.CoreConstants;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS;
-public class DeleteVolumeAction extends AbstractActionDelegate {
+public class DeleteVolumeAction extends AbstractMonitoredActionDelegate {
private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
private List<Volume> selectedVolumes = new ArrayList<Volume>();
private List<String> selectedVolumeNames = new ArrayList<String>();
private List<String> onlineVolumeNames = new ArrayList<String>();
- private GUIHelper guiHelper = GUIHelper.getInstance();
@Override
- protected void performAction(final IAction action) {
+ protected void performAction(final IAction action, IProgressMonitor monitor) {
final String actionDesc = action.getDescription();
collectVolumeNames();
@@ -63,55 +61,50 @@ public class DeleteVolumeAction extends AbstractActionDelegate {
return;
}
-
- BusyIndicator.showWhile(Display.getDefault(), new Runnable() {
- @Override
- public void run() {
- VolumesClient vc = new VolumesClient();
- boolean confirmDeleteDir = (directoryDeleteOption == 1) ? true : false;
- List<String> deletedVolumeNames = new ArrayList<String>();
- List<String> failedVolumes = new ArrayList<String>();
- String errorMessage = "";
+ VolumesClient vc = new VolumesClient();
+ boolean confirmDeleteDir = (directoryDeleteOption == 1) ? true : false;
+ List<String> deletedVolumeNames = new ArrayList<String>();
+ List<String> failedVolumes = new ArrayList<String>();
+ String errorMessage = "";
- for (Volume volume : selectedVolumes.toArray(new Volume[0])) {
- try {
- guiHelper.setStatusMessage("Deleting volume [" + volume.getName() + "]");
- if (volume.getStatus() == VOLUME_STATUS.ONLINE) { // stop if online volume
- vc.stopVolume(volume.getName());
- }
- vc.deleteVolume(volume.getName(), confirmDeleteDir);
- modelManager.deleteVolume(volume);
- deletedVolumeNames.add(volume.getName());
- } catch (Exception e) {
- // Volume delete succeeded and post delete operation (directory cleanup, CIFS etc) may fail
- if (vc.volumeExists(volume.getName())) {
- errorMessage += CoreConstants.NEWLINE + "[" + volume.getName() + "] : [" + e.getMessage()
- + "]";
- failedVolumes.add(volume.getName());
- } else {
- errorMessage += CoreConstants.NEWLINE + "Volume deleted, but following error occured: ["
- + e.getMessage() + "]";
- modelManager.deleteVolume(volume);
- deletedVolumeNames.add(volume.getName());
- }
- }
+ monitor.beginTask("Deleting Selected Volumes...", selectedVolumes.size());
+ for (Volume volume : selectedVolumes.toArray(new Volume[0])) {
+ try {
+ monitor.setTaskName("Deleting volume [" + volume.getName() + "]");
+ if (volume.getStatus() == VOLUME_STATUS.ONLINE) { // stop if online volume
+ vc.stopVolume(volume.getName());
}
-
- // Display the success or failure info
- if (deletedVolumeNames.size() == 0) { // No volume(s) deleted successfully
- showErrorDialog(actionDesc, "volumes " + failedVolumes + " could not be delete! "
- + CoreConstants.NEWLINE + "Error: [" + errorMessage + "]");
+ vc.deleteVolume(volume.getName(), confirmDeleteDir);
+ modelManager.deleteVolume(volume);
+ deletedVolumeNames.add(volume.getName());
+ } catch (Exception e) {
+ // Volume delete succeeded and post delete operation (directory cleanup, CIFS etc) may fail
+ if (vc.volumeExists(volume.getName())) {
+ errorMessage += CoreConstants.NEWLINE + "[" + volume.getName() + "] : [" + e.getMessage() + "]";
+ failedVolumes.add(volume.getName());
} else {
- String info = "Volumes " + deletedVolumeNames + " deleted successfully!";
- if (errorMessage != "") {
- info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volumes " + failedVolumes
- + " could not be deleted! [" + errorMessage + "]";
- }
- showInfoDialog(actionDesc, info);
+ errorMessage += CoreConstants.NEWLINE + "Volume deleted, but following error occured: ["
+ + e.getMessage() + "]";
+ modelManager.deleteVolume(volume);
+ deletedVolumeNames.add(volume.getName());
}
}
- });
- guiHelper.clearStatusMessage();
+ monitor.worked(1);
+ }
+ monitor.done();
+
+ // Display the success or failure info
+ if (deletedVolumeNames.size() == 0) { // No volume(s) deleted successfully
+ showErrorDialog(actionDesc, "volumes " + failedVolumes + " could not be delete! " + CoreConstants.NEWLINE
+ + "Error: [" + errorMessage + "]");
+ } else {
+ String info = "Volumes " + deletedVolumeNames + " deleted successfully!";
+ if (errorMessage != "") {
+ info += CoreConstants.NEWLINE + CoreConstants.NEWLINE + "Volumes " + failedVolumes
+ + " could not be deleted! [" + errorMessage + "]";
+ }
+ showInfoDialog(actionDesc, info);
+ }
}
private void collectVolumeNames() {
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/RemoveServerAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/RemoveServerAction.java
index 41fa377e..936de599 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/RemoveServerAction.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/RemoveServerAction.java
@@ -25,10 +25,9 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
import com.gluster.storage.management.client.GlusterServersClient;
import com.gluster.storage.management.console.GlusterDataModelManager;
@@ -36,63 +35,52 @@ import com.gluster.storage.management.console.utils.GUIHelper;
import com.gluster.storage.management.core.constants.CoreConstants;
import com.gluster.storage.management.core.model.GlusterServer;
-public class RemoveServerAction extends AbstractActionDelegate {
+public class RemoveServerAction extends AbstractMonitoredActionDelegate {
private GlusterDataModelManager modelManager = GlusterDataModelManager.getInstance();
private GUIHelper guiHelper = GUIHelper.getInstance();
@Override
- protected void performAction(final IAction action) {
- final Runnable removeServerThread = new Runnable() {
- @Override
- public void run() {
- final String actionDesc = action.getDescription();
+ protected void performAction(final IAction action, IProgressMonitor monitor) {
+ final String actionDesc = action.getDescription();
- Set<GlusterServer> selectedServers = guiHelper.getSelectedEntities(getWindow(),
- GlusterServer.class);
+ Set<GlusterServer> selectedServers = guiHelper.getSelectedEntities(getWindow(), GlusterServer.class);
- if (!validate(action, selectedServers)) {
- return;
- }
+ if (!validate(action, selectedServers)) {
+ return;
+ }
- boolean confirmed = showConfirmDialog(actionDesc, "Are you sure you want to remove the server(s) "
- + selectedServers + " ?");
- if (!confirmed) {
- return;
- }
+ boolean confirmed = showConfirmDialog(actionDesc, "Are you sure you want to remove the server(s) "
+ + selectedServers + " ?");
+ if (!confirmed) {
+ return;
+ }
- Set<GlusterServer> successServers = new HashSet<GlusterServer>();
- String errMsg = "";
- for (GlusterServer server : selectedServers) {
- guiHelper.setStatusMessage("Removing server [" + server.getName() + "]...");
+ Set<GlusterServer> successServers = new HashSet<GlusterServer>();
+ String errMsg = "";
+ monitor.beginTask("Removing Selected Servers...", selectedServers.size());
+ for (GlusterServer server : selectedServers) {
+ monitor.setTaskName("Removing server [" + server.getName() + "]...");
- GlusterServersClient client = new GlusterServersClient();
- try {
- client.removeServer(server.getName());
- GlusterServer glusterServer = (GlusterServer) server;
- modelManager.removeGlusterServer(glusterServer);
- successServers.add(server);
- } catch (Exception e) {
- if (!isServerExist(server.getName())) {
- modelManager.removeGlusterServer((GlusterServer) server);
- successServers.add(server);
- }
- errMsg += "[" + server.getName() + "] : " + e.getMessage();
- }
+ GlusterServersClient client = new GlusterServersClient();
+ try {
+ client.removeServer(server.getName());
+ GlusterServer glusterServer = (GlusterServer) server;
+ modelManager.removeGlusterServer(glusterServer);
+ successServers.add(server);
+ } catch (Exception e) {
+ if (!serverExists(server.getName())) {
+ modelManager.removeGlusterServer((GlusterServer) server);
+ successServers.add(server);
}
- guiHelper.clearStatusMessage();
- showStatusMessage(action.getDescription(), selectedServers, successServers, errMsg);
+ errMsg += "[" + server.getName() + "] : " + e.getMessage() + CoreConstants.NEWLINE;
}
- };
-
- BusyIndicator.showWhile(Display.getDefault(), new Runnable() {
- @Override
- public void run() {
- Display.getDefault().asyncExec(removeServerThread);
- }
- });
+ monitor.worked(1);
+ }
+ monitor.done();
+ showStatusMessage(action.getDescription(), selectedServers, successServers, errMsg);
}
- private Boolean isServerExist(String serverName) {
+ private Boolean serverExists(String serverName) {
try {
GlusterServersClient client = new GlusterServersClient();
GlusterServer server = client.getGlusterServer(serverName);
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java
index b0c9a72c..8b2b3f09 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StartVolumeAction.java
@@ -25,8 +25,6 @@ import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
import com.gluster.storage.management.client.VolumesClient;
import com.gluster.storage.management.console.GlusterDataModelManager;
@@ -41,7 +39,6 @@ public class StartVolumeAction extends AbstractMonitoredActionDelegate {
private List<Volume> selectedVolumes = new ArrayList<Volume>();
private List<String> selectedVolumeNames = new ArrayList<String>();
private List<String> offlineVolumeNames = new ArrayList<String>();
- private GUIHelper guiHelper = GUIHelper.getInstance();
@Override
protected void performAction(IAction action, IProgressMonitor monitor) {
@@ -70,9 +67,7 @@ public class StartVolumeAction extends AbstractMonitoredActionDelegate {
continue; // skip if already started
}
try {
- String message = "Starting volume [" + volume.getName() + "]";
- guiHelper.setStatusMessage(message);
- monitor.setTaskName(message);
+ monitor.setTaskName("Starting volume [" + volume.getName() + "]");
vc.startVolume(volume.getName());
startedVolumes.add(volume.getName());
} catch (Exception e) {
@@ -81,7 +76,7 @@ public class StartVolumeAction extends AbstractMonitoredActionDelegate {
if (vc.getVolume(volume.getName()).getStatus() == VOLUME_STATUS.ONLINE) {
modelManager.updateVolumeStatus(volume, VOLUME_STATUS.ONLINE);
}
- errorMessage += e.getMessage();
+ errorMessage += e.getMessage() + CoreConstants.NEWLINE;
}
// Update the model by fetching latest volume info (NOT JUST STATUS)
try {
@@ -96,7 +91,7 @@ public class StartVolumeAction extends AbstractMonitoredActionDelegate {
// Display the success or failure info
if (startedVolumes.size() == 0) { // No volume(s) started successfully
- showErrorDialog(actionDesc, "Following volumes " + failedVolumes + " could not be start!"
+ showErrorDialog(actionDesc, "Following volumes " + failedVolumes + " could not be started!"
+ CoreConstants.NEWLINE + "Error: [" + errorMessage + "]");
} else {
String info = "Volumes " + startedVolumes + " started successfully!";
@@ -106,7 +101,6 @@ public class StartVolumeAction extends AbstractMonitoredActionDelegate {
}
showInfoDialog(actionDesc, info);
}
- guiHelper.clearStatusMessage();
}
private void collectVolumeNames() {
diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java
index a449b08a..bda0e661 100644
--- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java
+++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/StopVolumeAction.java
@@ -26,8 +26,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
import com.gluster.storage.management.client.VolumesClient;
import com.gluster.storage.management.console.GlusterDataModelManager;
@@ -42,7 +40,6 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate {
private List<Volume> selectedVolumes = new ArrayList<Volume>();
private List<String> selectedVolumeNames = new ArrayList<String>();
private List<String> onlineVolumeNames = new ArrayList<String>();
- private GUIHelper guiHelper = GUIHelper.getInstance();
@Override
protected void performAction(final IAction action, IProgressMonitor monitor) {
@@ -82,9 +79,7 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate {
continue; // skip if already stopped
}
try {
- String message = "Stopping volume [" + volume.getName() + "]";
- guiHelper.setStatusMessage(message);
- monitor.setTaskName(message);
+ monitor.setTaskName("Stopping volume [" + volume.getName() + "]");
vc.stopVolume(volume.getName());
// modelManager.updateVolumeStatus(volume, VOLUME_STATUS.OFFLINE);
stoppedVolumes.add(volume.getName());
@@ -94,7 +89,7 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate {
if (vc.getVolume(volume.getName()).getStatus() == VOLUME_STATUS.OFFLINE) {
modelManager.updateVolumeStatus(volume, VOLUME_STATUS.OFFLINE);
}
- errorMessage += e.getMessage();
+ errorMessage += e.getMessage() + CoreConstants.NEWLINE;
}
// Update the model by fetching latest volume info (NOT JUST STATUS)
@@ -120,7 +115,6 @@ public class StopVolumeAction extends AbstractMonitoredActionDelegate {
}
showInfoDialog(actionDesc, info);
}
- guiHelper.clearStatusMessage();
}
private void collectVolumeNames() {