summaryrefslogtreecommitdiffstats
path: root/ms/controllerblueprints
diff options
context:
space:
mode:
authorBrinda Santh <brindasanth@in.ibm.com>2019-08-30 00:10:17 -0400
committerBrinda Santh <brindasanth@in.ibm.com>2019-08-30 00:10:17 -0400
commit03f4454b17e13f8b723659583ddb36dbaa4bd1f8 (patch)
treec98879437462c7f99230e47c4c0f412ad080dad6 /ms/controllerblueprints
parentb8539cca6f2bc572801640b3fcefe83dcecf5ef5 (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')
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintArtifactDefinitionEnhancerImpl.kt92
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintAttributeDefinitionEnhancerImpl.kt55
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImpl.kt79
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTemplateEnhancerImpl.kt69
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintNodeTypeEnhancerImpl.kt153
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPolicyTypeEnhancerImpl.kt43
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintPropertyDefinitionEnhancerImpl.kt62
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintServiceTemplateEnhancerImpl.kt68
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTopologyTemplateEnhancerImpl.kt61
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintTypeEnhancerServiceImpl.kt65
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintWorkflowEnhancerImpl.kt231
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceAssignmentEnhancerService.kt110
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/ResourceDefinitionEnhancerService.kt144
-rw-r--r--ms/controllerblueprints/modules/service/src/test/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/enhancer/BluePrintEnhancerServiceImplTest.kt122
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