diff options
Diffstat (limited to 'blueprint-generator/src/main/java/org/onap/blueprintgenerator/core')
3 files changed, 338 insertions, 0 deletions
diff --git a/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/BlueprintGenerator.java b/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/BlueprintGenerator.java new file mode 100644 index 0000000..25328f8 --- /dev/null +++ b/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/BlueprintGenerator.java @@ -0,0 +1,136 @@ +/**============LICENSE_START======================================================= + org.onap.dcae + ================================================================================ + Copyright (c) 2019 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.core; + + + +import org.apache.commons.cli.BasicParser; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Options; +import org.onap.blueprintgenerator.models.blueprint.Blueprint; +import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; + + + +@SuppressWarnings("deprecation") +public class BlueprintGenerator { + + private static String componentSpecPath = ""; + + private static String bluePrintName = ""; + + private static String outputPath = ""; + + private static char bpType = 'o'; + + private static String importPath = ""; + + + public static void main(String[] args) throws Exception { + + printInstructions(); + + parseInputs(args); + + + //create the component Spec we are going to be working with + ComponentSpec cs = new ComponentSpec(); + cs.createComponentSpecFromFile(componentSpecPath); +// if(bpType != 't') { +// cs.createComponentSpecFromFile(componentSpecPath); +// } +// if(bpType == 't') { +// Self self = new Self(); +// self.setName("blueprint_template"); +// self.setDescription("A template yaml file for blueprints"); +// self.setVersion("1.0.0"); +// self.setComponent_type("template"); +// cs.setSelf(self); +// } + + Blueprint bp = new Blueprint(); + bp = bp.createBlueprint(cs, bluePrintName, bpType, importPath); + bp.blueprintToYaml(outputPath, bluePrintName, cs); + } + + + public static void printInstructions() { + System.out.println("OPTIONS:"); + System.out.println("-i: The path to the JSON spec file (required)"); + System.out.println("-n: Name of the blueprint (optional)"); + System.out.println("-p: The path to the final blueprint (required)"); + System.out.println("-t: The path to the yaml import file (optional)"); + //System.out.println("-t: This flag will create a template of how a blueprint will look. No ComponentSpec is required if you add this flag (optional"); + + } + + + public static void parseInputs(String[] args) throws Exception { + //convert the arguments array to a string to make it easier + String commands = ""; + for(String s: args) { + if(commands.length() == 0) { + commands = s; + } + else { + commands = commands + " " + s; + } + } + //check if it has the required inputs +// if(commands.contains("-t")) { +// bpType = 't'; +// CommandLineParser parser = new BasicParser(); +// Options options = new Options(); +// options.addOption("p", "Path", true, "Path to the final blueprint"); +// options.addOption("i", "Spec", true, "ComponentSpec import file"); +// options.addOption("n", "name", true, "Name of the blueprint"); +// options.addOption("t", "Template", false, "Create a bp tempalte"); +// CommandLine commandLine = parser.parse(options, args); +// outputPath = commandLine.getOptionValue("p"); +// } + if(!commands.contains("-p") || !commands.contains("-i")) { + System.out.println("did not enter the required inputs"); + } + else { + BasicParser parser = new BasicParser(); + Options options = new Options(); + options.addOption("i", "Spec", true, "ComponentSpec import file"); + options.addOption("p", "Path", true, "Path to the final blueprint"); + options.addOption("n", "Name", true, "Name of the blueprint"); + options.addOption("t", "imports", true, "Path to the import file"); + + CommandLine commandLine = parser.parse(options, args); + componentSpecPath = commandLine.getOptionValue("i"); + outputPath = commandLine.getOptionValue("p"); + if(!(commandLine.getOptionValue("n") == null)){ + bluePrintName = commandLine.getOptionValue("n"); + } + if(!(commandLine.getOptionValue("t") == null)) { + importPath = commandLine.getOptionValue("t"); + } + } + + } + + + +} + diff --git a/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/Fixes.java b/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/Fixes.java new file mode 100644 index 0000000..2487306 --- /dev/null +++ b/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/Fixes.java @@ -0,0 +1,70 @@ +/**============LICENSE_START======================================================= + org.onap.dcae + ================================================================================ + Copyright (c) 2019 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.core; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; + +public class Fixes { + private static ArrayList<String> lines = new ArrayList<String>(); + private static String line = null; + + public static void fixSingleQuotes(File f) throws IOException { + File translateFile = f; + try { + FileReader fr = new FileReader(translateFile); + BufferedReader br = new BufferedReader(fr); + + while((line = br.readLine()) != null) { + if(line.contains("'")) { + line = line.replace("'", ""); + } + lines.add(line); + + } + + fr.close(); + br.close(); + + FileWriter fw = new FileWriter(translateFile); + PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(f, true))); + for(String s: lines) { + out.println(); + out.write(s); + out.flush(); + } + + out.close(); + fw.close(); + line = null; + lines = new ArrayList<String>(); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + } +} diff --git a/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/TestComponentSpec.java b/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/TestComponentSpec.java new file mode 100644 index 0000000..5d4131b --- /dev/null +++ b/blueprint-generator/src/main/java/org/onap/blueprintgenerator/core/TestComponentSpec.java @@ -0,0 +1,132 @@ +/**============LICENSE_START======================================================= + org.onap.dcae + ================================================================================ + Copyright (c) 2019 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.core; + + + + +import lombok.Getter; +import lombok.Setter; + +@Getter @Setter +public class TestComponentSpec { + private String cs = "{\r\n" + + " \"self\": {\r\n" + + " \"component_type\": \"docker\",\r\n" + + " \"description\": \"Test component spec\",\r\n" + + " \"name\": \"test.component.spec\",\r\n" + + " \"version\": \"1.0.1\"\r\n" + + " },\r\n" + + "\r\n" + + " \"service\": {\r\n" + + " \"calls\": [],\r\n" + + " \"provides\": []\r\n" + + " },\r\n" + + "\r\n" + + " \"streams\": {\r\n" + + " \"publishes\": [{\r\n" + + " \"config_key\": \"TEST-PUB-DR\",\r\n" + + " \"format\": \"dataformat_Hello_World_PM\",\r\n" + + " \"type\": \"data_router\",\r\n" + + " \"version\": \"1.0.0\"\r\n" + + " },\r\n" + + " {\r\n" + + " \"config_key\": \"TEST-PUB-MR\",\r\n" + + " \"format\": \"dataformat_Hello_World_PM\",\r\n" + + " \"type\": \"message_router\",\r\n" + + " \"version\": \"1.0.0\"\r\n" + + " }\r\n" + + " ],\r\n" + + "\r\n" + + " \"subscribes\": [{\r\n" + + " \"config_key\": \"TEST-SUB-MR\",\r\n" + + " \"format\": \"dataformat_Hello_World_PM\",\r\n" + + " \"route\": \"/TEST_HELLO_WORLD_SUB_MR\",\r\n" + + " \"type\": \"message_router\",\r\n" + + " \"version\": \"1.0.0\"\r\n" + + " },\r\n" + + " {\r\n" + + " \"config_key\": \"TEST-SUB-DR\",\r\n" + + " \"format\": \"dataformat_Hello_World_PM\",\r\n" + + " \"route\": \"/TEST-HELLO-WORLD-SUB-DR\",\r\n" + + " \"type\": \"data_router\",\r\n" + + " \"version\": \"1.0.0\"\r\n" + + " } \r\n" + + " ]\r\n" + + " },\r\n" + + "\r\n" + + " \"parameters\":\r\n" + + " [\r\n" + + " {\r\n" + + " \"name\": \"testParam1\",\r\n" + + " \"description\": \"test parameter 1\",\r\n" + + " \"value\": \"test-param-1\",\r\n" + + " \"type\": \"string\",\r\n" + + " \"sourced_at_deployment\": true,\r\n" + + " \"designer_editable\": true,\r\n" + + " \"policy_editable\": true,\r\n" + + " \"policy_group\": \"Test_Parameters\",\r\n" + + " \"required\": true\r\n" + + " }\r\n" + + " ],\r\n" + + "\r\n" + + " \"auxilary\": {\r\n" + + " \"healthcheck\": {\r\n" + + " \"type\": \"docker\",\r\n" + + " \"interval\": \"300s\",\r\n" + + " \"timeout\": \"120s\",\r\n" + + " \"script\": \"/etc/init.d/nagios status\"\r\n" + + " },\r\n" + + "\r\n" + + " \"databases\" : {\r\n" + + " \"TestDB1\": \"PGaaS\",\r\n" + + " \"TestDB2\": \"PGaaS\"\r\n" + + " },\r\n" + + "\r\n" + + " \"policy\": {\r\n" + + " \"trigger_type\": \"docker\",\r\n" + + " \"script_path\": \"/opt/app/manager/bin/reconfigure.sh\"\r\n" + + " },\r\n" + + " \"volumes\": [\r\n" + + " {\r\n" + + " \"container\": {\r\n" + + " \"bind\": \"/opt/app/manager/config/hostname\"\r\n" + + " },\r\n" + + " \"host\": {\r\n" + + " \"path\": \"/etc/hostname\",\r\n" + + " \"mode\": \"ro\"\r\n" + + " }\r\n" + + " }\r\n" + + "\r\n" + + " ],\r\n" + + " \"ports\": [\r\n" + + " \"80:80\"\r\n" + + " ]\r\n" + + " },\r\n" + + "\r\n" + + " \"artifacts\": [{\r\n" + + " \"type\": \"docker image\",\r\n" + + " \"uri\": \"test.tester\"\r\n" + + " }] \r\n" + + "\r\n" + + "}"; +} |