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