aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvasraz <vasyl.razinkov@est.tech>2020-10-20 18:16:28 +0100
committerS�bastien Determe <sebastien.determe@intl.att.com>2020-11-05 11:22:14 +0000
commit7f7b1c8e7a8fba8e73786cb158f1ebfa5b11a8c4 (patch)
tree628454ed6ba923fcbcd28781f4deb331d9861ab3
parenta26f07d36732915193c56c8100e70680531b4d55 (diff)
Add substitution_mapping attributes mapping
Add support of mapping the outputs to attributes in substitution_mapping Change-Id: Ifbe95a1fdfd476aa7aca17502ee9b30bea906874 Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech> Issue-ID: SDC-3320
-rw-r--r--catalog-be-plugins/etsi-nfv-nsd-csar-plugin/src/main/java/org/openecomp/sdc/be/plugins/etsi/nfv/nsd/generator/NsDescriptorGeneratorImpl.java8
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java19
-rw-r--r--catalog-be/src/main/java/org/openecomp/sdc/be/tosca/model/SubstitutionMapping.java1
-rw-r--r--catalog-be/src/test/java/org/openecomp/sdc/be/tosca/model/SubstitutionMappingTest.java99
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/Component.java1
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/OutputDefinition.java38
-rw-r--r--common/onap-tosca-datatype/src/test/java/org/onap/sdc/tosca/datatypes/model/SubstitutionMappingTest.java33
-rw-r--r--openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/services/DataModelUtil.java2
8 files changed, 65 insertions, 136 deletions
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<String, String[]> 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<String, String[]> 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<Map<String, ToscaProperty>> getProxyNodeTypeProperties(Component proxyComponent,
Map<String, DataTypeDefinition>
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<String, String[]> requirements;
private NodeFilter substitution_filter;
private Map<String, String[]> properties;
+ private Map<String, String[]> 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<String, String[]> result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getCapabilities();
- }
-
-
- @Test
- public void testSetCapabilities() throws Exception {
- SubstitutionMapping testSubject;
- Map<String, String[]> capabilities = null;
-
- // default test
- testSubject = createTestSubject();
- testSubject.setCapabilities(capabilities);
- }
-
-
- @Test
- public void testGetRequirements() throws Exception {
- SubstitutionMapping testSubject;
- Map<String, String[]> result;
-
- // default test
- testSubject = createTestSubject();
- result = testSubject.getRequirements();
- }
-
-
- @Test
- public void testSetRequirements() throws Exception {
- SubstitutionMapping testSubject;
- Map<String, String[]> 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<String, List<RequirementDefinition>> requirements;
private Map<String, List<ComponentInstanceInterface>> componentInstancesInterfaces;
private List<InputDefinition> inputs;
+ private List<OutputDefinition> outputs;
private List<GroupDefinition> groups;
private Map<String, PolicyDefinition> 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;
}