From cc9d389bf197c1a365e669b407ea781f2bc87fd4 Mon Sep 17 00:00:00 2001 From: Michael Hwang Date: Wed, 20 Nov 2019 12:32:48 -0500 Subject: Add mod/runtimeapi Change-Id: I6c0a45ddf460a63a1e4b9284e19bf4ab111bd463 Issue-ID: DCAEGEN2-1860 Signed-off-by: Michael Hwang --- .../core/blueprint_creator/BlueprintCreator.java | 26 ++++++++ .../BlueprintCreatorOnapDublin.java | 78 ++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreator.java create mode 100644 mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnapDublin.java (limited to 'mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator') diff --git a/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreator.java b/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreator.java new file mode 100644 index 0000000..b633472 --- /dev/null +++ b/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreator.java @@ -0,0 +1,26 @@ +/*- + * ============LICENSE_START======================================================= + * 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.dcae.runtime.core.blueprint_creator; + +import org.onap.dcae.runtime.core.Node; + +public interface BlueprintCreator { + + String createBlueprint(String componentSpecString); + void resolveDmaapConnection(Node node, String locationPort, String dmaapEntityName); +} diff --git a/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnapDublin.java b/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnapDublin.java new file mode 100644 index 0000000..2225971 --- /dev/null +++ b/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnapDublin.java @@ -0,0 +1,78 @@ +/*- + * ============LICENSE_START======================================================= + * 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.dcae.runtime.core.blueprint_creator; + +import org.onap.dcae.runtime.core.Node; +import org.onap.blueprintgenerator.models.blueprint.Blueprint; +import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; +import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.Yaml; + +import java.util.Map; + +public class BlueprintCreatorOnapDublin implements BlueprintCreator{ + + private String topicUrl; + private String importFilePath; + + public void setTopicUrl(String topicUrl) { + this.topicUrl = topicUrl; + } + + public void setImportFilePath(String importFilePath) { + this.importFilePath = importFilePath; + } + + @Override + public String createBlueprint(String componentSpecString) { + ComponentSpec componentSpec = new ComponentSpec(); + componentSpec.createComponentSpecFromString(componentSpecString); + Blueprint blueprint = new Blueprint().createBlueprint(componentSpec,"",'o',importFilePath); + return blueprint.blueprintToString(); + } + + @Override + public void resolveDmaapConnection(Node node, String locationPort, String dmaapEntityName) { + if(node == null || locationPort == null){ + return; + } + String blueprintContent = node.getBlueprintData().getBlueprint_content(); + locationPort = locationPort.replaceAll("-","_"); + Yaml yaml = getYamlInstance(); + Map obj = yaml.load(blueprintContent); + Map inputsObj = (Map) obj.get("inputs"); + for(Map.Entry entry: inputsObj.entrySet()){ + if(entry.getKey().matches(locationPort+".*url")) { + Map inputValue = (Map) entry.getValue(); + inputValue.put("default",topicUrl + "/" + dmaapEntityName); + } + } + node.getBlueprintData().setBlueprint_content(yaml.dump(obj)); + } + + private Yaml getYamlInstance() { + DumperOptions options = new DumperOptions(); + options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + options.setPrettyFlow(true); + return new Yaml(options); + } + +// private String attachSingleQoutes(String str) { +// return "'" + str + "'"; +// } +} -- cgit 1.2.3-korg