diff options
| author | Selvasundaram <selvam@gluster.com> | 2011-08-03 19:00:08 +0530 |
|---|---|---|
| committer | Selvasundaram <selvam@gluster.com> | 2011-08-03 20:46:12 +0530 |
| commit | e74c6c504985d49d894e60c3287bd7f295ad5adc (patch) | |
| tree | 8ad3f7f3d9df9ca9e5a56297ef9529aca93b39ea /src | |
| parent | b9c4d3be47ba747448ef6343b6958bc01dac22c1 (diff) | |
Migrate brick Paused status GlusterFS enhancement incorporated
Diffstat (limited to 'src')
| -rw-r--r-- | src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java index 694067aa..cc2c2b97 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/MigrateBrickTask.java @@ -186,37 +186,35 @@ public class MigrateBrickTask extends Task { } private TaskStatus checkMigrationStatus(String serverName) { - if (getTaskInfo().getStatus().getCode() == Status.STATUS_CODE_PAUSE) { - return getTaskInfo().getStatus(); - } // For committed task, status command (CLI) is invalid, just return current status if (getTaskInfo().getStatus().getCode() == Status.STATUS_CODE_SUCCESS) { return getTaskInfo().getStatus(); } - TaskStatus taskStatus = new TaskStatus(); try { ProcessResult processResult = glusterUtil.executeBrickMigration(serverName, getTaskInfo().getReference(), getFromBrick(), getToBrick(), "status"); - if (processResult.getOutput().trim().matches("^Number of files migrated.*Migration complete$") - || processResult.getOutput().trim().matches("^Number of files migrated = 0 .*Current file=")) { - // Note: Workaround - if no file in the volume brick to migrate, Gluster CLI is not giving proper - // (complete) status + String output = processResult.getOutput().trim(); + if (output.matches("^Number of files migrated.*Migration complete$") + || output.matches("^Number of files migrated = 0 .*Current file=")) { + // Note: Workaround - if no file in the volume brick to migrate, + // Gluster CLI is not giving proper (complete) status taskStatus.setCode(Status.STATUS_CODE_COMMIT_PENDING); if (autoCommit) { commitMigration(serverName); return getTaskInfo().getStatus(); // return the committed status } else { - taskStatus.setMessage(processResult.getOutput().trim() - .replaceAll("Migration complete", "Commit pending")); + taskStatus.setMessage(output.replaceAll("Migration complete", "Commit pending")); } - } else if (processResult.getOutput().trim().matches("^Number of files migrated.*Current file=.*")) { + } else if (output.matches("^Number of files migrated.*Current file=.*")) { taskStatus.setCode(Status.STATUS_CODE_RUNNING); + } else if (output.matches("^replace brick has been paused.*")) { + taskStatus.setCode(Status.STATUS_CODE_PAUSE); } else { taskStatus.setCode(Status.STATUS_CODE_FAILURE); } - taskStatus.setMessage(processResult.getOutput()); + taskStatus.setMessage(output); } catch (Exception e) { taskStatus.setCode(Status.STATUS_CODE_FAILURE); taskStatus.setMessage(e.getMessage()); |
