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