fixed issue with --rundisabled flag 35/95135/1
authorankitbhatt <ankit.bhatt@amdocs.com>
Fri, 6 Sep 2019 11:36:32 +0000 (17:06 +0530)
committerankitbhatt <ankit.bhatt@amdocs.com>
Fri, 6 Sep 2019 11:37:06 +0000 (17:07 +0530)
also fixed issues for picking up the migrators without having migrator priority flag

Issue-ID: AAI-2387
Signed-off-by: Ankit Bhatt <ankit.bhatt@amdocs.com>
Change-Id: I992eea15299cbe10af5196e795f68d4a4b4d21b3

src/main/java/org/onap/aai/migration/MigrationControllerInternal.java
src/test/java/org/onap/aai/migration/MigrationControllerInternalTest.java

index b94460a..55b03fb 100644 (file)
@@ -317,7 +317,9 @@ public class MigrationControllerInternal {
                return engine.asAdmin().getReadOnlyTraversalSource().V().has(AAIProperties.NODE_TYPE, VERTEX_TYPE).has(name, true).hasNext();
        }
        private Set<Class<? extends Migrator>> findClasses(Reflections reflections) {
-               Set<Class<? extends Migrator>> migratorClasses = reflections.getSubTypesOf(Migrator.class);
+               Set<Class<? extends Migrator>> migratorClasses = reflections.getSubTypesOf(Migrator.class).stream()
+                               .filter(clazz -> clazz.isAnnotationPresent(MigrationPriority.class))
+                               .collect(Collectors.toSet());
                /*
                 * TODO- Change this to make sure only classes in the specific $release are added in the runList
                 * Or add a annotation like exclude which folks again need to remember to add ??
@@ -353,15 +355,17 @@ public class MigrationControllerInternal {
     private List<Class<? extends Migrator>> createMigratorList(CommandLineArgs cArgs,
             List<Class<? extends Migrator>> migratorClasses) {
         List<Class<? extends Migrator>> migratorClassesToRun = new ArrayList<>();
-        if (cArgs.scripts.isEmpty() && cArgs.runDisabled.isEmpty()) {
+        if (cArgs.scripts.isEmpty()) {
             return migratorClasses;
-
         }
+        
         for (Class<? extends Migrator> migratorClass : migratorClasses) {
-            if (migratorExplicitlySpecified(cArgs, migratorClass.getSimpleName()) || migratorToRunWhenDisabled(cArgs, migratorClass.getSimpleName())) {
+            if (migratorExplicitlySpecified(cArgs, migratorClass.getSimpleName()) 
+                    || migratorToRunWhenDisabled(cArgs, migratorClass.getSimpleName())) {
                 migratorClassesToRun.add(migratorClass);
             }
         }
+        
         return migratorClassesToRun;
     }
 
index 8e9f88f..215dd55 100644 (file)
@@ -242,7 +242,29 @@ public class MigrationControllerInternalTest extends AAISetup {
         System.setOut(new PrintStream(myOut));
         String [] args = {
                 "-c", "./bundleconfig-local/etc/appprops/janusgraph-realtime.properties",
-                "-m", "SDWANSpeedChangeMigration",
+                "-m", "MigrateBooleanDefaultsToFalse",
+                " --skipPreMigrationSnapShot",
+                "--commit",
+                "--runDisabled","RebuildAllEdges",
+                "-f"
+        };
+        migrationControllerInternal.run(args);
+        String content = myOut.toString();
+        assertThat("RebuildAllEdges didn't run", content.contains("igration RebuildAllEdges Succeeded."));
+        assertThat("MigrateBooleanDefaultsToFalse didn't run", content.contains("igration MigrateBooleanDefaultsToFalse Succeeded."));
+        System.setOut(oldOutputStream);
+    }
+    
+    @Test
+    public void testSkipSpecificMigrationWithRunDisabledAndCommit() throws Exception {
+        assertThat("rebuildAllEdges shouldn't have enabled annotation", !RebuildAllEdges.class.isAnnotationPresent(Enabled.class));
+        PrintStream oldOutputStream = System.out;
+        final ByteArrayOutputStream myOut = new ByteArrayOutputStream();
+        System.setOut(new PrintStream(myOut));
+        String [] args = {
+                "-c", "./bundleconfig-local/etc/appprops/janusgraph-realtime.properties",
+                "-e", "MigrateRadcomChanges",
+                "--skipPreMigrationSnapShot",
                 "--commit",
                 "--runDisabled","RebuildAllEdges",
                 "-f"
@@ -250,7 +272,9 @@ public class MigrationControllerInternalTest extends AAISetup {
         migrationControllerInternal.run(args);
         String content = myOut.toString();
         assertThat("RebuildAllEdges didn't run", content.contains("igration RebuildAllEdges Succeeded."));
-        assertThat("SDWANSpeedChangeMigration shouldn't run", !content.contains("igration SDWANSpeedChangeMigration Succeeded."));
+        //all other mirgrators should run along with rebuild edges.
+        assertThat("MigrateBooleanDefaultsToFalse didn't run", content.contains("igration MigrateBooleanDefaultsToFalse Succeeded."));
+        assertThat("MigrateRadcomChanges shouldn't run", !content.contains("igration MigrateRadcomChanges Succeeded."));
         System.setOut(oldOutputStream);
     }
 
@@ -262,8 +286,10 @@ public class MigrationControllerInternalTest extends AAISetup {
         System.setOut(new PrintStream(myOut));
         String [] args = {
                 "-c", "./bundleconfig-local/etc/appprops/janusgraph-realtime.properties",
+                "--skipPreMigrationSnapShot",
                 "--commit",
-                "--runDisabled","RebuildAllEdges"
+                "--runDisabled","RebuildAllEdges",
+                "-f"
         };
         migrationControllerInternal.run(args);
         String content = myOut.toString();
@@ -282,7 +308,8 @@ public class MigrationControllerInternalTest extends AAISetup {
                 "-c", "./bundleconfig-local/etc/appprops/janusgraph-realtime.properties",
                 "--commit",
                 "--runDisabled","RebuildAllEdges",
-                "-e","RebuildAllEdges"
+                "-e","RebuildAllEdges",
+                "-f"
         };
         migrationControllerInternal.run(args);
         String content = myOut.toString();