From cc39d3bce13f716adc3335d4d46a25606598314e Mon Sep 17 00:00:00 2001 From: Remigiusz Janeczek Date: Tue, 29 Dec 2020 15:03:39 +0100 Subject: Update runtime-api with refactored bp-gen Issue-ID: DCAEGEN2-2529 Signed-off-by: Remigiusz Janeczek Change-Id: I763a46e01d259b25c656de7544949f19a1e01e11 --- .../blueprint_creator/BlueprintCreatorOnap.java | 69 ++++++++++++++-------- 1 file changed, 44 insertions(+), 25 deletions(-) (limited to 'mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnap.java') diff --git a/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnap.java b/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnap.java index c45173d..0a53ec0 100644 --- a/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnap.java +++ b/mod/runtimeapi/runtime-core/src/main/java/org/onap/dcae/runtime/core/blueprint_creator/BlueprintCreatorOnap.java @@ -1,13 +1,14 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2020 Nokia. 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. @@ -17,21 +18,37 @@ */ package org.onap.dcae.runtime.core.blueprint_creator; -import org.onap.blueprintgenerator.core.Fixes; +import java.util.LinkedHashMap; +import java.util.Map; +import org.onap.blueprintgenerator.model.base.Blueprint; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.service.BlueprintCreatorService; +import org.onap.blueprintgenerator.service.base.BlueprintService; +import org.onap.blueprintgenerator.service.base.FixesService; +import org.onap.blueprintgenerator.service.common.ComponentSpecService; 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.LinkedHashMap; -import java.util.Map; - -public class BlueprintCreatorOnap implements BlueprintCreator{ +public class BlueprintCreatorOnap implements BlueprintCreator { private String topicUrl; private String importFilePath; private boolean useDmaapPlugin; + private final ComponentSpecService componentSpecService; + private final BlueprintCreatorService blueprintCreatorService; + private final BlueprintService blueprintService; + private final FixesService fixesService; + + public BlueprintCreatorOnap(ComponentSpecService componentSpecService, + BlueprintCreatorService blueprintCreatorService, BlueprintService blueprintService, + FixesService fixesService) { + this.componentSpecService = componentSpecService; + this.blueprintCreatorService = blueprintCreatorService; + this.blueprintService = blueprintService; + this.fixesService = fixesService; + } public void setTopicUrl(String topicUrl) { this.topicUrl = topicUrl; @@ -42,43 +59,45 @@ public class BlueprintCreatorOnap implements BlueprintCreator{ } public void setUseDmaapPlugin(boolean useDmaapPlugin) { - this.useDmaapPlugin = useDmaapPlugin; + this.useDmaapPlugin = useDmaapPlugin; } @Override public String createBlueprint(String componentSpecString) { - ComponentSpec componentSpec = new ComponentSpec(); - componentSpec.createComponentSpecFromString(componentSpecString); - Blueprint blueprint = new Blueprint().createBlueprint(componentSpec,"",useDmaapPlugin?'d':'o',importFilePath,""); - return blueprint.blueprintToString(); + OnapComponentSpec componentSpec = componentSpecService.createComponentSpecFromString(componentSpecString); + Input input = new Input(); + input.setBpType(useDmaapPlugin ? "d" : "o"); + input.setImportPath(importFilePath); + Blueprint blueprint = blueprintCreatorService.createBlueprint(componentSpec, input); + return blueprintService.blueprintToString(componentSpec, blueprint, input); } @Override public void resolveDmaapConnection(Node node, String locationPort, String dmaapEntityName) { - if(node == null || locationPort == null){ + if (node == null || locationPort == null) { return; } String blueprintContent = node.getBlueprintData().getBlueprint_content(); - locationPort = locationPort.replaceAll("-","_"); + locationPort = locationPort.replaceAll("-", "_"); Yaml yaml = getYamlInstance(); - Map obj = yaml.load(blueprintContent); - Map inputsObj = (Map) obj.get("inputs"); - for(Map.Entry entry: inputsObj.entrySet()){ + Map obj = yaml.load(blueprintContent); + Map inputsObj = (Map) obj.get("inputs"); + for (Map.Entry entry : inputsObj.entrySet()) { LinkedHashMap modified = retainQuotesForDefault(entry.getValue()); entry.setValue(modified); - if(entry.getKey().matches(locationPort+".*url")) { - Map inputValue = (Map) entry.getValue(); - inputValue.put("default",topicUrl + "/" + dmaapEntityName); + if (entry.getKey().matches(locationPort + ".*url")) { + Map inputValue = (Map) entry.getValue(); + inputValue.put("default", topicUrl + "/" + dmaapEntityName); } } - node.getBlueprintData().setBlueprint_content(Fixes.applyFixes(yaml.dump(obj))); + node.getBlueprintData().setBlueprint_content(fixesService.applyFixes(yaml.dump(obj))); } private LinkedHashMap retainQuotesForDefault(Object valueOfInputObject) { LinkedHashMap temp = (LinkedHashMap) valueOfInputObject; - if(temp.containsKey("type") && temp.get("type").equals("string")) { + if (temp.containsKey("type") && temp.get("type").equals("string")) { String def = (String) temp.get("default"); - if(def != null){ + if (def != null) { def = def.replaceAll("\"$", "").replaceAll("^\"", ""); } def = '"' + def + '"'; -- cgit 1.2.3-korg