summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-07-06 18:32:32 +0530
committerDhandapani <dhandapani@gluster.com>2011-07-06 18:32:32 +0530
commitaf3d4028e2ae2292ad62824467081844066efa2f (patch)
treee3d5e8e7891c41cd22041e5437ec7a41178f0b19 /src/com.gluster.storage.management.server
parentb1facccacf33b47682f3257f7fbc6ba394ec6b79 (diff)
parent9f0728357a909a9b38d74866ebb03a1be23dae87 (diff)
Merge branch 'master' of git@github.com:gluster/console
Diffstat (limited to 'src/com.gluster.storage.management.server')
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java2
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/BrickMigrationStatusTask.java (renamed from src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/DiskMigrationStatusTask.java)3
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitServerTask.java6
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java44
-rw-r--r--src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml2
-rw-r--r--src/com.gluster.storage.management.server/src/spring/gluster-server-security.xml8
6 files changed, 32 insertions, 33 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
index 1acba6b7..38b68040 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/v1_0/TasksResource.java
@@ -153,7 +153,7 @@ public class TasksResource extends AbstractResource {
@DELETE
@Path("/{" + PATH_PARAM_TASK_ID + "}")
@Produces(MediaType.APPLICATION_XML)
- public Response deleteTask(@PathParam(PATH_PARAM_TASK_ID) String taskId,
+ public Response clearTask(@PathParam(PATH_PARAM_TASK_ID) String taskId,
@QueryParam(FORM_PARAM_OPERATION) String taskOperation) {
Task task = getTask(taskId);
if (task == null) {
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/DiskMigrationStatusTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/BrickMigrationStatusTask.java
index ccfd58be..0f00ad3a 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/DiskMigrationStatusTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/BrickMigrationStatusTask.java
@@ -27,7 +27,7 @@ import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE;
import com.gluster.storage.management.server.resources.v1_0.TasksResource;
@Component
-public class DiskMigrationStatusTask {
+public class BrickMigrationStatusTask {
@Autowired
private TasksResource tasksResource;
@@ -39,5 +39,4 @@ public class DiskMigrationStatusTask {
}
}
}
-
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitServerTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitServerTask.java
index 8e38bd40..3fe794f5 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitServerTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/InitServerTask.java
@@ -94,7 +94,7 @@ public class InitServerTask extends JdbcDaoSupport {
}
private void initDatabase() {
- logger.debug("Initializing server data...");
+ logger.info("Initializing server data...");
executeScriptsFrom(getDirFromRelativePath(SCRIPT_DIR + appVersion));
securePasswords(); // encrypt the passwords
@@ -134,7 +134,7 @@ public class InitServerTask extends JdbcDaoSupport {
upgradeData(dbVersion, appVersion);
}
} catch (Exception ex) {
- ex.printStackTrace();
+ logger.info("No cluster created yet. DB version query failed with error [" + ex.getMessage() + "]", ex);
// Database not created yet. Create it!
initDatabase();
}
@@ -148,7 +148,7 @@ public class InitServerTask extends JdbcDaoSupport {
logger.info("Cluster: [" + cluster.getId() + "][" + cluster.getName() + "]");
}
} else {
- logger.info("No cluster created yet.");
+
}
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java
index af5e657a..9236a6d3 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/tasks/MigrateBrickTask.java
@@ -20,22 +20,16 @@
*/
package com.gluster.storage.management.server.tasks;
-import java.util.concurrent.ExecutionException;
-
-import org.apache.derby.iapi.sql.execute.ExecPreparedStatement;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.ContextLoader;
import com.gluster.storage.management.core.exceptions.ConnectionException;
-import com.gluster.storage.management.core.exceptions.GlusterRuntimeException;
import com.gluster.storage.management.core.model.Status;
-import com.gluster.storage.management.core.model.TaskInfo;
import com.gluster.storage.management.core.model.TaskInfo.TASK_TYPE;
import com.gluster.storage.management.core.model.TaskStatus;
import com.gluster.storage.management.core.utils.ProcessResult;
import com.gluster.storage.management.server.services.ClusterService;
import com.gluster.storage.management.server.utils.GlusterUtil;
-import com.gluster.storage.management.server.utils.SshUtil;
import com.sun.jersey.core.util.Base64;
public class MigrateBrickTask extends Task {
@@ -142,6 +136,19 @@ public class MigrateBrickTask extends Task {
commitMigration(getNewOnlineServer().getName());
}
}
+
+ private void commitMigration(String serverName) {
+ ProcessResult processResult = glusterUtil.executeBrickMigration(serverName, getTaskInfo().getReference(),
+ getFromBrick(), getToBrick(), "commit");
+ TaskStatus taskStatus = new TaskStatus();
+ if (processResult.isSuccess()) {
+ if (processResult.getOutput().trim().matches(".*commit successful$")) {
+ taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
+ taskStatus.setMessage(processResult.getOutput());
+ getTaskInfo().setStatus(taskStatus);
+ }
+ }
+ }
@Override
public void stop() {
@@ -173,30 +180,25 @@ public class MigrateBrickTask extends Task {
return checkMigrationStatus(getNewOnlineServer().getName());
}
}
-
- public void commitMigration(String serverName) {
- ProcessResult processResult = glusterUtil.executeBrickMigration(serverName, getTaskInfo().getReference(),
- getFromBrick(), getToBrick(), "commit");
- TaskStatus taskStatus = new TaskStatus();
- if (processResult.isSuccess()) {
- if (processResult.getOutput().trim().matches(".*commit successful$")) {
- taskStatus.setCode(Status.STATUS_CODE_SUCCESS);
- taskStatus.setMessage(processResult.getOutput()); // Common
- getTaskInfo().setStatus(taskStatus);
- }
- }
- }
-
+
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$")) {
+ 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
taskStatus.setCode(Status.STATUS_CODE_COMMIT_PENDING);
if (autoCommit) {
commitMigration(serverName);
diff --git a/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml b/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml
index 0a000732..b9fb2126 100644
--- a/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml
+++ b/src/com.gluster.storage.management.server/src/spring/gluster-server-base.xml
@@ -19,7 +19,7 @@
<!-- This task keeps checking status of disk migration tasks (wherever auto-commit is set to true)
so that auto-commit can be performed as soon as the migration is complete -->
<task:scheduled-tasks>
- <task:scheduled ref="diskMigrationStatusTask" method="checkMigrationStatus" fixed-delay="60000" />
+ <task:scheduled ref="brickMigrationStatusTask" method="checkMigrationStatus" fixed-delay="60000" />
</task:scheduled-tasks>
<!-- Cluster environment. Valid values: vmware, aws, baremetal -->
diff --git a/src/com.gluster.storage.management.server/src/spring/gluster-server-security.xml b/src/com.gluster.storage.management.server/src/spring/gluster-server-security.xml
index c8301c7b..6f3ad72f 100644
--- a/src/com.gluster.storage.management.server/src/spring/gluster-server-security.xml
+++ b/src/com.gluster.storage.management.server/src/spring/gluster-server-security.xml
@@ -11,15 +11,13 @@
">
<http auto-config="true" use-expressions="true">
- <!-- intercept-url pattern="/resources/*"
+ <!-- intercept-url pattern="/1.0/*"
access="hasRole('ROLE_ADMIN') and fullyAuthenticated" />
<intercept-url pattern="/*" access="permitAll" /-->
<!-- SSL Protection -->
- <intercept-url pattern="/1.0/*" access="hasRole('ROLE_ADMIN')
- and fullyAuthenticated"
- requires-channel="https" />
- <intercept-url pattern="/*" access="permitAll" requires-channel="any" />
+ <intercept-url pattern="/*" access="hasRole('ROLE_ADMIN') and fullyAuthenticated" requires-channel="https" />
+ <!-- intercept-url pattern="/*" access="permitAll" requires-channel="any" /-->
<port-mappings>
<port-mapping http="8080" https="8443" />
</port-mappings>