You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/08/11 23:44:02 UTC
[2/2] incubator-usergrid git commit: add existence check
add existence check
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/9f81d7bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/9f81d7bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/9f81d7bc
Branch: refs/heads/two-dot-o-dev
Commit: 9f81d7bcb988e6c8247140431321f72378c7a313
Parents: 2ec1d23
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Aug 11 15:40:07 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Aug 11 15:40:07 2015 -0600
----------------------------------------------------------------------
.../migration/data/DataMigrationManager.java | 6 +++
.../data/DataMigrationManagerImpl.java | 5 ++-
.../data/DataMigrationManagerImplTest.java | 46 +++++++++++++++++++-
.../apache/usergrid/rest/MigrateResource.java | 6 +++
4 files changed, 61 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9f81d7bc/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManager.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManager.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManager.java
index 3e24e6b..b84595b 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManager.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManager.java
@@ -31,6 +31,12 @@ import org.apache.usergrid.persistence.core.migration.schema.MigrationException;
public interface DataMigrationManager {
/**
+ * check for plugin existence
+ * @param name
+ * @return
+ */
+ public boolean pluginExists(final String name) ;
+ /**
* Perform any migration necessary in the application. Will only create keyspaces and column families if they do
* not exist
*/
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9f81d7bc/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java
index ecf271a..7282b4d 100644
--- a/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java
+++ b/stack/corepersistence/common/src/main/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImpl.java
@@ -93,7 +93,10 @@ public class DataMigrationManagerImpl implements DataMigrationManager {
}
-
+ @Override
+ public boolean pluginExists(final String name) {
+ return migrationPlugins.containsKey(name);
+ }
@Override
public void migrate(final String name) throws MigrationException {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9f81d7bc/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java
index 2012191..c47a77f 100644
--- a/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java
+++ b/stack/corepersistence/common/src/test/java/org/apache/usergrid/persistence/core/migration/data/DataMigrationManagerImplTest.java
@@ -135,7 +135,7 @@ public class DataMigrationManagerImplTest {
assertEquals(2, pluginNames.size());
- assertTrue( pluginNames.contains( "plugin1" ) );
+ assertTrue(pluginNames.contains("plugin1"));
assertTrue(pluginNames.contains("plugin2"));
@@ -147,6 +147,50 @@ public class DataMigrationManagerImplTest {
}
+
+ @Test
+ public void testPluginExists() throws MigrationException {
+
+ final Set<MigrationPlugin> plugins = new HashSet<>();
+
+ MigrationPlugin plugin1 = mock( MigrationPlugin.class );
+ when( plugin1.getPhase() ).thenReturn( PluginPhase.MIGRATE );
+
+ when( plugin1.getName() ).thenReturn( "plugin1" );
+
+ MigrationPlugin plugin2 = mock( MigrationPlugin.class );
+ when( plugin2.getPhase() ).thenReturn( PluginPhase.MIGRATE );
+
+ when( plugin2.getName() ).thenReturn( "plugin2" );
+
+ plugins.add( plugin1 );
+ plugins.add( plugin2 );
+
+
+ final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class );
+ final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class);
+
+
+ DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization,migrationInfoCache );
+
+
+ Set<String> pluginNames = migrationManager.getPluginNames();
+
+ assertEquals(2, pluginNames.size());
+
+ assertTrue(pluginNames.contains("plugin1"));
+
+ assertTrue(pluginNames.contains("plugin2"));
+
+ //now run them
+
+ assertTrue( migrationManager.pluginExists("plugin1") );
+ assertTrue( migrationManager.pluginExists("plugin2") );
+ assertFalse( migrationManager.pluginExists("plugin3") );
+
+
+ }
+
@Test
public void test2PluginsPhaseOrder() throws MigrationException {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9f81d7bc/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 dad74f4..7410927 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
@@ -118,11 +118,17 @@ public class MigrateResource extends AbstractContextResource {
@QueryParam( "callback" ) @DefaultValue( "callback" ) String callback )
throws Exception {
+ if(!getDataMigrationManager().pluginExists(pluginName)){
+ throw new IllegalArgumentException("Plugin doesn't exits name:"+pluginName);
+ }
+
ApiResponse response = createApiResponse();
response.setAction( "Migrate Data: "+ pluginName );
//TODO make this use the task scheduler
+
+
final Thread migrate = new Thread() {
@Override