Fix issue with global substitutions 41/120541/2
authorMichaelMorris <michael.morris@est.tech>
Wed, 24 Mar 2021 15:00:53 +0000 (15:00 +0000)
committerChristophe Closset <christophe.closset@intl.att.com>
Thu, 15 Apr 2021 09:50:29 +0000 (09:50 +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
(cherry picked from commit 316a6df0f1a42cb3f825b9ab4b51d9d59215a530)

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

index a3d746d..c7a98a2 100644 (file)
@@ -2224,8 +2224,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                                                                 CsarInfo csarInfo, 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());
@@ -2256,6 +2255,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,