From a3c8fc0395e9518c5f0f064a033f4ab4d7040c61 Mon Sep 17 00:00:00 2001 From: Remigiusz Janeczek Date: Thu, 17 Dec 2020 14:27:01 +0100 Subject: Blueprint Generator - Refactor blueprint generation. Issue-ID: DCAEGEN2-2529 Signed-off-by: Remigiusz Janeczek Change-Id: I72959f3e6c27d301e46ede24c015ce638d8de324 --- .../BlueprintGeneratorMainApplication.java | 36 ++--- .../service/BlueprintCreatorService.java | 70 +++++++++ .../service/OnapBlueprintService.java | 115 --------------- .../dmaap/DmaapBlueprintCreatorService.java | 164 +++++++++++++++++++++ .../service/dmaap/DmaapBlueprintService.java | 163 -------------------- .../service/onap/OnapBlueprintCreatorService.java | 116 +++++++++++++++ 6 files changed, 362 insertions(+), 302 deletions(-) create mode 100644 mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/BlueprintCreatorService.java delete mode 100644 mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/OnapBlueprintService.java create mode 100644 mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintCreatorService.java delete mode 100644 mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintService.java create mode 100644 mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/onap/OnapBlueprintCreatorService.java (limited to 'mod/bpgenerator/onap/src/main') diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/BlueprintGeneratorMainApplication.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/BlueprintGeneratorMainApplication.java index d680919..796424f 100644 --- a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/BlueprintGeneratorMainApplication.java +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/BlueprintGeneratorMainApplication.java @@ -4,6 +4,7 @@ * * org.onap.dcae * * ================================================================================ * * Copyright (c) 2020 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. @@ -23,14 +24,17 @@ package org.onap.blueprintgenerator; + +import static java.lang.System.exit; + 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.model.componentspec.base.ComponentSpec; -import org.onap.blueprintgenerator.service.OnapBlueprintService; +import org.onap.blueprintgenerator.service.BlueprintCreatorService; +import org.onap.blueprintgenerator.service.base.BlueprintService; import org.onap.blueprintgenerator.service.common.CommonUtils; import org.onap.blueprintgenerator.service.common.ComponentSpecService; -import org.onap.blueprintgenerator.service.dmaap.DmaapBlueprintService; import org.onap.policycreate.service.PolicyModelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; @@ -38,8 +42,6 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; -import static java.lang.System.exit; - /** * @author : Ravi Mantena * @date 10/16/2020 Application: ONAP - Blueprint Generator ONAP - Blueprint Generator Main @@ -68,10 +70,10 @@ public class BlueprintGeneratorMainApplication implements CommandLineRunner { private CommonUtils onapCommonUtils; @Autowired - private OnapBlueprintService onapBlueprintService; + private BlueprintCreatorService blueprintCreatorService; @Autowired - private DmaapBlueprintService dmaapBlueprintService; + private BlueprintService blueprintService; /** * Main Application to run BPGen to generate Policies/Blueprint based on Input Arguments values @@ -99,24 +101,10 @@ public class BlueprintGeneratorMainApplication implements CommandLineRunner { componentSpec.getParameters(), input.getOutputPath()); } else { Input input = onapCommonUtils.parseInputs(args); - OnapComponentSpec onapComponentSpec = - onapComponentSpecService - .createComponentSpecFromFile(input.getComponentSpecPath()); - if (input.getBpType().equals("o")) { - Blueprint blueprint = onapBlueprintService - .createBlueprint(onapComponentSpec, input); - onapBlueprintService.blueprintToYaml(onapComponentSpec, blueprint, input); - System.out.println( - onapBlueprintService - .blueprintToString(onapComponentSpec, blueprint, input)); - } else if (input.getBpType().equals("d")) { - Blueprint blueprint = dmaapBlueprintService - .createBlueprint(onapComponentSpec, input); - dmaapBlueprintService.blueprintToYaml(onapComponentSpec, blueprint, input); - System.out.println( - dmaapBlueprintService - .blueprintToString(onapComponentSpec, blueprint, input)); - } + OnapComponentSpec onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + Blueprint blueprint = blueprintCreatorService.createBlueprint(onapComponentSpec, input); + blueprintService.blueprintToYaml(onapComponentSpec, blueprint, input); + System.out.println(blueprintService.blueprintToString(onapComponentSpec, blueprint, input)); } } diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/BlueprintCreatorService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/BlueprintCreatorService.java new file mode 100644 index 0000000..48c196e --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/BlueprintCreatorService.java @@ -0,0 +1,70 @@ +/* + * ============LICENSE_START======================================================= + * org.onap.dcae + * ================================================================================ + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.blueprintgenerator.service; + +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.dmaap.DmaapBlueprintCreatorService; +import org.onap.blueprintgenerator.service.onap.OnapBlueprintCreatorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author : Remigiusz Janeczek + * @date 12/17/2020 Application: ONAP - Blueprint Generator Service to create ONAP and DMAAP Blueprints + */ +@Service +public class BlueprintCreatorService { + + private final OnapBlueprintCreatorService onapBlueprintCreatorService; + + private final DmaapBlueprintCreatorService dmaapBlueprintCreatorService; + + @Autowired + public BlueprintCreatorService(OnapBlueprintCreatorService onapBlueprintCreatorService, + DmaapBlueprintCreatorService dmaapBlueprintCreatorService) { + this.onapBlueprintCreatorService = onapBlueprintCreatorService; + this.dmaapBlueprintCreatorService = dmaapBlueprintCreatorService; + } + + /** + * Creates Blueprint from given OnapComponentSpec and Input objects if the input is json file or not + * + * @param componentSpec OnapComponentSpec object + * @param input Input object, needs to have bpType defined (either as "o" (ONAP Blueprint) or "d" (DMAAP + * Blueprint) + * @return blueprint generated from componentSpec and input + */ + public Blueprint createBlueprint(OnapComponentSpec componentSpec, Input input) { + if (input.getBpType() == null) { + return null; + } + Blueprint blueprint = null; + if (input.getBpType().equals("o")) { + blueprint = onapBlueprintCreatorService.createBlueprint(componentSpec, input); + } else if (input.getBpType().equals("d")) { + blueprint = dmaapBlueprintCreatorService.createBlueprint(componentSpec, input); + } + return blueprint; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/OnapBlueprintService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/OnapBlueprintService.java deleted file mode 100644 index 748facf..0000000 --- a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/OnapBlueprintService.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * - * * ============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; - -import org.onap.blueprintgenerator.constants.Constants; -import org.onap.blueprintgenerator.exception.BlueprintException; -import org.onap.blueprintgenerator.model.common.Input; -import org.onap.blueprintgenerator.model.common.Node; -import org.onap.blueprintgenerator.model.common.OnapBlueprint; -import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; -import org.onap.blueprintgenerator.service.base.BlueprintService; -import org.onap.blueprintgenerator.service.common.ImportsService; -import org.onap.blueprintgenerator.service.common.NodeService; -import org.onap.blueprintgenerator.service.common.PgaasNodeService; -import org.onap.blueprintgenerator.service.common.PolicyNodeService; -import org.onap.blueprintgenerator.service.common.QuotationService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.TreeMap; - -/** - * @author : Ravi Mantena - * @date 10/16/2020 Application: ONAP - Blueprint Generator Service to create ONAP Blueprint - */ -@Service -public class OnapBlueprintService extends BlueprintService { - - @Autowired - private NodeService nodeService; - - @Autowired - private PolicyNodeService policyNodeService; - - @Autowired - private PgaasNodeService pgaasNodeService; - - @Autowired - private QuotationService quotationService; - - @Autowired - protected ImportsService importsService; - - /** - * Creates Onap Blueprint - * - * @param onapComponentSpec OnapComponentSpec - * @param input Inputs - * @return - */ - public OnapBlueprint createBlueprint(OnapComponentSpec onapComponentSpec, Input input) { - try { - OnapBlueprint blueprint = new OnapBlueprint(); - blueprint.setTosca_definitions_version(Constants.TOSCA_DEF_VERSION); - - // if (!"".equals(input.getImportPath())) - if (!StringUtils.isEmpty(input.getImportPath())) { - blueprint.setImports(importsService.createImportsFromFile(input.getImportPath())); - } else { - blueprint.setImports(importsService.createImports(input.getBpType())); - } - - Map nodeTemplate = new TreeMap<>(); - String nodeName = onapComponentSpec.getSelf().getName(); - Map> inputs = new TreeMap<>(); - - Map onapNodeResponse = - nodeService - .createOnapNode(inputs, onapComponentSpec, input.getServiceNameOverride()); - inputs = (Map>) onapNodeResponse.get("inputs"); - nodeTemplate.put(nodeName, (Node) onapNodeResponse.get("onapNode")); - blueprint.setNode_templates(nodeTemplate); - - if (onapComponentSpec.getPolicyInfo() != null) { - policyNodeService.addPolicyNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); - } - - if (onapComponentSpec.getAuxilary() != null - && onapComponentSpec.getAuxilary().getDatabases() != null) { - pgaasNodeService.addPgaasNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); - } - - blueprint.setInputs(inputs); - - return quotationService.setQuotations(blueprint); - } catch (Exception ex) { - throw new BlueprintException( - "Unable to create ONAP Blueprint Object from given input parameters", ex); - } - } -} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintCreatorService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintCreatorService.java new file mode 100644 index 0000000..bf68f81 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintCreatorService.java @@ -0,0 +1,164 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 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. + * * See the License for the specific language governing permissions and + * * limitations under the License. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.dmaap; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.exception.BlueprintException; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.OnapBlueprint; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.model.componentspec.common.Publishes; +import org.onap.blueprintgenerator.model.componentspec.common.Subscribes; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.onap.blueprintgenerator.service.base.BlueprintService; +import org.onap.blueprintgenerator.service.common.ImportsService; +import org.onap.blueprintgenerator.service.common.NodeService; +import org.onap.blueprintgenerator.service.common.PgaasNodeService; +import org.onap.blueprintgenerator.service.common.PolicyNodeService; +import org.onap.blueprintgenerator.service.common.QuotationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 Application: ONAP - Blueprint Generator Service to create DMAAP Blueprint + */ +@Service +public class DmaapBlueprintCreatorService { + + @Autowired + protected ImportsService importsService; + + @Autowired + private NodeService nodeService; + + @Autowired + private PolicyNodeService policyNodeService; + + @Autowired + private PgaasNodeService pgaasNodeService; + + @Autowired + private QuotationService quotationService; + + @Autowired + private BlueprintHelperService blueprintHelperService; + + /** + * Creates Dmaap Blueprint + * + * @param onapComponentSpec OnapComponentSpec + * @param input Inputs + * @return + */ + public OnapBlueprint createBlueprint(OnapComponentSpec onapComponentSpec, Input input) { + try { + OnapBlueprint blueprint = new OnapBlueprint(); + blueprint.setTosca_definitions_version(Constants.TOSCA_DEF_VERSION); + blueprint.setDescription(onapComponentSpec.getSelf().getDescription()); + + Map> inputs = new TreeMap<>(); + + // if (!"".equals(input.getImportPath())) + if (!StringUtils.isEmpty(input.getImportPath())) { + blueprint.setImports(importsService.createImportsFromFile(input.getImportPath())); + } else { + blueprint.setImports(importsService.createImports(input.getBpType())); + } + + Map nodeTemplate = new TreeMap(); + + Map dmaapNodeResponse = + nodeService + .createDmaapNode(onapComponentSpec, inputs, input.getServiceNameOverride()); + inputs = (Map>) dmaapNodeResponse.get("inputs"); + nodeTemplate.put( + onapComponentSpec.getSelf().getName(), (Node) dmaapNodeResponse.get("dmaapNode")); + + if (onapComponentSpec.getStreams() != null) { + if (onapComponentSpec.getStreams().getPublishes() != null) { + for (Publishes publishes : onapComponentSpec.getStreams().getPublishes()) { + if (blueprintHelperService.isMessageRouterType(publishes.getType())) { + String topic = publishes.getConfig_key() + Constants._TOPIC; + Map topicNodeResponse = nodeService + .createTopicNode(inputs, topic); + inputs = (Map>) topicNodeResponse + .get("inputs"); + nodeTemplate.put(topic, (Node) topicNodeResponse.get("topicNode")); + } else if (blueprintHelperService.isDataRouterType(publishes.getType())) { + String feed = publishes.getConfig_key() + Constants._FEED; + Map feedNodeResponse = nodeService + .createFeedNode(inputs, feed); + inputs = (Map>) feedNodeResponse + .get("inputs"); + nodeTemplate.put(feed, (Node) feedNodeResponse.get("feedNode")); + } + } + } + if (onapComponentSpec.getStreams().getSubscribes() != null) { + for (Subscribes s : onapComponentSpec.getStreams().getSubscribes()) { + if (blueprintHelperService.isMessageRouterType(s.getType())) { + String topic = s.getConfig_key() + Constants._TOPIC; + Map topicNodeResponse = nodeService + .createTopicNode(inputs, topic); + inputs = (Map>) topicNodeResponse + .get("inputs"); + nodeTemplate.put(topic, (Node) topicNodeResponse.get("topicNode")); + } else if (blueprintHelperService.isDataRouterType(s.getType())) { + String feed = s.getConfig_key() + Constants._FEED; + Map feedNodeResponse = nodeService + .createFeedNode(inputs, feed); + inputs = (Map>) feedNodeResponse + .get("inputs"); + nodeTemplate.put(feed, (Node) feedNodeResponse.get("feedNode")); + } + } + } + } + + if (onapComponentSpec.getPolicyInfo() != null) { + policyNodeService.addPolicyNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + } + + if (onapComponentSpec.getAuxilary() != null + && onapComponentSpec.getAuxilary().getDatabases() != null) { + pgaasNodeService.addPgaasNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + } + + blueprint.setNode_templates(nodeTemplate); + blueprint.setInputs(inputs); + return quotationService.setQuotations(blueprint); + } catch (Exception ex) { + throw new BlueprintException( + "Unable to create ONAP DMAAP Blueprint Object from given input parameters", ex); + } + } +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintService.java deleted file mode 100644 index 9da2074..0000000 --- a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintService.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * * ============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.dmaap; - -import org.onap.blueprintgenerator.constants.Constants; -import org.onap.blueprintgenerator.exception.BlueprintException; -import org.onap.blueprintgenerator.model.common.Input; -import org.onap.blueprintgenerator.model.common.Node; -import org.onap.blueprintgenerator.model.common.OnapBlueprint; -import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; -import org.onap.blueprintgenerator.model.componentspec.common.Publishes; -import org.onap.blueprintgenerator.model.componentspec.common.Subscribes; -import org.onap.blueprintgenerator.service.base.BlueprintHelperService; -import org.onap.blueprintgenerator.service.base.BlueprintService; -import org.onap.blueprintgenerator.service.common.ImportsService; -import org.onap.blueprintgenerator.service.common.NodeService; -import org.onap.blueprintgenerator.service.common.PgaasNodeService; -import org.onap.blueprintgenerator.service.common.PolicyNodeService; -import org.onap.blueprintgenerator.service.common.QuotationService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.TreeMap; - -/** - * @author : Ravi Mantena - * @date 10/16/2020 Application: ONAP - Blueprint Generator Service to create DMAAP Blueprint - */ -@Service -public class DmaapBlueprintService extends BlueprintService { - - @Autowired - protected ImportsService importsService; - - @Autowired - private NodeService nodeService; - - @Autowired - private PolicyNodeService policyNodeService; - - @Autowired - private PgaasNodeService pgaasNodeService; - - @Autowired - private QuotationService quotationService; - - @Autowired - private BlueprintHelperService blueprintHelperService; - - /** - * Creates Dmaap Blueprint - * - * @param onapComponentSpec OnapComponentSpec - * @param input Inputs - * @return - */ - public OnapBlueprint createBlueprint(OnapComponentSpec onapComponentSpec, Input input) { - try { - OnapBlueprint blueprint = new OnapBlueprint(); - blueprint.setTosca_definitions_version(Constants.TOSCA_DEF_VERSION); - blueprint.setDescription(onapComponentSpec.getSelf().getDescription()); - - Map> inputs = new TreeMap<>(); - - // if (!"".equals(input.getImportPath())) - if (!StringUtils.isEmpty(input.getImportPath())) { - blueprint.setImports(importsService.createImportsFromFile(input.getImportPath())); - } else { - blueprint.setImports(importsService.createImports(input.getBpType())); - } - - Map nodeTemplate = new TreeMap(); - - Map dmaapNodeResponse = - nodeService - .createDmaapNode(onapComponentSpec, inputs, input.getServiceNameOverride()); - inputs = (Map>) dmaapNodeResponse.get("inputs"); - nodeTemplate.put( - onapComponentSpec.getSelf().getName(), (Node) dmaapNodeResponse.get("dmaapNode")); - - if (onapComponentSpec.getStreams() != null) { - if (onapComponentSpec.getStreams().getPublishes() != null) { - for (Publishes publishes : onapComponentSpec.getStreams().getPublishes()) { - if (blueprintHelperService.isMessageRouterType(publishes.getType())) { - String topic = publishes.getConfig_key() + Constants._TOPIC; - Map topicNodeResponse = nodeService - .createTopicNode(inputs, topic); - inputs = (Map>) topicNodeResponse - .get("inputs"); - nodeTemplate.put(topic, (Node) topicNodeResponse.get("topicNode")); - } else if (blueprintHelperService.isDataRouterType(publishes.getType())) { - String feed = publishes.getConfig_key() + Constants._FEED; - Map feedNodeResponse = nodeService - .createFeedNode(inputs, feed); - inputs = (Map>) feedNodeResponse - .get("inputs"); - nodeTemplate.put(feed, (Node) feedNodeResponse.get("feedNode")); - } - } - } - if (onapComponentSpec.getStreams().getSubscribes() != null) { - for (Subscribes s : onapComponentSpec.getStreams().getSubscribes()) { - if (blueprintHelperService.isMessageRouterType(s.getType())) { - String topic = s.getConfig_key() + Constants._TOPIC; - Map topicNodeResponse = nodeService - .createTopicNode(inputs, topic); - inputs = (Map>) topicNodeResponse - .get("inputs"); - nodeTemplate.put(topic, (Node) topicNodeResponse.get("topicNode")); - } else if (blueprintHelperService.isDataRouterType(s.getType())) { - String feed = s.getConfig_key() + Constants._FEED; - Map feedNodeResponse = nodeService - .createFeedNode(inputs, feed); - inputs = (Map>) feedNodeResponse - .get("inputs"); - nodeTemplate.put(feed, (Node) feedNodeResponse.get("feedNode")); - } - } - } - } - - if (onapComponentSpec.getPolicyInfo() != null) { - policyNodeService.addPolicyNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); - } - - if (onapComponentSpec.getAuxilary() != null - && onapComponentSpec.getAuxilary().getDatabases() != null) { - pgaasNodeService.addPgaasNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); - } - - blueprint.setNode_templates(nodeTemplate); - blueprint.setInputs(inputs); - return quotationService.setQuotations(blueprint); - } catch (Exception ex) { - throw new BlueprintException( - "Unable to create ONAP DMAAP Blueprint Object from given input parameters", ex); - } - } -} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/onap/OnapBlueprintCreatorService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/onap/OnapBlueprintCreatorService.java new file mode 100644 index 0000000..afc02f3 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/onap/OnapBlueprintCreatorService.java @@ -0,0 +1,116 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 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. + * * See the License for the specific language governing permissions and + * * limitations under the License. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.onap; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.exception.BlueprintException; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.OnapBlueprint; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.service.base.BlueprintService; +import org.onap.blueprintgenerator.service.common.ImportsService; +import org.onap.blueprintgenerator.service.common.NodeService; +import org.onap.blueprintgenerator.service.common.PgaasNodeService; +import org.onap.blueprintgenerator.service.common.PolicyNodeService; +import org.onap.blueprintgenerator.service.common.QuotationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 Application: ONAP - Blueprint Generator Service to create ONAP Blueprint + */ +@Service +public class OnapBlueprintCreatorService { + + @Autowired + private NodeService nodeService; + + @Autowired + private PolicyNodeService policyNodeService; + + @Autowired + private PgaasNodeService pgaasNodeService; + + @Autowired + private QuotationService quotationService; + + @Autowired + protected ImportsService importsService; + + /** + * Creates Onap Blueprint + * + * @param onapComponentSpec OnapComponentSpec + * @param input Inputs + * @return + */ + public OnapBlueprint createBlueprint(OnapComponentSpec onapComponentSpec, Input input) { + try { + OnapBlueprint blueprint = new OnapBlueprint(); + blueprint.setTosca_definitions_version(Constants.TOSCA_DEF_VERSION); + + // if (!"".equals(input.getImportPath())) + if (!StringUtils.isEmpty(input.getImportPath())) { + blueprint.setImports(importsService.createImportsFromFile(input.getImportPath())); + } else { + blueprint.setImports(importsService.createImports(input.getBpType())); + } + + Map nodeTemplate = new TreeMap<>(); + String nodeName = onapComponentSpec.getSelf().getName(); + Map> inputs = new TreeMap<>(); + + Map onapNodeResponse = + nodeService + .createOnapNode(inputs, onapComponentSpec, input.getServiceNameOverride()); + inputs = (Map>) onapNodeResponse.get("inputs"); + nodeTemplate.put(nodeName, (Node) onapNodeResponse.get("onapNode")); + blueprint.setNode_templates(nodeTemplate); + + if (onapComponentSpec.getPolicyInfo() != null) { + policyNodeService.addPolicyNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + } + + if (onapComponentSpec.getAuxilary() != null + && onapComponentSpec.getAuxilary().getDatabases() != null) { + pgaasNodeService.addPgaasNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + } + + blueprint.setInputs(inputs); + + return quotationService.setQuotations(blueprint); + } catch (Exception ex) { + throw new BlueprintException( + "Unable to create ONAP Blueprint Object from given input parameters", ex); + } + } +} -- cgit 1.2.3-korg