X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fbabel%2Fxml%2Fgenerator%2Fapi%2FAaiArtifactGenerator.java;h=fc5acdad29ed8a1a23144fa4a2a957bc91f933ac;hb=1954294aed95c2db4eb2659dcef91248535de079;hp=d6d0a1e97a063ab32ac8e8d6bfdcc34b499b2530;hpb=7fcc74469c941c1834cd02b54ff5ca88a53bf83b;p=aai%2Fbabel.git diff --git a/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java b/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java index d6d0a1e..fc5acda 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/api/AaiArtifactGenerator.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 European Software Marketing Ltd. + * Copyright © 2017-2019 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2019 European Software Marketing Ltd. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.babel.xml.generator.api; import java.io.IOException; @@ -26,6 +27,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.onap.aai.babel.logging.ApplicationMsgs; @@ -39,15 +41,16 @@ import org.onap.aai.babel.xml.generator.data.GeneratorUtil; import org.onap.aai.babel.xml.generator.data.GroupType; import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil; import org.onap.aai.babel.xml.generator.model.Model; -import org.onap.aai.babel.xml.generator.model.ProvidingService; import org.onap.aai.babel.xml.generator.model.Resource; import org.onap.aai.babel.xml.generator.model.Service; import org.onap.aai.babel.xml.generator.model.TunnelXconnectWidget; +import org.onap.aai.babel.xml.generator.model.Widget.Type; import org.onap.aai.cl.api.Logger; import org.onap.sdc.tosca.parser.api.ISdcCsarHelper; import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory; import org.onap.sdc.toscaparser.api.Group; import org.onap.sdc.toscaparser.api.NodeTemplate; +import org.onap.sdc.toscaparser.api.elements.Metadata; import org.slf4j.MDC; public class AaiArtifactGenerator implements ArtifactGenerator { @@ -128,7 +131,10 @@ public class AaiArtifactGenerator implements ArtifactGenerator { for (Resource resource : resources) { generateResourceArtifact(generationData, resource); for (Resource childResource : resource.getResources()) { - if (!(childResource instanceof ProvidingService)) { + boolean isProvidingService = + (boolean) Optional.ofNullable(childResource.getProperties().get("providingService")) // + .orElse(false); + if (!isProvidingService) { generateResourceArtifact(generationData, childResource); } } @@ -179,16 +185,16 @@ public class AaiArtifactGenerator implements ArtifactGenerator { private void generateModelFromNodeTemplate(ISdcCsarHelper csarHelper, Service serviceModel, List resources, final List serviceGroups, ArtifactGeneratorToscaParser parser, NodeTemplate nodeTemplate) { - String nodeTypeName = parser.normaliseNodeTypeName(nodeTemplate); - Model model = Model.getModelFor(nodeTypeName, nodeTemplate.getMetaData().getValue("type")); + Resource model = getModelFor(parser, nodeTemplate); + if (model != null) { if (nodeTemplate.getMetaData() != null) { model.populateModelIdentificationInformation(nodeTemplate.getMetaData().getAllProperties()); } parser.addRelatedModel(serviceModel, model); - if (model instanceof Resource) { - generateResourceModel(csarHelper, resources, parser, nodeTemplate, nodeTypeName); + if (model.isResource()) { + generateResourceModel(csarHelper, resources, parser, nodeTemplate); } } else { for (Group group : serviceGroups) { @@ -206,11 +212,26 @@ public class AaiArtifactGenerator implements ArtifactGenerator { } } - private void generateResourceModel(ISdcCsarHelper csarHelper, List resources, - ArtifactGeneratorToscaParser parser, NodeTemplate nodeTemplate, String nodeTypeName) { + private Resource getModelFor(ArtifactGeneratorToscaParser parser, NodeTemplate nodeTemplate) { + String nodeTypeName = nodeTemplate.getType(); + log.debug("Processing resource " + nodeTypeName + ": " + nodeTemplate.getMetaData().getValue("UUID")); - Model resourceModel = Model.getModelFor(nodeTypeName, nodeTemplate.getMetaData().getValue("type")); + Resource model = Model.getModelFor(nodeTypeName, nodeTemplate.getMetaData().getValue("type")); + + Metadata metadata = nodeTemplate.getMetaData(); + if (metadata != null && parser.hasAllottedResource(metadata.getAllProperties())) { + if (model.getWidgetType() == Type.VF) { + model = new Resource(Type.ALLOTTED_RESOURCE, true); + } + } + + return model; + } + + private void generateResourceModel(ISdcCsarHelper csarHelper, List resources, + ArtifactGeneratorToscaParser parser, NodeTemplate nodeTemplate) { + Resource resourceModel = getModelFor(parser, nodeTemplate); Map serviceMetadata = nodeTemplate.getMetaData().getAllProperties(); resourceModel.populateModelIdentificationInformation(serviceMetadata);