\r
import com.fasterxml.jackson.databind.JsonNode;\r
import com.google.common.base.Preconditions;\r
+import org.apache.commons.collections.MapUtils;\r
import org.apache.commons.lang3.StringUtils;\r
import org.jetbrains.annotations.NotNull;\r
import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException;\r
import org.onap.ccsdk.apps.controllerblueprints.core.ConfigModelConstant;\r
import org.onap.ccsdk.apps.controllerblueprints.core.data.*;\r
-import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintEnhancerDefaultService;\r
-import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRepoService;\r
+import org.onap.ccsdk.apps.controllerblueprints.resource.dict.service.ResourceDefinitionRepoService;\r
+import org.onap.ccsdk.apps.controllerblueprints.service.enhancer.BluePrintEnhancerDefaultService;\r
import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;\r
import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
+import org.onap.ccsdk.apps.controllerblueprints.service.enhancer.ResourceAssignmentEnhancerService;\r
import org.springframework.stereotype.Service;\r
\r
import java.util.HashMap;\r
@Service\r
public class BluePrintEnhancerService extends BluePrintEnhancerDefaultService {\r
\r
- private static Logger log = LoggerFactory.getLogger(BluePrintEnhancerService.class);\r
+ private static EELFLogger log = EELFManager.getInstance().getLogger(BluePrintEnhancerService.class);\r
\r
- private HashMap<String, DataType> recipeDataTypes = new HashMap<>();\r
+ private ResourceAssignmentEnhancerService resourceAssignmentEnhancerService;\r
\r
- public BluePrintEnhancerService(BluePrintRepoService bluePrintEnhancerRepoDBService) {\r
- super(bluePrintEnhancerRepoDBService);\r
+ private Map<String, DataType> recipeDataTypes = new HashMap<>();\r
+\r
+ public BluePrintEnhancerService(ResourceDefinitionRepoService resourceDefinitionRepoService,\r
+ ResourceAssignmentEnhancerService resourceAssignmentEnhancerService) {\r
+ super(resourceDefinitionRepoService);\r
+ this.resourceAssignmentEnhancerService = resourceAssignmentEnhancerService;\r
}\r
\r
@Override\r
- public void enrichTopologyTemplate(@NotNull ServiceTemplate serviceTemplate) {\r
+ public void enrichTopologyTemplate(@NotNull ServiceTemplate serviceTemplate) throws BluePrintException {\r
super.enrichTopologyTemplate(serviceTemplate);\r
\r
// Update the Recipe Inputs and DataTypes\r
// Modified for ONAP converted Object to JsonNode\r
JsonNode recipeNames = nodeTemplate.getProperties().get(ConfigModelConstant.PROPERTY_RECIPE_NAMES);\r
\r
- log.info("Processing Receipe Names : {} ", recipeNames);\r
+ log.info("Processing Recipe Names : {} ", recipeNames);\r
\r
if (recipeNames != null && recipeNames.isArray() && recipeNames.size() > 0) {\r
\r
if (StringUtils.isNotBlank(recipeName)) {\r
DataType recipeDataType = this.recipeDataTypes.get(recipeName);\r
if (recipeDataType == null) {\r
- log.info("DataType not present for the recipe({})" , recipeName);\r
+ log.info("DataType not present for the recipe({})", recipeName);\r
recipeDataType = new DataType();\r
recipeDataType.setVersion("1.0.0");\r
recipeDataType.setDescription(\r
Map<String, PropertyDefinition> dataTypeProperties = new HashMap<>();\r
recipeDataType.setProperties(dataTypeProperties);\r
} else {\r
- log.info("DataType Already present for the recipe({})" , recipeName);\r
+ log.info("DataType Already present for the recipe({})", recipeName);\r
}\r
\r
// Merge all the Recipe Properties\r
}\r
\r
private Map<String, PropertyDefinition> getCapabilityMappingProperties(String nodeTemplateName,\r
- NodeTemplate nodeTemplate) {\r
+ NodeTemplate nodeTemplate) throws BluePrintException {\r
\r
Map<String, PropertyDefinition> dataTypeProperties = null;\r
- if (nodeTemplate != null) {\r
+ if (nodeTemplate != null && MapUtils.isNotEmpty(nodeTemplate.getCapabilities())) {\r
CapabilityAssignment capability =\r
nodeTemplate.getCapabilities().get(ConfigModelConstant.CAPABILITY_PROPERTY_MAPPING);\r
\r
JacksonUtils.getListFromJson(resourceAssignmentContent, ResourceAssignment.class);\r
\r
Preconditions.checkNotNull(resourceAssignments, "Failed to Processing Resource Mapping " + resourceAssignmentContent);\r
+ // Enhance Resource Assignment\r
+ resourceAssignmentEnhancerService.enhanceBluePrint(this, resourceAssignments);\r
+\r
dataTypeProperties = new HashMap<>();\r
\r
for (ResourceAssignment resourceAssignment : resourceAssignments) {\r
&& resourceAssignment.getProperty() != null\r
&& StringUtils.isNotBlank(resourceAssignment.getName())) {\r
\r
- // Enrich the Property Definition\r
- super.enrichPropertyDefinition(resourceAssignment.getName(), resourceAssignment.getProperty());\r
-\r
dataTypeProperties.put(resourceAssignment.getName(), resourceAssignment.getProperty());\r
\r
}\r
private void mergeDataTypeProperties(DataType dataType, Map<String, PropertyDefinition> mergeProperties) {\r
if (dataType != null && dataType.getProperties() != null && mergeProperties != null) {\r
// Add the Other Template Properties\r
- mergeProperties.forEach((mappingKey, propertyDefinition) -> {\r
- dataType.getProperties().put(mappingKey, propertyDefinition);\r
- });\r
+ mergeProperties.forEach((mappingKey, propertyDefinition) -> dataType.getProperties().put(mappingKey, propertyDefinition));\r
}\r
}\r
\r
private void populateRecipeInputs(ServiceTemplate serviceTemplate) {\r
- if (this.recipeDataTypes != null && !this.recipeDataTypes.isEmpty()) {\r
+ if (serviceTemplate.getTopologyTemplate() != null\r
+ && MapUtils.isNotEmpty(serviceTemplate.getTopologyTemplate().getInputs())\r
+ && MapUtils.isNotEmpty(this.recipeDataTypes)\r
+ && MapUtils.isNotEmpty(serviceTemplate.getDataTypes())) {\r
this.recipeDataTypes.forEach((recipeName, recipeDataType) -> {\r
- String dataTypePrifix = recipeName.replace("-action", "") + "-request";\r
- String dataTypeName = "dt-" + dataTypePrifix;\r
+ String dataTypePrefix = recipeName.replace("-action", "") + "-request";\r
+ String dataTypeName = "dt-" + dataTypePrefix;\r
\r
serviceTemplate.getDataTypes().put(dataTypeName, recipeDataType);\r
\r
customInputProperty.setDescription("This is Dynamic Data type for the receipe " + recipeName + ".");\r
customInputProperty.setRequired(Boolean.FALSE);\r
customInputProperty.setType(dataTypeName);\r
- serviceTemplate.getTopologyTemplate().getInputs().put(dataTypePrifix, customInputProperty);\r
+ serviceTemplate.getTopologyTemplate().getInputs().put(dataTypePrefix, customInputProperty);\r
\r
});\r
}\r