summaryrefslogtreecommitdiffstats
path: root/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java')
-rw-r--r--mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java152
1 files changed, 152 insertions, 0 deletions
diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java
new file mode 100644
index 0000000..97ed47f
--- /dev/null
+++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java
@@ -0,0 +1,152 @@
+/*
+ *
+ * * ============LICENSE_START=======================================================
+ * * org.onap.dcae
+ * * ================================================================================
+ * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * * ================================================================================
+ * * Licensed under the Apache License, Version 2.0 (the "License");
+ * * you may not use this file except in compliance with the License.
+ * * You may obtain a copy of the License at
+ * *
+ * * http://www.apache.org/licenses/LICENSE-2.0
+ * *
+ * * Unless required by applicable law or agreed to in writing, software
+ * * distributed under the License is distributed on an "AS IS" BASIS,
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * * See the License for the specific language governing permissions and
+ * * limitations under the License.
+ * * ============LICENSE_END=========================================================
+ *
+ *
+ */
+
+package org.onap.blueprintgenerator.service.common;
+
+
+
+import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.cli.DefaultParser;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.CommandLine;
+import org.onap.blueprintgenerator.model.common.Input;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import static java.lang.System.exit;
+
+/**
+ * @author : Ravi Mantena
+ * @date 10/16/2020
+ * Application: ONAP - Blueprint Generator
+ * Common ONAP Service used by ONAP and DMAAP Blueprint to Print Instructions and Parse Inputs
+ */
+
+
+@Service("onapCommonUtilsService")
+public class CommonUtils {
+
+ public void printInstructions() {
+ System.out.println("OPTIONS:");
+ System.out.println("-i OR --component-spec: The path of the ONAP Blueprint INPUT JSON SPEC FILE (Required)");
+ System.out.println("-p OR --blueprint-path: The path of the ONAP Blueprint OUTPUT where it will be saved (Required)");
+ System.out.println("-n OR --blueprint-name: The NAME of the ONAP Blueprint OUTPUT that will be created (Optional)");
+ System.out.println("-t OR --imports: The path of the ONAP Blueprint IMPORT FILE (Optional)");
+ System.out.println("-o OR --service-name-override: The Value used to OVERRIDE the SERVICE NAME of the ONAP Blueprint (Optional)");
+ System.out.println("-d OR --dmaap-plugin: The option to create a ONAP Blueprint with DMAAP Plugin (Optional)");
+ System.out.println("Syntax to run from command line: \n For Blueprint : java -jar target/<JAR Filename>.jar app ONAP -i componentspec -p OutputBlueprintPath -n Blueprintname -d \n For PolicyCreate: java -jar target/<JAR Filename>.jar app ONAP -type policycreate -i componentspec -p OutputPolicyPath");
+ }
+
+ public Input parseInputs(String[] args) {
+ String[] modArgs = new String[args.length];
+ for(int i=0; i<args.length; i++){
+ if(args[i].contains("--component-spec"))
+ modArgs[i] = "-_component_spec";
+ else if(args[i].contains("--blueprint-path"))
+ modArgs[i] = "-_blueprint_path";
+ else if(args[i].contains("--blueprint-name"))
+ modArgs[i] = "-_blueprint_name";
+ else if(args[i].contains("--imports"))
+ modArgs[i] = "-_imports";
+ else if(args[i].contains("--service-name-override"))
+ modArgs[i] = "-_service_name_override";
+ else if(args[i].contains("--dmaap-plugin"))
+ modArgs[i] = "-_dmaap_plugin";
+ else
+ modArgs[i] = args[i];
+ }
+ String commands = " ";
+ for (String s : modArgs) {
+
+ commands = commands + " " + s;
+ }
+
+ //checks if the required inputs are present or not
+ if (!(commands.contains(" -i ")|| commands.contains(" -_component_spec "))
+ && !(commands.contains(" -p ") || commands.contains(" -_blueprint_path ") ) ) {
+ System.out.println("\n Please enter the ONAP Blueprint required inputs for: \n -i (The path of the ONAP Blueprint INPUT JSON SPEC FILE), \n -p (The path of the ONAP Blueprint OUTPUT where it will be saved)");
+ exit(-1);
+ }
+
+
+ CommandLineParser parser = new DefaultParser();
+ HelpFormatter formatter = new HelpFormatter();
+
+ Options options = new Options();
+
+ options.addOption("i", "Spec", true, "ComponentSpec Input File of the ONAP Blueprint");
+ options.addOption("_component_spec", "Spec", true, "ComponentSpec Input File of the ONAP Blueprint");
+ options.addOption("p", "Path", true, "Path of the ONAP Blueprint OUTPUT");
+ options.addOption("_blueprint_path", "Path", true, "Path of the ONAP Blueprint OUTPUT");
+ options.addOption("n", "name", true, "NAME of the ONAP Blueprint OUTPUT");
+ options.addOption("_blueprint_name", "name", true, "NAME of the ONAP Blueprint OUTPUT");
+ options.addOption("t", "Import File", true, "Import file for the OUTPUT Blueprint Imports");
+ options.addOption("_imports", "Import File", true, "Import file for the OUTPUT Blueprint Imports");
+ options.addOption("o", "Service name Override", true, "Value used to override the OUTPUT Blueprint service name");
+ options.addOption("_service_name_override", "Service name Override", true, "Value used to override the OUTPUT Blueprint service name");
+ options.addOption("d", "Dmaap Plugin", false, "Flag used to indicate ONAP Blueprint OUTPUT uses the DMaaP plugin");
+ options.addOption("_dmaap_plugin", "Dmaap Plugin", false, "Flag used to indicate ONAP Blueprint OUTPUT uses the DMaaP plugin");
+
+ Input input = new Input();
+ try {
+ CommandLine commandLine = parser.parse(options, modArgs);
+ input.setComponentSpecPath(commandLine.getOptionValue("i") == null ? commandLine.getOptionValue("_component_spec") : commandLine.getOptionValue("i"));
+ input.setOutputPath(commandLine.getOptionValue("p") == null ? commandLine.getOptionValue("_blueprint_path") : commandLine.getOptionValue("p"));
+ input.setBluePrintName(commandLine.getOptionValue("n") == null ? commandLine.getOptionValue("_blueprint_name") : commandLine.getOptionValue("n"));
+ input.setImportPath(commandLine.getOptionValue("t") == null ? commandLine.getOptionValue("_imports") : commandLine.getOptionValue("t"));
+ input.setBpType((commands.contains(" -d ") || commands.contains(" -_dmaap_plugin ") ) ? "d" : "o");
+ input.setServiceNameOverride(commandLine.getOptionValue("o") == null ? commandLine.getOptionValue("_service_name_override") == null ? "" : commandLine.getOptionValue("_service_name_override") : commandLine.getOptionValue("o"));
+ } catch (ParseException ex) {
+ ex.printStackTrace();
+ System.out.println(ex.getMessage());
+ formatter.printHelp("Required/Valid Inputs to create ONAP Blueprint are not provided", options);
+ exit(-1);
+ }
+ if (StringUtils.isEmpty(input.getComponentSpecPath())) {
+ System.out.println("The path of the ONAP Blueprint INPUT JSON SPEC FILE is not specified");
+ exit(-1);
+ }
+ if (StringUtils.isEmpty(input.getOutputPath())) {
+ System.out.println("The path of the ONAP Blueprint OUTPUT where it will be saved is not specified");
+ exit(-1);
+ }
+ if (commands.contains(" -n ") || commands.contains(" -_blueprint_name ")) {
+ if (StringUtils.isEmpty(input.getBluePrintName())) {
+ System.out.println("The NAME of the ONAP Blueprint OUTPUT that will be created is not specified");
+ exit(-1);
+ }
+ }
+ if (commands.contains(" -t ")|| commands.contains(" -_imports ")) {
+ if (StringUtils.isEmpty(input.getImportPath())) {
+ System.out.println("The path of the ONAP Blueprint Imports File is not specified");
+ exit(-1);
+ }
+ }
+
+ return input;
+ }
+
+}