final List<Triple<String, String, Component>> 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<Component, StorageOperationStatus> resource = toscaOperationFacade
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<String, Component> componentCache,
+ private Component setComponentCache(final Map<String, Component> componentCache,
final ComponentInstance componentInstance,
final Component fetchedComponent) {
componentCache.put(fetchedComponent.getUniqueId(), fetchedComponent);
}
final Component fetchedSource = sourceService.left().value();
componentCache.put(fetchedSource.getUniqueId(), fetchedSource);
+ return fetchedSource;
}
+ return fetchedComponent;
}
/**
final Optional<Map<String, String>> 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())) {
}
}
});
+ setImports(imports, dependencies, componentsList);
+ } else {
+ setImports(imports, dependencies, fetchedComponent);
}
- setImports(imports, dependencies, componentsList);
+
}
}
private void setImports(final List<Map<String, Map<String, String>>> imports,
final List<Triple<String, String, Component>> dependencies,
final Set<Component> componentsList) {
- componentsList.forEach(component -> {
- final Map<String, ArtifactDefinition> toscaArtifacts = component.getToscaArtifacts();
- final ArtifactDefinition artifactDefinition = toscaArtifacts.get(ASSET_TOSCA_TEMPLATE);
- if (artifactDefinition != null) {
- final Map<String, String> 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<String, String, Component>(artifactName, artifactDefinition.getEsId(),
- component));
-
- if (!ModelConverter.isAtomicComponent(component)) {
- final Map<String, String> 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<Map<String, Map<String, String>>> imports,
+ final List<Triple<String, String, Component>> dependencies,
+ final Component component) {
+ final Map<String, ArtifactDefinition> toscaArtifacts = component.getToscaArtifacts();
+ final ArtifactDefinition artifactDefinition = toscaArtifacts.get(ASSET_TOSCA_TEMPLATE);
+ if (artifactDefinition != null) {
+ final Map<String, String> 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<String, String, Component>(artifactName, artifactDefinition.getEsId(), component));
+
+ if (!ModelConverter.isAtomicComponent(component)) {
+ final Map<String, String> interfaceFiles = new HashMap<>();
+ interfaceFiles.put(IMPORTS_FILE_KEY, getInterfaceFilename(artifactName));
+ keyNameBuilder.append("-interface");
+ addImports(imports, keyNameBuilder, interfaceFiles);
}
- });
+ }
}
/**
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.openecomp.sdc.be.tosca.PropertyConvertor.PropertyType.PROPERTY;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.LinkedList;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import org.openecomp.sdc.be.datatypes.elements.ToscaArtifactDataDefinition;
import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.exception.ToscaExportException;
import org.openecomp.sdc.be.model.ArtifactDefinition;
import org.openecomp.sdc.be.model.CapabilityDefinition;
Assert.assertNotNull(result);
}
+ @Test
+ public void testSetImports() throws Exception {
+ Resource resource = new Resource();
+ resource.setResourceType(ResourceTypeEnum.PNF);
+
+ Component component = resource;
+ component.setName("TestResourceName");
+ Map<String, ArtifactDefinition> artifactList = new HashMap<>();
+ ArtifactDefinition artifact = new ArtifactDefinition();
+ artifact.setArtifactName("name.name2");
+ artifactList.put("assettoscatemplate", artifact);
+ component.setArtifacts(artifactList);
+ component.setToscaArtifacts(artifactList);
+ ToscaTemplate toscaTemplate = new ToscaTemplate("");
+
+
+ ComponentInstance ci = new ComponentInstance();
+ ci.setComponentUid("name");
+ ci.setOriginType(OriginTypeEnum.PNF);
+ ci.setSourceModelUid("modelName");
+ List<ComponentInstance> componentInstanceList = new LinkedList<>();
+ componentInstanceList.add(ci);
+ component.setComponentInstances(componentInstanceList);
+
+ when(toscaOperationFacade.getToscaFullElement(eq("name"))).thenReturn(Either.left(component));
+
+ Either<ImmutablePair<ToscaTemplate, Map<String, Component>>, ToscaError> result;
+ result = Deencapsulation.invoke(testSubject, "fillImports", component, toscaTemplate);
+
+ verify(toscaOperationFacade, times(1)).getToscaFullElement("name");
+ Assert.assertTrue(result.isLeft());
+ ToscaTemplate toscaTemplateRes = result.left().value().left;
+ Assert.assertTrue(toscaTemplateRes.getImports().size() == 8);
+ Assert.assertNotNull(toscaTemplateRes.getImports().get(6).get("resource-TestResourceName-interface"));
+ Assert.assertNotNull(toscaTemplateRes.getImports().get(7).get("resource-TestResourceName"));
+ Assert.assertTrue(toscaTemplateRes.getDependencies().size() == 1);
+ Assert.assertNotNull(toscaTemplateRes.getDependencies().get(0).getLeft().equals("name.name2"));
+ }
+
@Test
public void testConvertToscaTemplate() throws Exception {