Repository: incubator-usergrid Updated Branches: refs/heads/USERGRID-908 2ec1d237d -> 9f81d7bcb
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/USERGRID-908 Commit: 9f81d7bcb988e6c8247140431321f72378c7a313 Parents: 2ec1d23 Author: Shawn Feldman <sfeld...@apache.org> Authored: Tue Aug 11 15:40:07 2015 -0600 Committer: Shawn Feldman <sfeld...@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