From c2fcd1775f60ddf7f3a3be39d7d9b70fa00da90a Mon Sep 17 00:00:00 2001 From: Dhandapani Date: Wed, 28 Sep 2011 15:51:45 +0530 Subject: Story #41: Volume Log Rotate --- .../plugin.xml | 18 ++++++ .../console/actions/VolumeLogRotateAction.java | 64 ++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/actions/VolumeLogRotateAction.java (limited to 'src/com.gluster.storage.management.console') diff --git a/src/com.gluster.storage.management.console/plugin.xml b/src/com.gluster.storage.management.console/plugin.xml index e7c2c2d4..6983b9dd 100644 --- a/src/com.gluster.storage.management.console/plugin.xml +++ b/src/com.gluster.storage.management.console/plugin.xml @@ -302,6 +302,11 @@ id="com.gluster.storage.management.console.commands.Preferences" name="Settings"> + + @@ -520,6 +525,19 @@ id="com.gluster.storage.management.console.actionsets.volume" label="Volume Actions" visible="false"> + + bricks; + + @Override + public void dispose() { + } + + @Override + protected void performAction(IAction action) { + final String actionDesc = action.getDescription(); + List selectedBricks = new ArrayList(); + boolean confirmed = showConfirmDialog(actionDesc, + "Are you sure you want to Rotate logs for volume [" + volume.getName() + "] ? "); + if (!confirmed) { + return; + } + + if (bricks != null) { + selectedBricks = GlusterCoreUtil.getQualifiedBrickList(bricks); + } + try { + new VolumesClient().volumeLogRotate(volume.getName(), selectedBricks); + showInfoDialog(actionDesc, "Volume logs for [" + volume.getName() + "] rotated successfully!"); + } catch (Exception e) { + showErrorDialog(actionDesc, "Volume [" + volume.getName() + "] log rotation failed! Error: [" + e.getMessage() + "]"); + } + } + + @Override + public void selectionChanged(IAction action, ISelection selection) { + super.selectionChanged(action, selection); + volume = (Volume) guiHelper.getSelectedEntity(window, Volume.class); + + if (volume != null) { + // a volume is selected on navigation tree. Let's check if the currently open view is volume bricks view + IWorkbenchPart view = guiHelper.getActiveView(); + if (view instanceof VolumeBricksView) { + // volume bricks view is open. check if any brick is selected + bricks = GUIHelper.getInstance().getSelectedEntities(getWindow(), Brick.class); + } + } + } + +} -- cgit