diff options
author | Brinda Santh <brindasanth@in.ibm.com> | 2019-08-30 00:10:17 -0400 |
---|---|---|
committer | Brinda Santh <brindasanth@in.ibm.com> | 2019-08-30 00:10:17 -0400 |
commit | 03f4454b17e13f8b723659583ddb36dbaa4bd1f8 (patch) | |
tree | c98879437462c7f99230e47c4c0f412ad080dad6 /ms/controllerblueprints | |
parent | b8539cca6f2bc572801640b3fcefe83dcecf5ef5 (diff) |
Refactor enhancer service to designer api.
Change-Id: I63aa56c61f9b97826c2171479dd4d6f238c9d8da
Issue-ID: CCSDK-1663
Signed-off-by: Brinda Santh <brindasanth@in.ibm.com>
Diffstat (limited to 'ms/controllerblueprints')
14 files changed, 0 insertions, 1354 deletions
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintArtifactDefinitionEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintArtifactDefinitionEnhancerImpl.kt deleted file mode 100644 index c6f821f99..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintArtifactDefinitionEnhancerImpl.kt +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException -import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive -import org.onap.ccsdk.cds.controllerblueprints.core.data.ArtifactDefinition -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintArtifactDefinitionEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment -import org.onap.ccsdk.cds.controllerblueprints.service.utils.BluePrintEnhancerUtils -import org.springframework.stereotype.Service - -@Service -open class BluePrintArtifactDefinitionEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, - private val resourceAssignmentEnhancerService: ResourceAssignmentEnhancerService) - : BluePrintArtifactDefinitionEnhancer { - - companion object { - const val ARTIFACT_TYPE_MAPPING_SOURCE: String = "artifact-mapping-resource" - } - - - private val log= LoggerFactory.getLogger(BluePrintArtifactDefinitionEnhancerImpl::class.toString()) - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - lateinit var bluePrintContext: BluePrintContext - - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, artifactDefinition: ArtifactDefinition) { - log.info("enhancing ArtifactDefinition($name)") - - this.bluePrintRuntimeService = bluePrintRuntimeService - this.bluePrintContext = bluePrintRuntimeService.bluePrintContext() - - val artifactTypeName = artifactDefinition.type - ?: throw BluePrintException("artifact type is missing for ArtifactDefinition($name)") - - // Populate Artifact Type - BluePrintEnhancerUtils.populateArtifactType(bluePrintContext, bluePrintRepoService, artifactTypeName) - - when (artifactTypeName) { - ARTIFACT_TYPE_MAPPING_SOURCE -> { - enhanceMappingType(name, artifactDefinition) - } - } - } - - // Enhance Resource Mapping - open fun enhanceMappingType(name: String, artifactDefinition: ArtifactDefinition) { - - val artifactFilePath = "${bluePrintContext.rootPath}/${artifactDefinition.file}" - - val alreadyEnhancedKey = "enhanced-${artifactDefinition.file}" - val alreadyEnhanced = bluePrintRuntimeService.check(alreadyEnhancedKey) - - log.info("enhancing resource mapping file(${artifactDefinition.file}) already enhanced($alreadyEnhanced)") - - if (!alreadyEnhanced) { - val resourceAssignments: MutableList<ResourceAssignment> = JacksonUtils.getListFromFile(artifactFilePath, ResourceAssignment::class.java) - as? MutableList<ResourceAssignment> - ?: throw BluePrintProcessorException("couldn't get ResourceAssignment definitions for the file($artifactFilePath)") - - // Call Resource Assignment Enhancer - resourceAssignmentEnhancerService.enhanceBluePrint(bluePrintTypeEnhancerService, bluePrintRuntimeService, resourceAssignments) - - bluePrintRuntimeService.put(alreadyEnhancedKey, true.asJsonPrimitive()) - } - } - -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintAttributeDefinitionEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintAttributeDefinitionEnhancerImpl.kt deleted file mode 100644 index 8713b4c6c..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintAttributeDefinitionEnhancerImpl.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes -import org.onap.ccsdk.cds.controllerblueprints.core.data.AttributeDefinition -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintAttributeDefinitionEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.service.utils.BluePrintEnhancerUtils - -class BluePrintAttributeDefinitionEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) - : BluePrintAttributeDefinitionEnhancer { - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - lateinit var bluePrintContext: BluePrintContext - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, attributeDefinition: AttributeDefinition) { - this.bluePrintRuntimeService = bluePrintRuntimeService - this.bluePrintContext = bluePrintRuntimeService.bluePrintContext() - - val propertyType = attributeDefinition.type - if (BluePrintTypes.validPrimitiveTypes().contains(propertyType)) { - - } else if (BluePrintTypes.validCollectionTypes().contains(propertyType)) { - val entrySchema = attributeDefinition.entrySchema - ?: throw BluePrintException("Entry Schema is missing for collection property($name)") - - if (!BluePrintTypes.validPrimitiveTypes().contains(entrySchema.type)) { - BluePrintEnhancerUtils.populateDataTypes(bluePrintContext, bluePrintRepoService, entrySchema.type) - } - } else { - BluePrintEnhancerUtils.populateDataTypes(bluePrintContext, bluePrintRepoService, propertyType) - } - } - -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImpl.kt deleted file mode 100644 index cad523e25..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImpl.kt +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * Modifications Copyright © 2018 IBM. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintFileUtils -import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.utils.ResourceDictionaryUtils -import org.springframework.stereotype.Service -import java.util.* - -@Service -open class BluePrintEnhancerServiceImpl(private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, - private val resourceDefinitionEnhancerService: ResourceDefinitionEnhancerService) : BluePrintEnhancerService { - - private val log= LoggerFactory.getLogger(BluePrintEnhancerServiceImpl::class.toString()) - - override suspend fun enhance(basePath: String, enrichedBasePath: String): BluePrintContext { - - // Copy the Blueprint Content to Target Location - BluePrintFileUtils.copyBluePrint(basePath, enrichedBasePath) - - // Enhance the Blueprint - return enhance(enrichedBasePath) - } - - @Throws(BluePrintException::class) - override suspend fun enhance(basePath: String): BluePrintContext { - - log.info("Enhancing blueprint($basePath)") - val blueprintRuntimeService = BluePrintMetadataUtils - .getBaseEnhancementBluePrintRuntime(UUID.randomUUID().toString(), basePath) - - try { - - bluePrintTypeEnhancerService.enhanceServiceTemplate(blueprintRuntimeService, "service_template", - blueprintRuntimeService.bluePrintContext().serviceTemplate) - - log.info("##### Enhancing blueprint Resource Definitions") - val resourceDefinitions = resourceDefinitionEnhancerService.enhance(bluePrintTypeEnhancerService, - blueprintRuntimeService) - - // Write the Enhanced Blueprint Definitions - BluePrintFileUtils.writeEnhancedBluePrint(blueprintRuntimeService.bluePrintContext()) - - // Write the Enhanced Blueprint Resource Definitions - ResourceDictionaryUtils.writeResourceDefinitionTypes(basePath, resourceDefinitions) - - if (blueprintRuntimeService.getBluePrintError().errors.isNotEmpty()) { - throw BluePrintException(blueprintRuntimeService.getBluePrintError().errors.toString()) - } - - } catch (e: Exception) { - throw e - } - return blueprintRuntimeService.bluePrintContext() - } - -} - diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTemplateEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTemplateEnhancerImpl.kt deleted file mode 100644 index 0e53c2130..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTemplateEnhancerImpl.kt +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * Modifications Copyright © 2019 IBM. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintNodeTemplateEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.service.utils.BluePrintEnhancerUtils -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class BluePrintNodeTemplateEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) - : BluePrintNodeTemplateEnhancer { - - private val log= LoggerFactory.getLogger(BluePrintNodeTemplateEnhancerImpl::class.toString()) - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - lateinit var bluePrintContext: BluePrintContext - - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, nodeTemplate: NodeTemplate) { - log.info("***** Enhancing NodeTemplate($name)") - this.bluePrintRuntimeService = bluePrintRuntimeService - this.bluePrintContext = bluePrintRuntimeService.bluePrintContext() - - - val nodeTypeName = nodeTemplate.type - // Get NodeType from Repo and Update Service Template - val nodeType = BluePrintEnhancerUtils.populateNodeType(bluePrintContext, bluePrintRepoService, nodeTypeName) - - // Enrich NodeType - bluePrintTypeEnhancerService.enhanceNodeType(bluePrintRuntimeService, nodeTypeName, nodeType) - - //Enrich Node Template Artifacts - enhanceNodeTemplateArtifactDefinition(name, nodeTemplate) - } - - open fun enhanceNodeTemplateArtifactDefinition(nodeTemplateName: String, nodeTemplate: NodeTemplate) { - - nodeTemplate.artifacts?.forEach { artifactDefinitionName, artifactDefinition -> - // Enhance Artifacct Definitions - bluePrintTypeEnhancerService.enhanceArtifactDefinition(bluePrintRuntimeService, artifactDefinitionName, artifactDefinition) - } - } - -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTypeEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTypeEnhancerImpl.kt deleted file mode 100644 index 2b5d007ed..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTypeEnhancerImpl.kt +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes -import org.onap.ccsdk.cds.controllerblueprints.core.data.InterfaceDefinition -import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType -import org.onap.ccsdk.cds.controllerblueprints.core.data.OperationDefinition -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintNodeTypeEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.service.utils.BluePrintEnhancerUtils -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class BluePrintNodeTypeEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) : BluePrintNodeTypeEnhancer { - - private val log= LoggerFactory.getLogger(BluePrintNodeTypeEnhancerImpl::class.toString()) - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - lateinit var bluePrintContext: BluePrintContext - - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, nodeType: NodeType) { - this.bluePrintRuntimeService = bluePrintRuntimeService - this.bluePrintContext = bluePrintRuntimeService.bluePrintContext() - - - val derivedFrom = nodeType.derivedFrom - - if (!BluePrintTypes.rootNodeTypes().contains(derivedFrom)) { - val derivedFromNodeType = BluePrintEnhancerUtils.populateNodeType(bluePrintContext, bluePrintRepoService, name) - // Enrich NodeType - enhance(bluePrintRuntimeService, derivedFrom, derivedFromNodeType) - } - - // NodeType Attribute Definitions - enrichNodeTypeAttributes(name, nodeType) - - // NodeType Property Definitions - enrichNodeTypeProperties(name, nodeType) - - //NodeType Requirement - enrichNodeTypeRequirements(name, nodeType) - - //NodeType Capability - enrichNodeTypeCapabilityProperties(name, nodeType) - - //NodeType Interface - enrichNodeTypeInterfaces(name, nodeType) - - } - - open fun enrichNodeTypeAttributes(nodeTypeName: String, nodeType: NodeType) { - nodeType.attributes?.let { - bluePrintTypeEnhancerService.enhanceAttributeDefinitions(bluePrintRuntimeService, nodeType.attributes!!) - } - } - - open fun enrichNodeTypeProperties(nodeTypeName: String, nodeType: NodeType) { - nodeType.properties?.let { - bluePrintTypeEnhancerService.enhancePropertyDefinitions(bluePrintRuntimeService, nodeType.properties!!) - } - } - - open fun enrichNodeTypeRequirements(nodeTypeName: String, nodeType: NodeType) { - - nodeType.requirements?.forEach { requirementName, requirementDefinition -> - // Populate Requirement Node - requirementDefinition.node?.let { requirementNodeTypeName -> - // Get Requirement NodeType from Repo and Update Service Template - val requirementNodeType = BluePrintEnhancerUtils.populateNodeType(bluePrintContext, - bluePrintRepoService, requirementNodeTypeName) - // Enhance Node Type - enhance(bluePrintRuntimeService, requirementNodeTypeName, requirementNodeType) - - // Enhance Relationship Type - val relationShipTypeName = requirementDefinition.relationship - ?: throw BluePrintException("couldn't get relationship name for the NodeType($nodeTypeName) " + - "Requirement($requirementName)") - enrichRelationShipType(relationShipTypeName) - } - } - } - - open fun enrichNodeTypeCapabilityProperties(nodeTypeName: String, nodeType: NodeType) { - nodeType.capabilities?.forEach { _, capabilityDefinition -> - capabilityDefinition.properties?.let { properties -> - bluePrintTypeEnhancerService.enhancePropertyDefinitions(bluePrintRuntimeService, properties) - } - } - } - - open fun enrichNodeTypeInterfaces(nodeTypeName: String, nodeType: NodeType) { - nodeType.interfaces?.forEach { interfaceName, interfaceObj -> - // Populate Node type Interface Operation - log.debug("Enriching NodeType({}) Interface({})", nodeTypeName, interfaceName) - populateNodeTypeInterfaceOperation(nodeTypeName, interfaceName, interfaceObj) - - } - } - - open fun populateNodeTypeInterfaceOperation(nodeTypeName: String, interfaceName: String, interfaceObj: InterfaceDefinition) { - - interfaceObj.operations?.forEach { operationName, operation -> - enrichNodeTypeInterfaceOperationInputs(nodeTypeName, operationName, operation) - enrichNodeTypeInterfaceOperationOutputs(nodeTypeName, operationName, operation) - } - } - - open fun enrichNodeTypeInterfaceOperationInputs(nodeTypeName: String, operationName: String, operation: OperationDefinition) { - operation.inputs?.let { inputs -> - bluePrintTypeEnhancerService.enhancePropertyDefinitions(bluePrintRuntimeService, inputs) - } - } - - open fun enrichNodeTypeInterfaceOperationOutputs(nodeTypeName: String, operationName: String, - operation: OperationDefinition) { - operation.outputs?.let { inputs -> - bluePrintTypeEnhancerService.enhancePropertyDefinitions(bluePrintRuntimeService, inputs) - } - } - - /** - * Get the Relationship Type from database and add to Blueprint Context - */ - open fun enrichRelationShipType(relationshipName: String) { - BluePrintEnhancerUtils.populateRelationshipType(bluePrintContext, bluePrintRepoService, relationshipName) - } - -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPolicyTypeEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPolicyTypeEnhancerImpl.kt deleted file mode 100644 index b0adc398f..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPolicyTypeEnhancerImpl.kt +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.onap.ccsdk.cds.controllerblueprints.core.data.PolicyType -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintPolicyTypeEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -class BluePrintPolicyTypeEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) - : BluePrintPolicyTypeEnhancer { - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, type: PolicyType) { - - this.bluePrintRuntimeService = bluePrintRuntimeService - - // TODO("not implemented") //To change body of created functions use File | Settings | File Templates. - } -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPropertyDefinitionEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPropertyDefinitionEnhancerImpl.kt deleted file mode 100644 index 85de039de..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPropertyDefinitionEnhancerImpl.kt +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * Modifications Copyright © 2019 IBM. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes -import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintPropertyDefinitionEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.service.utils.BluePrintEnhancerUtils -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class BluePrintPropertyDefinitionEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) - : BluePrintPropertyDefinitionEnhancer { - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - lateinit var bluePrintContext: BluePrintContext - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, propertyDefinition: PropertyDefinition) { - this.bluePrintRuntimeService = bluePrintRuntimeService - this.bluePrintContext = bluePrintRuntimeService.bluePrintContext() - - val propertyType = propertyDefinition.type - if (BluePrintTypes.validPrimitiveTypes().contains(propertyType) - || BluePrintTypes.validComplexTypes().contains(propertyType)) { - // Do Nothing, - } else if (BluePrintTypes.validCollectionTypes().contains(propertyType)) { - val entrySchema = propertyDefinition.entrySchema - ?: throw BluePrintException("Entry Schema is missing for collection property($name)") - - if (!BluePrintTypes.validPrimitiveTypes().contains(entrySchema.type)) { - BluePrintEnhancerUtils.populateDataTypes(bluePrintContext, bluePrintRepoService, entrySchema.type) - } - } else { - BluePrintEnhancerUtils.populateDataTypes(bluePrintContext, bluePrintRepoService, propertyType) - } - } - -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintServiceTemplateEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintServiceTemplateEnhancerImpl.kt deleted file mode 100644 index a6acf0be0..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintServiceTemplateEnhancerImpl.kt +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import org.onap.ccsdk.cds.controllerblueprints.core.data.ServiceTemplate -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintServiceTemplateEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class BluePrintServiceTemplateEnhancerImpl(private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) - : BluePrintServiceTemplateEnhancer { - private val log= LoggerFactory.getLogger(BluePrintServiceTemplateEnhancerImpl::class.toString()) - - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - lateinit var bluePrintContext: BluePrintContext - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, type: ServiceTemplate) { - this.bluePrintRuntimeService = bluePrintRuntimeService - this.bluePrintContext = bluePrintRuntimeService.bluePrintContext() - - initialCleanUp() - enhanceTopologyTemplate() - } - - open fun initialCleanUp() { - bluePrintContext.serviceTemplate.artifactTypes?.clear() - bluePrintContext.serviceTemplate.nodeTypes?.clear() - bluePrintContext.serviceTemplate.dataTypes?.clear() - bluePrintContext.serviceTemplate.policyTypes?.clear() - bluePrintContext.serviceTemplate.relationshipTypes?.clear() - - bluePrintContext.serviceTemplate.artifactTypes = mutableMapOf() - bluePrintContext.serviceTemplate.nodeTypes = mutableMapOf() - bluePrintContext.serviceTemplate.dataTypes = mutableMapOf() - bluePrintContext.serviceTemplate.policyTypes = mutableMapOf() - bluePrintContext.serviceTemplate.relationshipTypes = mutableMapOf() - log.info("reinitialized all type definitions") - - } - - open fun enhanceTopologyTemplate() { - bluePrintContext.serviceTemplate.topologyTemplate?.let { topologyTemplate -> - bluePrintTypeEnhancerService.enhanceTopologyTemplate(bluePrintRuntimeService, "topology_template", topologyTemplate) - } - } -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTopologyTemplateEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTopologyTemplateEnhancerImpl.kt deleted file mode 100644 index e611a2224..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTopologyTemplateEnhancerImpl.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.onap.ccsdk.cds.controllerblueprints.core.data.TopologyTemplate -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTopologyTemplateEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class BluePrintTopologyTemplateEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) : BluePrintTopologyTemplateEnhancer { - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, type: TopologyTemplate) { - this.bluePrintRuntimeService = bluePrintRuntimeService - - enhanceTopologyTemplateInputs(type) - enhanceTopologyTemplateNodeTemplates(type) - enhanceTopologyTemplateWorkflows(type) - } - - open fun enhanceTopologyTemplateInputs(topologyTemplate: TopologyTemplate) { - topologyTemplate.inputs?.let { inputs -> - bluePrintTypeEnhancerService.enhancePropertyDefinitions(bluePrintRuntimeService, inputs) - } - } - - open fun enhanceTopologyTemplateNodeTemplates(topologyTemplate: TopologyTemplate) { - topologyTemplate.nodeTemplates?.forEach { nodeTemplateName, nodeTemplate -> - bluePrintTypeEnhancerService.enhanceNodeTemplate(bluePrintRuntimeService, nodeTemplateName, nodeTemplate) - } - } - - open fun enhanceTopologyTemplateWorkflows(topologyTemplate: TopologyTemplate) { - topologyTemplate.workflows?.forEach { workflowName, workflow -> - bluePrintTypeEnhancerService.enhanceWorkflow(bluePrintRuntimeService, workflowName, workflow) - } - } - -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTypeEnhancerServiceImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTypeEnhancerServiceImpl.kt deleted file mode 100644 index 4f7656c8c..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTypeEnhancerServiceImpl.kt +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.* -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.context.ApplicationContext -import org.springframework.stereotype.Service - -@Service -open class BluePrintTypeEnhancerServiceImpl : BluePrintTypeEnhancerService { - - @Autowired - private lateinit var context: ApplicationContext - - override fun getServiceTemplateEnhancers(): List<BluePrintServiceTemplateEnhancer> { - return context.getBeansOfType(BluePrintServiceTemplateEnhancer::class.java).map { it.value } - } - - override fun getTopologyTemplateEnhancers(): List<BluePrintTopologyTemplateEnhancer> { - return context.getBeansOfType(BluePrintTopologyTemplateEnhancer::class.java).map { it.value } - } - - override fun getWorkflowEnhancers(): List<BluePrintWorkflowEnhancer> { - return context.getBeansOfType(BluePrintWorkflowEnhancer::class.java).map { it.value } - } - - override fun getNodeTemplateEnhancers(): List<BluePrintNodeTemplateEnhancer> { - return context.getBeansOfType(BluePrintNodeTemplateEnhancer::class.java).map { it.value } - } - - override fun getNodeTypeEnhancers(): List<BluePrintNodeTypeEnhancer> { - return context.getBeansOfType(BluePrintNodeTypeEnhancer::class.java).map { it.value } - } - - override fun getArtifactDefinitionEnhancers(): List<BluePrintArtifactDefinitionEnhancer> { - return context.getBeansOfType(BluePrintArtifactDefinitionEnhancer::class.java).map { it.value } - } - - override fun getPolicyTypeEnhancers(): List<BluePrintPolicyTypeEnhancer> { - return context.getBeansOfType(BluePrintPolicyTypeEnhancer::class.java).map { it.value } - } - - override fun getPropertyDefinitionEnhancers(): List<BluePrintPropertyDefinitionEnhancer> { - return context.getBeansOfType(BluePrintPropertyDefinitionEnhancer::class.java).map { it.value } - } - - override fun getAttributeDefinitionEnhancers(): List<BluePrintAttributeDefinitionEnhancer> { - return context.getBeansOfType(BluePrintAttributeDefinitionEnhancer::class.java).map { it.value } - } -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintWorkflowEnhancerImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintWorkflowEnhancerImpl.kt deleted file mode 100644 index a8765eee1..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintWorkflowEnhancerImpl.kt +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * Modifications Copyright © 2019 IBM. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException -import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive -import org.onap.ccsdk.cds.controllerblueprints.core.data.DataType -import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition -import org.onap.ccsdk.cds.controllerblueprints.core.data.Workflow -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintWorkflowEnhancer -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class BluePrintWorkflowEnhancerImpl(private val bluePrintRepoService: BluePrintRepoService, - private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, - private val resourceAssignmentEnhancerService: ResourceAssignmentEnhancerService) - : BluePrintWorkflowEnhancer { - private val log= LoggerFactory.getLogger(BluePrintWorkflowEnhancerImpl::class.toString()) - - companion object { - const val ARTIFACT_TYPE_MAPPING_SOURCE: String = "artifact-mapping-resource" - const val PROPERTY_DEPENDENCY_NODE_TEMPLATES = "dependency-node-templates" - } - - lateinit var bluePrintRuntimeService: BluePrintRuntimeService<*> - lateinit var bluePrintContext: BluePrintContext - - private val workflowDataTypes: MutableMap<String, DataType> = hashMapOf() - - override fun enhance(bluePrintRuntimeService: BluePrintRuntimeService<*>, name: String, workflow: Workflow) { - log.info("##### Enhancing Workflow($name)") - this.bluePrintRuntimeService = bluePrintRuntimeService - this.bluePrintContext = bluePrintRuntimeService.bluePrintContext() - - val dynamicPropertyName = "$name-properties" - if (workflow.inputs == null) { - workflow.inputs = hashMapOf() - } - // Clean Dynamic Property Field, If present - workflow.inputs?.remove(dynamicPropertyName) - - // Enrich Workflow Inputs - enhanceWorkflowInputs(name, workflow) - - // Enrich Workflow Outputs - enhanceWorkflowOutputs(name, workflow) - - // Enrich Only for Resource Assignment and Dynamic Input Properties if any - enhanceStepTargets(name, workflow) - - - } - - open fun enhanceWorkflowInputs(name: String, workflow: Workflow) { - - workflow.inputs?.let { inputs -> - bluePrintTypeEnhancerService.enhancePropertyDefinitions(bluePrintRuntimeService, inputs) - } - } - - open fun enhanceWorkflowOutputs(name: String, workflow: Workflow) { - workflow.outputs?.let { outputs -> - bluePrintTypeEnhancerService.enhancePropertyDefinitions(bluePrintRuntimeService, outputs) - } - } - - private fun enhanceStepTargets(name: String, workflow: Workflow) { - - // Get the first Step Target NodeTemplate name( It may be Component or DG Node Template) - val firstNodeTemplateName = bluePrintContext.workflowFirstStepNodeTemplate(name) - - val derivedFrom = bluePrintContext.nodeTemplateNodeType(firstNodeTemplateName).derivedFrom - - when { - derivedFrom.startsWith(BluePrintConstants.MODEL_TYPE_NODE_COMPONENT, true) -> { - enhanceStepTargets(name, workflow, firstNodeTemplateName, false) - } - derivedFrom.startsWith(BluePrintConstants.MODEL_TYPE_NODE_WORKFLOW, true) -> { - enhanceStepTargets(name, workflow, firstNodeTemplateName, true) - } - else -> { - throw BluePrintProcessorException("couldn't execute workflow($name) step mapped " + - "to node template($firstNodeTemplateName) derived from($derivedFrom)") - } - } - - } - - private fun enhanceStepTargets(name: String, workflow: Workflow, nodeTemplateName: String, isDG: Boolean) { - - val dependencyNodeTemplates: List<String> - if (isDG) { - val dgNodeTemplate = bluePrintContext.nodeTemplateByName(nodeTemplateName) - - // Get the Dependent Component Node Template Names - val dependencyNodeTemplateNodes = dgNodeTemplate.properties?.get(PROPERTY_DEPENDENCY_NODE_TEMPLATES) - ?: throw BluePrintException("couldn't get property($PROPERTY_DEPENDENCY_NODE_TEMPLATES) ") - - dependencyNodeTemplates = - JacksonUtils.getListFromJsonNode(dependencyNodeTemplateNodes, String::class.java) - } else { - dependencyNodeTemplates = listOf(nodeTemplateName) - } - - log.info("workflow($name) dependent component NodeTemplates($dependencyNodeTemplates)") - - // Check and Get Resource Assignment File - val resourceAssignmentArtifacts = dependencyNodeTemplates?.mapNotNull { componentNodeTemplateName -> - log.info("identified workflow($name) targets($componentNodeTemplateName)") - - val resourceAssignmentArtifacts = bluePrintContext.nodeTemplateByName(componentNodeTemplateName) - .artifacts?.filter { - it.value.type == ARTIFACT_TYPE_MAPPING_SOURCE - }?.map { - log.info("resource assignment artifacts(${it.key}) for NodeType(${componentNodeTemplateName})") - it.value.file - } - resourceAssignmentArtifacts - }?.flatten() - - log.info("workflow($name) resource assignment files($resourceAssignmentArtifacts") - - if (resourceAssignmentArtifacts != null && resourceAssignmentArtifacts.isNotEmpty()) { - - // Add Workflow Dynamic Property - addWorkFlowDynamicPropertyDefinitions(name, workflow) - - resourceAssignmentArtifacts.forEach { fileName -> - // Enhance Resource Assignment File - val resourceAssignmentProperties = enhanceResourceAssignmentFile(fileName!!) - // Add Workflow Dynamic DataType - addWorkFlowDynamicDataType(name, resourceAssignmentProperties) - } - } - } - - // Enhancement for Dynamic Properties, Resource Assignment Properties, Resource Sources - private fun enhanceResourceAssignmentFile(fileName: String): MutableMap<String, PropertyDefinition> { - - val filePath = "${bluePrintContext.rootPath}/$fileName" - - log.info("enriching artifacts file(${filePath}") - - val resourceAssignmentProperties: MutableMap<String, PropertyDefinition> = hashMapOf() - - val resourceAssignments: MutableList<ResourceAssignment> = JacksonUtils.getListFromFile(filePath, ResourceAssignment::class.java) - as? MutableList<ResourceAssignment> - ?: throw BluePrintProcessorException("couldn't get ResourceAssignment definitions for the file($filePath)") - - val alreadyEnhancedKey = "enhanced-$fileName" - val alreadyEnhanced = bluePrintRuntimeService.check(alreadyEnhancedKey) - - log.info("enhancing workflow resource mapping file($fileName) already enhanced($alreadyEnhanced)") - - if (!alreadyEnhanced) { - // Call Resource Assignment Enhancer - resourceAssignmentEnhancerService.enhanceBluePrint(bluePrintTypeEnhancerService, bluePrintRuntimeService, resourceAssignments) - bluePrintRuntimeService.put(alreadyEnhancedKey, true.asJsonPrimitive()) - } - - resourceAssignments.forEach { resourceAssignment -> - resourceAssignmentProperties[resourceAssignment.name] = resourceAssignment.property!! - } - return resourceAssignmentProperties - } - - private fun addWorkFlowDynamicPropertyDefinitions(name: String, workflow: Workflow) { - val dynamicPropertyName = "$name-properties" - val propertyDefinition = PropertyDefinition() - propertyDefinition.description = "Dynamic PropertyDefinition for workflow($name)." - propertyDefinition.type = "dt-$dynamicPropertyName" - propertyDefinition.required = true - // Add to Workflow Inputs - workflow.inputs?.put(dynamicPropertyName, propertyDefinition) - } - - private fun addWorkFlowDynamicDataType(workflowName: String, mappingProperties: MutableMap<String, PropertyDefinition>) { - - val dataTypeName = "dt-$workflowName-properties" - - var dynamicDataType: DataType? = bluePrintContext.serviceTemplate.dataTypes?.get(dataTypeName) - - if (dynamicDataType == null) { - log.info("dataType not present for the recipe({})", dataTypeName) - dynamicDataType = DataType() - dynamicDataType.version = "1.0.0" - dynamicDataType.description = "Dynamic DataType definition for workflow($workflowName)." - dynamicDataType.derivedFrom = BluePrintConstants.MODEL_TYPE_DATA_TYPE_DYNAMIC - - val dataTypeProperties: MutableMap<String, PropertyDefinition> = hashMapOf() - dynamicDataType.properties = dataTypeProperties - - // Overwrite WorkFlow DataType - bluePrintContext.serviceTemplate.dataTypes?.put(dataTypeName, dynamicDataType) - - } else { - log.info("dynamic dataType($dataTypeName) already present for workflow($workflowName).") - } - // Merge all the Recipe Properties - mappingProperties.forEach { propertyName, propertyDefinition -> - dynamicDataType.properties?.put(propertyName, propertyDefinition) - } - } -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceAssignmentEnhancerService.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceAssignmentEnhancerService.kt deleted file mode 100644 index b51d88085..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceAssignmentEnhancerService.kt +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDictionaryConstants -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.factory.ResourceSourceMappingFactory -import org.onap.ccsdk.cds.controllerblueprints.service.ResourceDefinitionRepoService -import org.springframework.beans.factory.config.ConfigurableBeanFactory -import org.springframework.context.annotation.Scope -import org.springframework.stereotype.Service - -/** - * ResourceAssignmentEnhancerService. - * - * @author Brinda Santh - */ -interface ResourceAssignmentEnhancerService { - - @Throws(BluePrintException::class) - fun enhanceBluePrint(bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, - bluePrintRuntimeService: BluePrintRuntimeService<*>, - resourceAssignments: List<ResourceAssignment>) -} - -/** - * ResourceAssignmentEnhancerDefaultService. - * - * @author Brinda Santh - */ -@Service -@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) -open class ResourceAssignmentEnhancerServiceImpl(private val resourceDefinitionRepoService: ResourceDefinitionRepoService) - : ResourceAssignmentEnhancerService { - private val log= LoggerFactory.getLogger(ResourceAssignmentEnhancerServiceImpl::class.java) - - /** - * Get the defined source instance from the ResourceAssignment, - * then get the NodeType of the Sources assigned - */ - override fun enhanceBluePrint(bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, - bluePrintRuntimeService: BluePrintRuntimeService<*>, - resourceAssignments: List<ResourceAssignment>) { - - val uniqueSourceNodeTypeNames = hashSetOf<String>() - - // Iterate the Resource Assignment and - resourceAssignments.map { resourceAssignment -> - val dictionaryName = resourceAssignment.dictionaryName!! - val dictionarySource = resourceAssignment.dictionarySource!! - log.debug("Enriching assignment name(${resourceAssignment.name}), dictionary name($dictionaryName), source($dictionarySource)") - val sourceNodeTypeName = ResourceSourceMappingFactory.getRegisterSourceMapping(dictionarySource) - - // Add Unique Node Types - uniqueSourceNodeTypeNames.add(sourceNodeTypeName) - - // TODO("Candidate for Optimisation") - if (checkResourceDefinitionNeeded(resourceAssignment)) { - - bluePrintTypeEnhancerService.enhancePropertyDefinition(bluePrintRuntimeService, resourceAssignment.name, - resourceAssignment.property!!); - - // Get the Resource Definition from Repo - val resourceDefinition: ResourceDefinition = getResourceDefinition(dictionaryName) - - val sourceNodeTemplate = resourceDefinition.sources.get(dictionarySource) - ?: throw BluePrintException("failed to get assigned dictionarySource($dictionarySource) from resourceDefinition($dictionaryName)") - - // Enrich as NodeTemplate - bluePrintTypeEnhancerService.enhanceNodeTemplate(bluePrintRuntimeService, dictionarySource, sourceNodeTemplate) - } - } - // Enrich the ResourceSource NodeTypes - uniqueSourceNodeTypeNames.map { nodeTypeName -> - val nodeType = resourceDefinitionRepoService.getNodeType(nodeTypeName) - bluePrintTypeEnhancerService.enhanceNodeType(bluePrintRuntimeService, nodeTypeName, nodeType) - } - - } - - private fun checkResourceDefinitionNeeded(resourceAssignment: ResourceAssignment): Boolean { - return !((resourceAssignment.dictionarySource.equals(ResourceDictionaryConstants.SOURCE_INPUT) - || resourceAssignment.dictionarySource.equals(ResourceDictionaryConstants.SOURCE_DEFAULT)) - && BluePrintTypes.validPrimitiveOrCollectionPrimitive(resourceAssignment.property!!)) - } - - private fun getResourceDefinition(name: String): ResourceDefinition { - return resourceDefinitionRepoService.getResourceDefinition(name) - } -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceDefinitionEnhancerService.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceDefinitionEnhancerService.kt deleted file mode 100644 index df499b26d..000000000 --- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceDefinitionEnhancerService.kt +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * Modifications Copyright © 2018 IBM. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import org.slf4j.LoggerFactory -import kotlinx.coroutines.Deferred -import kotlinx.coroutines.async -import kotlinx.coroutines.runBlocking -import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext -import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition -import org.onap.ccsdk.cds.controllerblueprints.resource.dict.utils.ResourceDictionaryUtils -import org.onap.ccsdk.cds.controllerblueprints.service.ResourceDefinitionRepoService -import org.onap.ccsdk.cds.controllerblueprints.service.utils.BluePrintEnhancerUtils -import org.springframework.stereotype.Service - -interface ResourceDefinitionEnhancerService { - - @Throws(BluePrintException::class) - fun enhance(bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, - bluePrintRuntimeService: BluePrintRuntimeService<*>): List<ResourceDefinition> -} - -@Service -class ResourceDefinitionEnhancerServiceImpl(private val resourceDefinitionRepoService: ResourceDefinitionRepoService) : - ResourceDefinitionEnhancerService { - - private val log= LoggerFactory.getLogger(ResourceDefinitionEnhancerService::class.toString()) - - companion object { - const val ARTIFACT_TYPE_MAPPING_SOURCE: String = "artifact-mapping-resource" - } - - // Enhance the Resource Definition - // 1. Get the Resource Mapping files from all NodeTemplates. - // 2. Get all the Unique Resource assignments from all mapping files - // 3. Collect the Resource Definition for Resource Assignment names from database. - // 4. Create the Resource Definition under blueprint base path. - override fun enhance(bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, - bluePrintRuntimeService: BluePrintRuntimeService<*>): List<ResourceDefinition> { - - var resourceDefinitions: List<ResourceDefinition> = mutableListOf() - - val blueprintContext = bluePrintRuntimeService.bluePrintContext() - - val mappingFiles = getAllResourceMappingFiles(blueprintContext) - log.info("resources assignment files ($mappingFiles)") - if (mappingFiles != null) { - resourceDefinitions = getResourceDefinition(blueprintContext, mappingFiles) - // Enriching Resource Definition Sources - enrichResourceDefinitionSources(bluePrintRuntimeService.bluePrintContext(), resourceDefinitions) - } - return resourceDefinitions - } - - // Get all the Mapping files from all node templates. - private fun getAllResourceMappingFiles(blueprintContext: BluePrintContext): List<String>? { - - return blueprintContext.nodeTemplates()?.mapNotNull { nodeTemplateMap -> - - // Return only Mapping Artifact File Names - nodeTemplateMap.value.artifacts?.filter { artifactDefinitionMap -> - artifactDefinitionMap.value.type == ARTIFACT_TYPE_MAPPING_SOURCE - }?.mapNotNull { artifactDefinitionMap -> - artifactDefinitionMap.value.file - } - - }?.flatten()?.distinct() - } - - // Convert file content to ResourceAssignments asynchronously - private fun getResourceDefinition(blueprintContext: BluePrintContext, files: List<String>) = runBlocking { - val blueprintBasePath = blueprintContext.rootPath - val deferredResourceAssignments = mutableListOf<Deferred<List<ResourceAssignment>>>() - for (file in files) { - log.info("processing file ($file)") - deferredResourceAssignments += async { - ResourceDictionaryUtils.getResourceAssignmentFromFile("$blueprintBasePath/$file") - } - } - - val resourceAssignments = mutableListOf<ResourceAssignment>() - for (deferredResourceAssignment in deferredResourceAssignments) { - resourceAssignments.addAll(deferredResourceAssignment.await()) - } - - val distinctResourceAssignments = resourceAssignments.distinctBy { it.name } - generateResourceDictionary(blueprintBasePath, distinctResourceAssignments) - //log.info("distinct Resource assignment ($distinctResourceAssignments)") - } - - - // Read the Resource Definitions from the Database and write to type file. - private fun generateResourceDictionary(blueprintBasePath: String, resourceAssignments: List<ResourceAssignment>) - : List<ResourceDefinition> { - val resourceKeys = resourceAssignments.mapNotNull { it.dictionaryName }.distinct().sorted() - log.info("distinct resource keys ($resourceKeys)") - - //TODO("Optimise DB single Query to multiple Query") - return resourceKeys.map { resourceKey -> - getResourceDefinition(resourceKey) - } - } - - private fun enrichResourceDefinitionSources(bluePrintContext: BluePrintContext, - resourceDefinitions: List<ResourceDefinition>) { - val sources = resourceDefinitions - .map { it.sources } - .map { - it.values - .map { nodeTemplate -> - nodeTemplate.type - } - } - .flatten().distinct() - log.info("Enriching Resource Definition sources Node Template: $sources") - sources.forEach { - BluePrintEnhancerUtils.populateNodeType(bluePrintContext, resourceDefinitionRepoService, it) - } - } - - // Get the Resource Definition from Database - private fun getResourceDefinition(name: String): ResourceDefinition { - return resourceDefinitionRepoService.getResourceDefinition(name) - } -}
\ No newline at end of file diff --git a/ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt b/ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt deleted file mode 100644 index d09479b6c..000000000 --- a/ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright © 2017-2018 AT&T Intellectual Property. - * Modifications Copyright © 2018 IBM. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onap.ccsdk.cds.controllerblueprints.service.enhancer - -import kotlinx.coroutines.runBlocking -import org.junit.Assert -import org.junit.Test -import org.junit.runner.RunWith -import org.onap.ccsdk.cds.controllerblueprints.TestApplication -import org.onap.ccsdk.cds.controllerblueprints.core.deleteDir -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintEnhancerService -import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintValidatorService -import org.onap.ccsdk.cds.controllerblueprints.core.normalizedPathName -import org.onap.ccsdk.cds.controllerblueprints.service.load.ModelTypeLoadService -import org.onap.ccsdk.cds.controllerblueprints.service.load.ResourceDictionaryLoadService -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.test.context.ContextConfiguration -import org.springframework.test.context.TestPropertySource -import org.springframework.test.context.junit4.SpringRunner - -@RunWith(SpringRunner::class) -@ContextConfiguration(classes = arrayOf(TestApplication::class)) -@TestPropertySource(locations = arrayOf("classpath:application.properties")) -class BluePrintEnhancerServiceImplTest { - - @Autowired - lateinit var modelTypeLoadService: ModelTypeLoadService - - @Autowired - lateinit var resourceDictionaryLoadService: ResourceDictionaryLoadService - - @Autowired - lateinit var bluePrintEnhancerService: BluePrintEnhancerService - - @Autowired - lateinit var bluePrintValidatorService: BluePrintValidatorService - - - @Test - @Throws(Exception::class) - fun testEnhancementAndValidation() { - - runBlocking { - modelTypeLoadService.loadPathModelType("./../../../../components/model-catalog/definition-type/starter-type") - - val dictPaths: MutableList<String> = arrayListOf() - dictPaths.add("./../../../../components/model-catalog/resource-dictionary/starter-dictionary") - dictPaths.add("./../../../../components/model-catalog/resource-dictionary/test-dictionary") - resourceDictionaryLoadService.loadPathsResourceDictionary(dictPaths) - - testBaseConfigEnhancementAndValidation() - testVFWEnhancementAndValidation() - testGoldenEnhancementAndValidation() - testRemoteScriptsEnhancementAndValidation() - testCapabilityCliEnhancementAndValidation() - } - } - - fun testBaseConfigEnhancementAndValidation() { - val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/baseconfiguration" - testComponentInvokeEnhancementAndValidation(basePath, "base-enhance") - } - - fun testVFWEnhancementAndValidation() { - val basePath = "./../../../../components/model-catalog/blueprint-model/service-blueprint/vFW" - testComponentInvokeEnhancementAndValidation(basePath, "vFW-enhance") - } - - fun testGoldenEnhancementAndValidation() { - val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/golden" - testComponentInvokeEnhancementAndValidation(basePath, "golden-enhance") - } - - fun testRemoteScriptsEnhancementAndValidation() { - val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/remote_scripts" - testComponentInvokeEnhancementAndValidation(basePath, "remote_scripts-enhance") - - } - - fun testCapabilityCliEnhancementAndValidation() { - val basePath = "./../../../../components/model-catalog/blueprint-model/test-blueprint/capability_cli" - testComponentInvokeEnhancementAndValidation(basePath, "capability_cli-enhance") - } - - private fun testComponentInvokeEnhancementAndValidation(basePath: String, targetDirName: String) { - runBlocking { - val targetPath = normalizedPathName("target/blueprints/enrichment", targetDirName) - - deleteDir(targetPath) - - val bluePrintContext = bluePrintEnhancerService.enhance(basePath, targetPath) - Assert.assertNotNull("failed to get blueprintContext ", bluePrintContext) - - // Validate the Generated BluePrints - val valid = bluePrintValidatorService.validateBluePrints(targetPath) - Assert.assertTrue("blueprint($basePath) validation failed ", valid) - - // Enable this to get the enhanced zip file -// val compressFile = normalizedFile("target/blueprints/enrichment", "$targetDirName.zip") -// normalizedFile(targetPath).compress(compressFile) - - deleteDir(targetPath) - } - } - - -}
\ No newline at end of file |