From 43eb26206073ccf4a0601204316ec1e636719371 Mon Sep 17 00:00:00 2001 From: ankitbhatt Date: Fri, 6 Sep 2019 17:06:32 +0530 Subject: fixed issue with --rundisabled flag also fixed issues for picking up the migrators without having migrator priority flag Issue-ID: AAI-2387 Signed-off-by: Ankit Bhatt Change-Id: I992eea15299cbe10af5196e795f68d4a4b4d21b3 (cherry picked from commit 949046b14b13cbe52b7ad3aca7cd6aaf7d4c7038) --- .../aai/migration/MigrationControllerInternal.java | 12 +++++--- .../migration/MigrationControllerInternalTest.java | 35 +++++++++++++++++++--- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/onap/aai/migration/MigrationControllerInternal.java b/src/main/java/org/onap/aai/migration/MigrationControllerInternal.java index b94460a..55b03fb 100644 --- a/src/main/java/org/onap/aai/migration/MigrationControllerInternal.java +++ b/src/main/java/org/onap/aai/migration/MigrationControllerInternal.java @@ -317,7 +317,9 @@ public class MigrationControllerInternal { return engine.asAdmin().getReadOnlyTraversalSource().V().has(AAIProperties.NODE_TYPE, VERTEX_TYPE).has(name, true).hasNext(); } private Set> findClasses(Reflections reflections) { - Set> migratorClasses = reflections.getSubTypesOf(Migrator.class); + Set> 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> createMigratorList(CommandLineArgs cArgs, List> migratorClasses) { List> migratorClassesToRun = new ArrayList<>(); - if (cArgs.scripts.isEmpty() && cArgs.runDisabled.isEmpty()) { + if (cArgs.scripts.isEmpty()) { return migratorClasses; - } + for (Class 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; } diff --git a/src/test/java/org/onap/aai/migration/MigrationControllerInternalTest.java b/src/test/java/org/onap/aai/migration/MigrationControllerInternalTest.java index 8e9f88f..215dd55 100644 --- a/src/test/java/org/onap/aai/migration/MigrationControllerInternalTest.java +++ b/src/test/java/org/onap/aai/migration/MigrationControllerInternalTest.java @@ -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(); -- cgit 1.2.3-korg