You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2015/03/09 21:56:15 UTC
[3/3] incubator-usergrid git commit: Added REST tier invocation for
migrations.
Added REST tier invocation for migrations.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/1eca2718
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/1eca2718
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/1eca2718
Branch: refs/heads/USERGRID-405
Commit: 1eca2718df182dc93bbb269f20f3abfd467756a7
Parents: aa01d73
Author: Todd Nine <tn...@apigee.com>
Authored: Mon Mar 9 14:56:10 2015 -0600
Committer: Todd Nine <tn...@apigee.com>
Committed: Mon Mar 9 14:56:10 2015 -0600
----------------------------------------------------------------------
.../corepersistence/CpEntityManagerFactory.java | 1 -
.../apache/usergrid/rest/MigrateResource.java | 52 +++++++++++++++-----
2 files changed, 39 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/1eca2718/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
index 45d94d4..c58cd5e 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
@@ -131,7 +131,6 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
this.counterUtils = counterUtils;
this.injector = injector;
this.managerCache = injector.getInstance( ManagerCache.class );
- this.dataMigrationManager = injector.getInstance( DataMigrationManager.class );
this.metricsFactory = injector.getInstance( MetricsFactory.class );
this.orgApplicationCache = new OrgApplicationCacheImpl( this );
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/1eca2718/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
index 702d134..a6d2daa 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/MigrateResource.java
@@ -20,6 +20,7 @@ package org.apache.usergrid.rest;
import java.util.Map;
+import java.util.Set;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
@@ -37,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
+import org.apache.usergrid.persistence.core.migration.data.DataMigrationManager;
import org.apache.usergrid.persistence.core.migration.schema.MigrationManager;
import org.apache.usergrid.rest.security.annotations.RequireSystemAccess;
@@ -62,6 +64,7 @@ public class MigrateResource extends AbstractContextResource {
logger.info( "SystemResource initialized" );
}
+
@Autowired
private Injector guiceInjector;
@@ -78,8 +81,6 @@ public class MigrateResource extends AbstractContextResource {
//TODO make this use the task scheduler
-
-
final Thread migrate = new Thread() {
@Override
@@ -106,7 +107,6 @@ public class MigrateResource extends AbstractContextResource {
}
-
@RequireSystemAccess
@PUT
@Path( "set" )
@@ -118,17 +118,23 @@ public class MigrateResource extends AbstractContextResource {
Preconditions.checkNotNull( json, "You must provide a json body" );
- Preconditions.checke
- String version = ( String ) json.get( "version" );
+ Preconditions.checkArgument( json.keySet().size() > 0, "You must specify at least one module and version" );
- Preconditions
- .checkArgument( version != null && version.length() > 0, "You must specify a version field in your json" );
+ /**
+ * Set the migration version for the plugins specified
+ */
+ for ( final String key : json.keySet() ) {
+ String version = ( String ) json.get( key );
+ Preconditions.checkArgument( version != null && version.length() > 0,
+ "You must specify a version field per module name" );
- int intVersion = Integer.parseInt( version );
- emf.setMigrationVersion( intVersion );
+ int intVersion = Integer.parseInt( version );
+
+ getDataMigrationManager().resetToVersion( key, intVersion );
+ }
return migrateStatus( ui, callback );
@@ -146,9 +152,16 @@ public class MigrateResource extends AbstractContextResource {
response.setAction( "Migrate Schema indexes" );
ObjectNode node = JsonNodeFactory.instance.objectNode();
- node.put( "currentVersion", emf.getMigrateDataVersion() );
- node.put( "lastMessage", emf.getMigrateDataStatus() );
- response.setProperty( "status", node );
+
+
+
+ final DataMigrationManager dataMigrationManager = getDataMigrationManager();
+
+ final Set<String> plugins = dataMigrationManager.getPluginNames();
+
+ for(final String pluginName: plugins){
+ node.put( pluginName, dataMigrationManager.getCurrentVersion( pluginName ) );
+ }
response.setSuccess();
@@ -173,7 +186,20 @@ public class MigrateResource extends AbstractContextResource {
return new JSONWithPadding( response, callback );
}
- private MigrationManager getMigrationManager(){
+
+ /**
+ * Get the Data migraiton manager
+ */
+ private DataMigrationManager getDataMigrationManager() {
+ return guiceInjector.getInstance( DataMigrationManager.class );
+ }
+
+
+ /**
+ * Get the Data migraiton manager
+ */
+ private MigrationManager getMigrationManager() {
return guiceInjector.getInstance( MigrationManager.class );
}
}
+