Sync Integ to Master
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / migration / main / MigrationMenu.java
1 package org.openecomp.sdc.asdctool.migration.main;
2
3 import org.apache.commons.cli.Option;
4 import org.apache.commons.cli.Options;
5 import org.openecomp.sdc.asdctool.cli.CLIToolData;
6 import org.openecomp.sdc.asdctool.cli.SpringCLITool;
7 import org.openecomp.sdc.asdctool.migration.config.MigrationSpringConfig;
8 import org.openecomp.sdc.asdctool.migration.core.SdcMigrationTool;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11 import org.springframework.context.support.AbstractApplicationContext;
12
13 public class MigrationMenu extends SpringCLITool {
14
15     private static final Logger LOGGER = LoggerFactory.getLogger(MigrationMenu.class);
16
17     public static void main(String[] args) {
18         MigrationMenu migrationMenu = new MigrationMenu();
19         CLIToolData cliToolData = migrationMenu.init(args);
20         boolean enforceAll = cliToolData.getCommandLine().hasOption("e");
21         migrationMenu.doMigrate(enforceAll, cliToolData.getSpringApplicationContext());
22     }
23
24     private void doMigrate(boolean enforceAll, AbstractApplicationContext context) {
25         SdcMigrationTool migrationTool = context.getBean(SdcMigrationTool.class);
26         boolean migrate = migrationTool.migrate(enforceAll);
27         if (migrate) {
28             LOGGER.info("migration completed successfully");
29             System.exit(0);
30         } else {
31             LOGGER.error("migration failed");
32             System.exit(1);
33         }
34     }
35
36     @Override
37     protected Options buildCmdLineOptions() {
38         Options options = super.buildCmdLineOptions();
39         Option enforceAll = buildEnforceAllOption();
40         options.addOption(enforceAll);
41         return options;
42     }
43
44     @Override
45     protected String commandName() {
46         return "sdc-migration";
47     }
48
49     private static Option buildEnforceAllOption() {
50         return Option.builder("e")
51                 .longOpt("enforceAll")
52                 .desc("enforce running all migration steps for current version")
53                 .build();
54     }
55
56     @Override
57     protected Class<?> getSpringConfigurationClass() {
58         return MigrationSpringConfig.class;
59     }
60 }