1 package org.openecomp.sdc.asdctool.migration.main;
3 import org.apache.commons.cli.CommandLine;
4 import org.apache.commons.cli.CommandLineParser;
5 import org.apache.commons.cli.DefaultParser;
6 import org.apache.commons.cli.HelpFormatter;
7 import org.apache.commons.cli.Option;
8 import org.apache.commons.cli.Options;
9 import org.apache.commons.cli.ParseException;
10 import org.openecomp.sdc.asdctool.migration.config.MigrationSpringConfig;
11 import org.openecomp.sdc.asdctool.migration.core.SdcMigrationTool;
12 import org.openecomp.sdc.be.config.ConfigurationManager;
13 import org.openecomp.sdc.common.api.ConfigurationSource;
14 import org.openecomp.sdc.common.impl.ExternalConfiguration;
15 import org.openecomp.sdc.common.impl.FSConfigurationSource;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
20 public class MigrationMenu {
22 private final static Logger LOGGER = LoggerFactory.getLogger(MigrationMenu.class);
24 public static void main(String[] args) {
25 CommandLine commandLine = initCmdLineOptions(args);
26 String appConfigDir = commandLine.getOptionValue("c");
27 boolean enforceAll = commandLine.hasOption("e");
28 uploadConfiguration(appConfigDir);
29 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MigrationSpringConfig.class);
30 doMigrate(enforceAll, context);
34 private static void doMigrate(boolean enforceAll, AnnotationConfigApplicationContext context) {
35 SdcMigrationTool migrationTool = context.getBean(SdcMigrationTool.class);
36 boolean migrate = migrationTool.migrate(enforceAll);
38 LOGGER.info("migration completed successfully");
41 LOGGER.error("migration failed");
46 private static CommandLine initCmdLineOptions(String[] args) {
47 Options options = buildCmdLineOptions();
48 CommandLineParser parser = new DefaultParser();
50 // parse the command line arguments
51 return parser.parse( options, args );
53 catch( ParseException exp ) {
54 // oops, something went wrong
55 System.err.println( "Parsing failed. Reason: " + exp.getMessage() );
56 usageAndExit(options);
61 private static void usageAndExit(Options options) {
62 HelpFormatter formatter = new HelpFormatter();
63 formatter.printHelp( "yy", options );
67 private static Options buildCmdLineOptions() {
68 Option configPath = buildConfigPathOption();
70 Option enforceAll = buildEnforceAllOption();
72 Options options = new Options();
73 options.addOption(configPath);
74 options.addOption(enforceAll);
78 private static Option buildEnforceAllOption() {
79 return Option.builder("e")
80 .longOpt("enforceAll")
81 .desc("enforce running all migration steps for current version")
85 private static Option buildConfigPathOption() {
86 return Option.builder("c")
87 .longOpt("configFolderPath")
90 .desc("path to sdc configuration folder - required")
94 private static void uploadConfiguration(String appConfigDir) {
95 ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir);
96 ConfigurationManager configurationManager = new ConfigurationManager(configurationSource);