representer.addClassTag(toscaTemplate.getClass(), Tag.MAP);
representer.setPropertyUtils(new UnsortedPropertyUtils());
-
Yaml yaml = new Yaml(representer, options);
String yamlAsString = yaml.dumpAsMap(toscaTemplate);
String sb = getConfiguration().getHeatEnvArtifactHeader()
.collect(Collectors.toMap(
PropertyDataDefinition::getName,
s -> propertyConvertor.convertProperty(dataTypes, s, PropertyType.PROPERTY),
- (toscaPropertyTobeValidated, toscaProperty) -> validateToscaProperty((List<DataTypeDefinition>) dataTypeDefinition, toscaPropertyTobeValidated,
+ (toscaPropertyTobeValidated, toscaProperty) -> validateToscaProperty((List<DataTypeDefinition>) dataTypeDefinition,
+ toscaPropertyTobeValidated,
toscaProperty)
)));
}
}
private boolean doNotExtendBaseType(final Component component) {
- final Map<String, CategoryBaseTypeConfig> serviceNodeTypesConfig = ConfigurationManager.getConfigurationManager().getConfiguration().getServiceBaseNodeTypes();
+ final Map<String, CategoryBaseTypeConfig> serviceNodeTypesConfig = ConfigurationManager.getConfigurationManager().getConfiguration()
+ .getServiceBaseNodeTypes();
List<CategoryDefinition> categories = component.getCategories();
- if (CollectionUtils.isNotEmpty(categories) && MapUtils.isNotEmpty(serviceNodeTypesConfig) && serviceNodeTypesConfig.get(categories.get(0).getName()) != null) {
+ if (CollectionUtils.isNotEmpty(categories) && MapUtils.isNotEmpty(serviceNodeTypesConfig)
+ && serviceNodeTypesConfig.get(categories.get(0).getName()) != null) {
return serviceNodeTypesConfig.get(categories.get(0).getName()).isDoNotExtendBaseType();
}
return false;
}
}
- private Map<String, String> convertMetadata(Component component) {
+ private Map<String, Object> convertMetadata(Component component) {
return convertMetadata(component, false, null);
}
- private Map<String, String> convertMetadata(Component component, boolean isInstance, ComponentInstance componentInstance) {
- Map<String, String> toscaMetadata = new LinkedHashMap<>();
+ private Map<String, Object> convertMetadata(Component component, boolean isInstance, ComponentInstance componentInstance) {
+ Map<String, Object> toscaMetadata = new LinkedHashMap<>();
toscaMetadata.put(convertMetadataKey(JsonPresentationFields.INVARIANT_UUID), component.getInvariantUUID());
toscaMetadata.put(JsonPresentationFields.UUID.getPresentation(), component.getUUID());
toscaMetadata
}
toscaMetadata.put(JsonPresentationFields.RESOURCE_VENDOR_RELEASE.getPresentation(), resource.getVendorRelease());
toscaMetadata.put(JsonPresentationFields.RESOURCE_VENDOR_MODEL_NUMBER.getPresentation(), resource.getResourceVendorModelNumber());
+ toscaMetadata.put(resource.isTopologyTemplate() ? JsonPresentationFields.TEMPLATE_VERSION.getPresentation() : JsonPresentationFields.VERSION.getPresentation(), resource.getVersion());
break;
case SERVICE:
Service service = (Service) component;
toscaMetadata.put(JsonPresentationFields.SERVICE_ROLE.getPresentation(), service.getServiceRole());
toscaMetadata.put(JsonPresentationFields.SERVICE_FUNCTION.getPresentation(), service.getServiceFunction());
toscaMetadata.put(JsonPresentationFields.ENVIRONMENT_CONTEXT.getPresentation(), service.getEnvironmentContext());
+ toscaMetadata.put(JsonPresentationFields.TEMPLATE_VERSION.getPresentation(), service.getVersion());
toscaMetadata.put(JsonPresentationFields.INSTANTIATION_TYPE.getPresentation(),
service.getEnvironmentContext() == null ? StringUtils.EMPTY : service.getInstantiationType());
if (!isInstance) {
- // DE268546
- toscaMetadata.put(JsonPresentationFields.ECOMP_GENERATED_NAMING.getPresentation(), service.isEcompGeneratedNaming().toString());
- toscaMetadata.put(JsonPresentationFields.ECOMP_GENERATED_NAMING.getPresentation(), service.isEcompGeneratedNaming().toString());
+ toscaMetadata.put(JsonPresentationFields.ECOMP_GENERATED_NAMING.getPresentation(), service.isEcompGeneratedNaming());
toscaMetadata.put(JsonPresentationFields.NAMING_POLICY.getPresentation(), service.getNamingPolicy());
}
break;
try {
final List<Map<String, ToscaTemplateRequirement>> toscaRequirements = buildRequirements(component, componentInstance,
requirementDefinitionList, originComponent, componentCache);
- if (!toscaRequirements.isEmpty()) {
+ if (CollectionUtils.isNotEmpty(toscaRequirements)) {
nodeTypeTemplate.setRequirements(toscaRequirements);
}
} catch (final Exception e) {
for (RequirementCapabilityRelDef relationshipDefinition : filteredRelations) {
final Map<String, ToscaTemplateRequirement> toscaTemplateRequirementMap =
buildRequirement(componentInstance, originComponent, component.getComponentInstances(), relationshipDefinition, componentCache);
- toscaRequirements.add(toscaTemplateRequirementMap);
+ if (MapUtils.isNotEmpty(toscaTemplateRequirementMap)) {
+ toscaRequirements.add(toscaTemplateRequirementMap);
+ }
}
return toscaRequirements;
throws ToscaExportException {
final Map<String, List<RequirementDefinition>> reqMap = fromOriginComponent.getRequirements();
- final CapabilityRequirementRelationship capabilityRequirementRelationship = relationshipDefinition
- .getRelationships().get(0);
+ if (MapUtils.isEmpty(reqMap)) {
+ return new HashMap<>();
+ }
+ final CapabilityRequirementRelationship capabilityRequirementRelationship = relationshipDefinition.getRelationships().get(0);
final RelationshipInfo relationshipInfo = capabilityRequirementRelationship.getRelation();
- final ComponentInstance toInstance = instancesList.stream()
- .filter(i -> relationshipDefinition.getToNode().equals(i.getUniqueId()))
+ final ComponentInstance toInstance = instancesList.stream().filter(i -> relationshipDefinition.getToNode().equals(i.getUniqueId()))
.findFirst().orElse(null);
if (toInstance == null) {
final String errorMsg = String
log.debug(errorMsg);
throw new ToscaExportException(errorMsg);
}
- final Optional<RequirementDefinition> reqOpt =
- findRequirement(fromOriginComponent, reqMap, relationshipInfo, fromInstance.getUniqueId());
+ final Optional<RequirementDefinition> reqOpt = findRequirement(fromOriginComponent, reqMap, relationshipInfo, fromInstance.getUniqueId());
if (reqOpt.isEmpty()) {
- final String errorMsg = String
- .format("Failed to find a requirement with uniqueId %s on a component with uniqueId %s",
- relationshipInfo.getRequirementUid(), fromOriginComponent.getUniqueId());
+ final String errorMsg = String.format("Failed to find a requirement with uniqueId %s on a component with uniqueId %s",
+ relationshipInfo.getRequirementUid(), fromOriginComponent.getUniqueId());
log.debug(errorMsg);
throw new ToscaExportException(errorMsg);
}
toscaOperationFacade.getToscaElement(toInstance.getActualComponentUid(), filter);
if (getOriginRes.isRight()) {
final String errorMsg = String.format(
- "Failed to build substituted name for the requirement %s. "
- + "Failed to get an origin component with uniqueId %s",
+ "Failed to build substituted name for the requirement %s. Failed to get an origin component with uniqueId %s",
reqOpt.get().getName(), toInstance.getActualComponentUid());
log.debug(errorMsg);
throw new ToscaExportException(errorMsg);
if (capOpt.isEmpty()) {
capOpt = findCapability(relationshipInfo, toOriginComponent, fromOriginComponent, reqOpt.get());
if (capOpt.isEmpty()) {
- final String errorMsg = String
- .format("Failed to find a capability with name %s on a component with uniqueId %s",
- relationshipInfo.getCapability(), fromOriginComponent.getUniqueId());
+ final String errorMsg = String.format("Failed to find a capability with name %s on a component with uniqueId %s",
+ relationshipInfo.getCapability(), fromOriginComponent.getUniqueId());
log.debug(errorMsg);
throw new ToscaExportException(errorMsg);
}
RequirementDefinition requirement) {
Optional<CapabilityDefinition> cap = toOriginComponent.getCapabilities().get(requirement.getCapability())
.stream().filter(c -> c.getType().equals(requirement.getCapability())).findFirst();
- if (!cap.isPresent()) {
+ if (cap.isEmpty()) {
log.debug("Failed to find a capability with name {} on a component with uniqueId {}",
reqAndRelationshipPair.getCapability(), fromOriginComponent.getUniqueId());
}
Map<String, List<RequirementDefinition>> reqMap,
RelationshipInfo reqAndRelationshipPair,
String fromInstanceId) {
- for (List<RequirementDefinition> reqList : reqMap.values()) {
- Optional<RequirementDefinition> reqOpt = reqList.stream().filter(
- r -> isRequirementBelongToRelation(fromOriginComponent, reqAndRelationshipPair, r, fromInstanceId))
- .findFirst();
+ for (final List<RequirementDefinition> reqList : reqMap.values()) {
+ final Optional<RequirementDefinition> reqOpt = reqList.stream()
+ .filter(r -> isRequirementBelongToRelation(fromOriginComponent, reqAndRelationshipPair, r, fromInstanceId)).findFirst();
if (reqOpt.isPresent()) {
return reqOpt;
}
if (((List<?>) filterConstraint.getValue()).get(0) instanceof ToscaFunction) {
List<Object> toscaFunctionList = new ArrayList<>();
((List<?>) filterConstraint.getValue()).forEach(toscaFunctionValue -> toscaFunctionList.add(
- ((ToscaFunction) toscaFunctionValue).getJsonObjectValue()));
+ ((ToscaFunction) toscaFunctionValue).getJsonObjectValue()));
return Map.of(filterConstraint.getOperator().getType(), toscaFunctionList);
}
}
if (doesTypeNeedConvertingToIntOrFloat(filterConstraint.getOriginalType(), filterConstraint.getValue())) {
ToscaType toscaType = ToscaType.getToscaType(
- filterConstraint.getValue() instanceof List ? ToscaType.LIST.getType() : filterConstraint.getOriginalType());
+ filterConstraint.getValue() instanceof List ? ToscaType.LIST.getType() : filterConstraint.getOriginalType());
filterConstraint.setValue(toscaType.convert(String.valueOf(filterConstraint.getValue())));
+ } else if (ConstraintType.LENGTH.getType().equals(filterConstraint.getOperator().getType()) ||
+ ConstraintType.MIN_LENGTH.getType().equals(filterConstraint.getOperator().getType()) ||
+ ConstraintType.MAX_LENGTH.getType().equals(filterConstraint.getOperator().getType())) {
+ filterConstraint.setValue(Integer.valueOf(String.valueOf(filterConstraint.getValue())));
}
- else if (ConstraintType.LENGTH.getType().equals(filterConstraint.getOperator().getType()) ||
- ConstraintType.MIN_LENGTH.getType().equals(filterConstraint.getOperator().getType()) ||
- ConstraintType.MAX_LENGTH.getType().equals(filterConstraint.getOperator().getType())) {
- filterConstraint.setValue(Integer.valueOf(String.valueOf(filterConstraint.getValue())));
+ if (doesTypeNeedConvertingToBoolean(filterConstraint.getOriginalType())) {
+ filterConstraint.setValue(ToscaType.getToscaType(filterConstraint.getOriginalType()).convert(
+ String.valueOf(filterConstraint.getValue())));
}
return Map.of(filterConstraint.getOperator().getType(), filterConstraint.getValue());
}
private static boolean doesTypeNeedConvertingToIntOrFloat(String propertyType, Object value) {
- if (value instanceof List && ((List<?>) value).get(0) instanceof LinkedHashMap && ((LinkedHashMap) ((List<?>) value).get(0)).get("type") != null ) {
+ if (value instanceof List && ((List<?>) value).get(0) instanceof LinkedHashMap
+ && ((LinkedHashMap) ((List<?>) value).get(0)).get("type") != null) {
return false;
}
return ToscaType.INTEGER.getType().equals(propertyType) || ToscaType.FLOAT.getType().equals(propertyType);
}
+ private static boolean doesTypeNeedConvertingToBoolean(String propertyType) {
+ return ToscaType.BOOLEAN.getType().equals(propertyType);
+ }
+
private Map<String, String[]> buildSubstitutionMappingPropertyMapping(final Component component) {
if (component == null || CollectionUtils.isEmpty(component.getInputs())) {
return Collections.emptyMap();