diff options
Diffstat (limited to 'openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/importinfo/ImportDataCommand.java')
-rw-r--r-- | openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/importinfo/ImportDataCommand.java | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/importinfo/ImportDataCommand.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/importinfo/ImportDataCommand.java index 17b7d64cb4..6f18bca9b8 100644 --- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/importinfo/ImportDataCommand.java +++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/importinfo/ImportDataCommand.java @@ -1,7 +1,18 @@ package org.openecomp.core.tools.importinfo; +import static org.openecomp.core.tools.commands.CommandName.IMPORT; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.stream.Stream; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Option; import org.apache.commons.io.FileUtils; +import org.openecomp.core.tools.commands.Command; +import org.openecomp.core.tools.commands.CommandName; import org.openecomp.core.tools.exportinfo.ExportDataCommand; import org.openecomp.core.tools.util.Utils; import org.openecomp.core.tools.util.ZipUtils; @@ -9,28 +20,40 @@ import org.openecomp.core.zusammen.impl.CassandraConnectionInitializer; import org.openecomp.sdc.logging.api.Logger; import org.openecomp.sdc.logging.api.LoggerFactory; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.stream.Stream; +public class ImportDataCommand extends Command { + + private static final Logger LOGGER = LoggerFactory.getLogger(ImportDataCommand.class); + private static final String FILE_OPTION = "f"; -public class ImportDataCommand { + public ImportDataCommand() { + options.addOption(Option.builder(FILE_OPTION).hasArg().argName("file").desc("export file (zip), mandatory").build()); + } - private static final Logger logger = LoggerFactory.getLogger(ImportDataCommand.class); + @Override + public boolean execute(String[] args) { + CommandLine cmd = parseArgs(args); - public static void execute(String uploadFile) { + if (!cmd.hasOption(FILE_OPTION) || cmd.getOptionValue(FILE_OPTION) == null) { + LOGGER.error("Argument f is mandatory"); + return false; + } try { CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem(); Path outputFolder = Paths.get(ImportProperties.ROOT_DIRECTORY); ExportDataCommand.initDir(outputFolder); //clear old imports. - ZipUtils.unzip(Paths.get(uploadFile), outputFolder); - try( Stream<Path> files = Files.list(outputFolder)) { + ZipUtils.unzip(Paths.get(cmd.getOptionValue(FILE_OPTION)), outputFolder); + try (Stream<Path> files = Files.list(outputFolder)) { files.forEach(new ImportSingleTable()::importFile); } FileUtils.forceDelete(outputFolder.toFile()); // leaves directory clean } catch (IOException e) { - Utils.logError(logger, e); + Utils.logError(LOGGER, e); } + return true; + } + + @Override + public CommandName getCommandName() { + return IMPORT; } } |