Fix issue with global substitutions 59/119759/5
authorMichaelMorris <michael.morris@est.tech>
Wed, 24 Mar 2021 15:00:53 +0000 (15:00 +0000)
committerChristophe Closset <christophe.closset@intl.att.com>
Fri, 26 Mar 2021 08:20:44 +0000 (08:20 +0000)
Check if node types in the global substitutions file already exist before attempting to create them

Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-3533
Change-Id: I8129e3108e27f3bae4f33e1bd652d8b74ae34de9

catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java

index fa58e61..c8162d7 100644 (file)
@@ -1875,7 +1875,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                  String nodeName) {
         try {
             for (Entry<String, NodeTypeInfo> nodeTypeEntry : nodeTypesInfo.entrySet()) {
-                if (nodeTypeEntry.getValue().isNested()) {
+                if (nodeTypeEntry.getValue().isNested() && !nodeTypeAlreadyExists(nodeTypeEntry.getKey())) {
                     handleNestedVfc(resource, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo,
                         nodeTypeEntry.getKey());
                     log.trace("************* finished to create node {}", nodeTypeEntry.getKey());
@@ -1902,6 +1902,10 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
             throw e;
         }
     }
+    
+    private boolean nodeTypeAlreadyExists(final String toscaResourceName) {
+        return toscaOperationFacade.getLatestByToscaResourceName(toscaResourceName).isLeft();
+    }
 
     private Either<Resource, ResponseFormat> handleVfCsarArtifacts(Resource resource, CsarInfo csarInfo, List<ArtifactDefinition> createdArtifacts,
                                                                    ArtifactOperationInfo artifactOperation, boolean shouldLock,