1 package org.openecomp.sdc.translator.services.heattotosca;
3 import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isComputeResource;
4 import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isPortResource;
5 import static org.openecomp.sdc.translator.services.heattotosca.ConsolidationDataUtil.isVolumeResource;
7 import org.apache.commons.lang3.ObjectUtils;
8 import org.openecomp.core.utilities.yaml.YamlUtil;
9 import org.openecomp.sdc.heat.datatypes.manifest.FileData;
10 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
11 import org.openecomp.sdc.heat.datatypes.model.Resource;
12 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
14 import java.util.Collection;
15 import java.util.Objects;
16 import java.util.Optional;
19 * The enum Entity type.
21 public enum ConsolidationEntityType {
30 private ConsolidationEntityType sourceEntityType;
31 private ConsolidationEntityType targetEntityType;
33 public ConsolidationEntityType getSourceEntityType() {
34 return sourceEntityType;
37 public ConsolidationEntityType getTargetEntityType() {
38 return targetEntityType;
44 * @param heatOrchestrationTemplate the heat orchestration template
45 * @param sourceResource the source resource
46 * @param targetResource the target resource
48 public void setEntityType(HeatOrchestrationTemplate heatOrchestrationTemplate,
49 Resource sourceResource,
50 Resource targetResource,
51 TranslationContext context) {
53 getEntityType(heatOrchestrationTemplate, targetResource, context);
55 getEntityType(heatOrchestrationTemplate, sourceResource, context);
58 private ConsolidationEntityType getEntityType(HeatOrchestrationTemplate heatOrchestrationTemplate,
59 Resource resource, TranslationContext context) {
60 if (isComputeResource(resource)) {
61 return ConsolidationEntityType.COMPUTE;
62 } else if (isPortResource(resource)) {
63 return ConsolidationEntityType.PORT;
64 } else if (isVolumeResource(resource)) {
65 return ConsolidationEntityType.VOLUME;
66 } else if (HeatToToscaUtil.isNestedResource(resource)) {
67 Optional<String> nestedHeatFileName = HeatToToscaUtil.getNestedHeatFileName(resource);
68 if (nestedHeatFileName.isPresent()) {
69 HeatOrchestrationTemplate nestedHeatOrchestrationTemplate = new YamlUtil()
70 .yamlToObject(context.getFileContent(nestedHeatFileName.get()),
71 HeatOrchestrationTemplate.class);
72 if (Objects.nonNull(nestedHeatOrchestrationTemplate.getResources())) {
73 for (String innerResourceId : nestedHeatOrchestrationTemplate.getResources().keySet()) {
74 if (ConsolidationDataUtil
75 .isComputeResource(nestedHeatOrchestrationTemplate, innerResourceId)) {
76 return ConsolidationEntityType.VFC_NESTED;
81 return ConsolidationEntityType.NESTED;
83 return ConsolidationEntityType.OTHER;