From 6068ce140c9a65f13a0bd245c9b9a50befaddc32 Mon Sep 17 00:00:00 2001 From: xuegao Date: Thu, 11 Feb 2021 15:16:36 +0100 Subject: Fix pnf csar package issue Generate the dependencies and imports even derivedFrom list is empty. Issue-ID: SDC-3391 Signed-off-by: xuegao Change-Id: Ia07d1d6a73a1e08fb8f5ba1678b15e71aecd54b0 Signed-off-by: xuegao --- .../openecomp/sdc/be/tosca/ToscaExportHandler.java | 66 ++++++++++++---------- 1 file changed, 37 insertions(+), 29 deletions(-) (limited to 'catalog-be/src/main') 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 70834fd39a..ddea498c6f 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 @@ -561,7 +561,7 @@ public class ToscaExportHandler { final List> dependencies, final ComponentInstance componentInstance) { log.debug("createDependency componentCache {}", componentCache); - final Component componentRI = componentCache.get(componentInstance.getComponentUid()); + Component componentRI = componentCache.get(componentInstance.getComponentUid()); if (componentRI == null || componentInstance.getOriginType() == OriginTypeEnum.ServiceSubstitution) { // all resource must be only once! final Either resource = toscaOperationFacade @@ -572,15 +572,15 @@ public class ToscaExportHandler { return; } final Component fetchedComponent = resource.left().value(); - setComponentCache(componentCache, componentInstance, fetchedComponent); - addDependencies(imports, dependencies, fetchedComponent); + componentRI = setComponentCache(componentCache, componentInstance, fetchedComponent); + addDependencies(imports, dependencies, componentRI); } } /** * Sets a componentCache from the given component/resource. */ - private void setComponentCache(final Map componentCache, + private Component setComponentCache(final Map componentCache, final ComponentInstance componentInstance, final Component fetchedComponent) { componentCache.put(fetchedComponent.getUniqueId(), fetchedComponent); @@ -594,7 +594,9 @@ public class ToscaExportHandler { } final Component fetchedSource = sourceService.left().value(); componentCache.put(fetchedSource.getUniqueId(), fetchedSource); + return fetchedSource; } + return fetchedComponent; } /** @@ -609,7 +611,7 @@ public class ToscaExportHandler { final Optional> derivedFromMapOfIdToName = getDerivedFromMapOfIdToName(fetchedComponent, componentsList); - if (derivedFromMapOfIdToName.isPresent()) { + if (derivedFromMapOfIdToName.isPresent() && !derivedFromMapOfIdToName.get().isEmpty()) { derivedFromMapOfIdToName.get().entrySet().forEach(entry -> { log.debug("Started entry.getValue() : {}", entry.getValue()); if (!NATIVE_ROOT.equals(entry.getValue())) { @@ -620,8 +622,11 @@ public class ToscaExportHandler { } } }); + setImports(imports, dependencies, componentsList); + } else { + setImports(imports, dependencies, fetchedComponent); } - setImports(imports, dependencies, componentsList); + } } @@ -658,30 +663,33 @@ public class ToscaExportHandler { private void setImports(final List>> imports, final List> dependencies, final Set componentsList) { - componentsList.forEach(component -> { - final Map toscaArtifacts = component.getToscaArtifacts(); - final ArtifactDefinition artifactDefinition = toscaArtifacts.get(ASSET_TOSCA_TEMPLATE); - if (artifactDefinition != null) { - final Map files = new HashMap<>(); - final String artifactName = artifactDefinition.getArtifactName(); - files.put(IMPORTS_FILE_KEY, artifactName); - final StringBuilder keyNameBuilder = new StringBuilder(); - keyNameBuilder.append(component.getComponentType().toString().toLowerCase()); - keyNameBuilder.append("-"); - keyNameBuilder.append(component.getName()); - addImports(imports, keyNameBuilder, files); - dependencies - .add(new ImmutableTriple(artifactName, artifactDefinition.getEsId(), - component)); - - if (!ModelConverter.isAtomicComponent(component)) { - final Map interfaceFiles = new HashMap<>(); - interfaceFiles.put(IMPORTS_FILE_KEY, getInterfaceFilename(artifactName)); - keyNameBuilder.append("-interface"); - addImports(imports, keyNameBuilder, interfaceFiles); - } + componentsList.forEach(component -> setImports(imports, dependencies, component)); + } + + private void setImports(final List>> imports, + final List> dependencies, + final Component component) { + final Map toscaArtifacts = component.getToscaArtifacts(); + final ArtifactDefinition artifactDefinition = toscaArtifacts.get(ASSET_TOSCA_TEMPLATE); + if (artifactDefinition != null) { + final Map files = new HashMap<>(); + final String artifactName = artifactDefinition.getArtifactName(); + files.put(IMPORTS_FILE_KEY, artifactName); + final StringBuilder keyNameBuilder = new StringBuilder(); + keyNameBuilder.append(component.getComponentType().toString().toLowerCase()); + keyNameBuilder.append("-"); + keyNameBuilder.append(component.getName()); + addImports(imports, keyNameBuilder, files); + dependencies + .add(new ImmutableTriple(artifactName, artifactDefinition.getEsId(), component)); + + if (!ModelConverter.isAtomicComponent(component)) { + final Map interfaceFiles = new HashMap<>(); + interfaceFiles.put(IMPORTS_FILE_KEY, getInterfaceFilename(artifactName)); + keyNameBuilder.append("-interface"); + addImports(imports, keyNameBuilder, interfaceFiles); } - }); + } } /** -- cgit 1.2.3-korg