From 7f7b1c8e7a8fba8e73786cb158f1ebfa5b11a8c4 Mon Sep 17 00:00:00 2001 From: vasraz Date: Tue, 20 Oct 2020 18:16:28 +0100 Subject: Add substitution_mapping attributes mapping Add support of mapping the outputs to attributes in substitution_mapping Change-Id: Ifbe95a1fdfd476aa7aca17502ee9b30bea906874 Signed-off-by: Vasyl Razinkov Issue-ID: SDC-3320 --- .../nsd/generator/NsDescriptorGeneratorImpl.java | 8 +- .../openecomp/sdc/be/tosca/ToscaExportHandler.java | 19 +++++ .../sdc/be/tosca/model/SubstitutionMapping.java | 1 + .../be/tosca/model/SubstitutionMappingTest.java | 99 ---------------------- .../java/org/openecomp/sdc/be/model/Component.java | 1 + .../openecomp/sdc/be/model/OutputDefinition.java | 38 +++++++++ .../datatypes/model/SubstitutionMappingTest.java | 33 -------- .../sdc/tosca/services/DataModelUtil.java | 2 +- 8 files changed, 65 insertions(+), 136 deletions(-) delete mode 100644 catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java create mode 100644 catalog-model/src/main/java/org/openecomp/sdc/be/model/OutputDefinition.java delete mode 100644 common/onap-tosca-datatype/src/test/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMappingTest.java diff --git a/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/NsDescriptorGeneratorImpl.java b/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/NsDescriptorGeneratorImpl.java index 0c8b86b5e7..801f1ee8e6 100644 --- a/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/NsDescriptorGeneratorImpl.java +++ b/catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/NsDescriptorGeneratorImpl.java @@ -223,11 +223,13 @@ public class NsDescriptorGeneratorImpl implements NsDescriptorGenerator { private void handleSubstitutionMappings(final ToscaTemplate componentToscaTemplate, final String nsNodeTypeName) { final SubstitutionMapping substitutionMapping = new SubstitutionMapping(); - substitutionMapping.setNode_type(nsNodeTypeName); + substitutionMapping.setNode_type(nsNodeTypeName); final SubstitutionMapping onapSubstitutionMapping = componentToscaTemplate.getTopology_template().getSubstitution_mappings(); if (onapSubstitutionMapping != null) { - substitutionMapping.setRequirements(onapSubstitutionMapping.getRequirements()); - substitutionMapping.setCapabilities(onapSubstitutionMapping.getCapabilities()); + substitutionMapping.setRequirements(onapSubstitutionMapping.getRequirements()); + substitutionMapping.setCapabilities(onapSubstitutionMapping.getCapabilities()); + substitutionMapping.setProperties(onapSubstitutionMapping.getProperties()); + substitutionMapping.setAttributes(onapSubstitutionMapping.getAttributes()); } componentToscaTemplate.getTopology_template().setSubstitution_mappings(substitutionMapping); } diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java index d0c14f77c5..08c3d18157 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java @@ -373,6 +373,11 @@ public class ToscaExportHandler { substitutionMapping.setProperties(propertyMappingMap); } + final Map attributesMappingMap = buildSubstitutionMappingAttributesMapping(component); + if (!attributesMappingMap.isEmpty()) { + substitutionMapping.setAttributes(attributesMappingMap); + } + topologyTemplate.setSubstitution_mappings(substitutionMapping); toscaNode.setTopology_template(topologyTemplate); @@ -1751,6 +1756,20 @@ public class ToscaExportHandler { ); } + private Map buildSubstitutionMappingAttributesMapping(final Component component) { + if (component == null || CollectionUtils.isEmpty(component.getOutputs())) { + return Collections.emptyMap(); + } + return component.getOutputs().stream() + .map(PropertyDataDefinition::getName) + .collect( + Collectors.toMap( + outputName -> outputName, + outputName -> new String[]{outputName}, + (outputName1, outputName2) -> outputName1) + ); + } + Optional> getProxyNodeTypeProperties(Component proxyComponent, Map dataTypes) { diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java index 1a2a13817b..7b70a0b5f4 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java @@ -39,4 +39,5 @@ public class SubstitutionMapping { private Map requirements; private NodeFilter substitution_filter; private Map properties; + private Map attributes; } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java deleted file mode 100644 index 8898259ee6..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * 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.openecomp.sdc.be.tosca.model; - -import org.junit.Test; - -import java.util.Map; - - -public class SubstitutionMappingTest { - - private SubstitutionMapping createTestSubject() { - return new SubstitutionMapping(); - } - - - @Test - public void testGetNode_type() throws Exception { - SubstitutionMapping testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getNode_type(); - } - - - @Test - public void testSetNode_type() throws Exception { - SubstitutionMapping testSubject; - String node_type = ""; - - // default test - testSubject = createTestSubject(); - testSubject.setNode_type(node_type); - } - - - @Test - public void testGetCapabilities() throws Exception { - SubstitutionMapping testSubject; - Map result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getCapabilities(); - } - - - @Test - public void testSetCapabilities() throws Exception { - SubstitutionMapping testSubject; - Map capabilities = null; - - // default test - testSubject = createTestSubject(); - testSubject.setCapabilities(capabilities); - } - - - @Test - public void testGetRequirements() throws Exception { - SubstitutionMapping testSubject; - Map result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getRequirements(); - } - - - @Test - public void testSetRequirements() throws Exception { - SubstitutionMapping testSubject; - Map requirements = null; - - // default test - testSubject = createTestSubject(); - testSubject.setRequirements(requirements); - } -} diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java index 8f58a3c4d2..bf9c3275a6 100644 --- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java @@ -78,6 +78,7 @@ public abstract class Component implements PropertiesOwner { private Map> requirements; private Map> componentInstancesInterfaces; private List inputs; + private List outputs; private List groups; private Map policies; private String derivedFromGenericType; diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/OutputDefinition.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/OutputDefinition.java new file mode 100644 index 0000000000..fc8cd0f590 --- /dev/null +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/OutputDefinition.java @@ -0,0 +1,38 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2020 Nordix Foundation + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.openecomp.sdc.be.model; + +import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; + +public class OutputDefinition extends PropertyDefinition { + + public OutputDefinition(final PropertyDataDefinition propertyDataDefinition) { + super(propertyDataDefinition); + } + + public OutputDefinition(PropertyDefinition propertyDefinition) { + super(propertyDefinition); + } + + public OutputDefinition(final OutputDefinition outputDefinition) { + super(outputDefinition); + } + +} diff --git a/common/onap-tosca-datatype/src/test/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMappingTest.java b/common/onap-tosca-datatype/src/test/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMappingTest.java deleted file mode 100644 index 888a51c9af..0000000000 --- a/common/onap-tosca-datatype/src/test/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMappingTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 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.sdc.tosca.datatypes.model; - -import org.junit.Test; - -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.hamcrest.MatcherAssert.assertThat; - -public class SubstitutionMappingTest { - @Test - public void shouldHaveValidGettersAndSetters() { - assertThat(SubstitutionMapping.class, hasValidGettersAndSetters()); - } -} \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java index f7188379dc..22b6eb847e 100644 --- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java +++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java @@ -1146,7 +1146,7 @@ public class DataModelUtil { substitutionMapping.setCapabilities(manageCapabilityMapping(substitutionNodeType.getCapabilities(), mapping.get(ToscaConstants.CAPABILITY))); substitutionMapping.setRequirements( - manageRequirementMapping(substitutionNodeType.getRequirements(), mapping.get("requirement"))); + manageRequirementMapping(substitutionNodeType.getRequirements(), mapping.get(ToscaConstants.REQUIREMENT))); return substitutionMapping; } -- cgit 1.2.3-korg