aboutsummaryrefslogtreecommitdiffstats
path: root/components/resource-dict/src
diff options
context:
space:
mode:
Diffstat (limited to 'components/resource-dict/src')
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinition.kt100
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDictionaryConstants.kt38
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactory.kt47
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationService.kt163
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationService.kt113
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtils.kt109
-rw-r--r--components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtils.kt94
-rw-r--r--components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinitionTest.java60
-rw-r--r--components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactoryTest.java42
-rw-r--r--components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationServiceTest.kt66
-rw-r--r--components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationServiceTest.java56
-rw-r--r--components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtilsTest.java37
-rw-r--r--components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtilsTest.java99
-rw-r--r--components/resource-dict/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryTestUtils.kt30
-rw-r--r--components/resource-dict/src/test/resources/data/resource-assignment-input.json10
-rw-r--r--components/resource-dict/src/test/resources/validation/cyclic.json111
-rw-r--r--components/resource-dict/src/test/resources/validation/duplicate.json110
-rw-r--r--components/resource-dict/src/test/resources/validation/success.json110
18 files changed, 0 insertions, 1395 deletions
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinition.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinition.kt
deleted file mode 100644
index d141ed0cb..000000000
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinition.kt
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright © 2018 IBM.
- * Modifications 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.apps.controllerblueprints.resource.dict
-
-import com.fasterxml.jackson.annotation.JsonFormat
-import com.fasterxml.jackson.annotation.JsonProperty
-import org.onap.ccsdk.apps.controllerblueprints.core.data.NodeTemplate
-import org.onap.ccsdk.apps.controllerblueprints.core.data.PropertyDefinition
-import java.io.Serializable
-import java.util.*
-
-open class ResourceDefinition {
-
- @JsonProperty(value = "name", required = true)
- lateinit var name: String
-
- @JsonProperty(value = "property", required = true)
- lateinit var property: PropertyDefinition
-
- var tags: String? = null
-
- @JsonProperty(value = "updated-by")
- lateinit var updatedBy: String
-
- @JsonProperty(value = "sources", required = true)
- lateinit var sources: MutableMap<String, NodeTemplate>
-}
-
-open class ResourceAssignment {
-
- @JsonProperty(value = "name", required = true)
- lateinit var name: String
-
- @JsonProperty(value = "property")
- var property: PropertyDefinition? = null
-
- @JsonProperty("input-param")
- var inputParameter: Boolean = false
-
- @JsonProperty("dictionary-name")
- var dictionaryName: String? = null
-
- @JsonProperty("dictionary-source")
- var dictionarySource: String? = null
-
- @JsonProperty("dependencies")
- var dependencies: MutableList<String>? = null
-
- @JsonProperty("version")
- var version: Int = 0
-
- @JsonProperty("status")
- var status: String? = null
-
- @JsonProperty("message")
- var message: String? = null
-
- @JsonProperty("updated-date")
- @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
- var updatedDate: Date? = null
-
- @JsonProperty("updated-by")
- var updatedBy: String? = null
-
- override fun toString(): String {
- return StringBuilder()
- .append("[")
- .append("name=", name)
- .append(", dictionaryName=", dictionaryName)
- .append(", dictionarySource=", dictionarySource)
- .append("]")
- .toString()
- }
-}
-
-/**
- * Interface for Source Definitions (ex Input Source,
- * Default Source, Database Source, Rest Sources, etc)
- */
-interface ResourceSource : Serializable
-
-
-open class ResourceSourceMapping {
- lateinit var resourceSourceMappings: MutableMap<String, String>
-}
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDictionaryConstants.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDictionaryConstants.kt
deleted file mode 100644
index aa06c9da0..000000000
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDictionaryConstants.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.apps.controllerblueprints.resource.dict
-
-/**
- * ResourceDictionaryConstants
- *
- * @author Brinda Santh
- */
-object ResourceDictionaryConstants {
- const val SOURCE_INPUT = "input"
- const val SOURCE_DEFAULT = "default"
- const val SOURCE_PRIMARY_CONFIG_DATA = "primary-config-data"
- const val SOURCE_PRIMARY_DB = "primary-db"
-
- const val MODEL_DIR_RESOURCE_DEFINITION: String = "resource_dictionary"
-
- const val PROPERTY_TYPE = "type"
- const val PROPERTY_INPUT_KEY_MAPPING = "input-key-mapping"
- const val PROPERTY_OUTPUT_KEY_MAPPING = "output-key-mapping"
- const val PROPERTY_KEY_DEPENDENCIES = "key-dependencies"
-
- const val PATH_RESOURCE_DEFINITION_TYPE = "resource_definition_types"
-} \ No newline at end of file
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactory.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactory.kt
deleted file mode 100644
index 2911ab26a..000000000
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactory.kt
+++ /dev/null
@@ -1,47 +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.apps.controllerblueprints.resource.dict.factory
-
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.apps.controllerblueprints.core.format
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceSourceMapping
-
-/**
- * ResourceSourceMappingFactory.
- *
- * @author Brinda Santh
- */
-object ResourceSourceMappingFactory {
-
- private val resourceSourceMappings: MutableMap<String, String> = hashMapOf()
-
- fun registerSourceMapping(sourceInstance: String, nodeTypeName: String) {
- resourceSourceMappings[sourceInstance] = nodeTypeName
- }
-
- fun getRegisterSourceMapping(sourceInstance: String): String {
- return resourceSourceMappings[sourceInstance]
- ?: throw BluePrintException(format("failed to get source({}) mapping", sourceInstance))
- }
-
- fun getRegisterSourceMapping(): ResourceSourceMapping {
- val resourceSourceMapping = ResourceSourceMapping()
- resourceSourceMapping.resourceSourceMappings = resourceSourceMappings
- return resourceSourceMapping
- }
-}
-
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationService.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationService.kt
deleted file mode 100644
index d71fbbf80..000000000
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationService.kt
+++ /dev/null
@@ -1,163 +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.apps.controllerblueprints.resource.dict.service
-
-import com.att.eelf.configuration.EELFLogger
-import com.att.eelf.configuration.EELFManager
-import org.apache.commons.collections.CollectionUtils
-import org.apache.commons.lang3.StringUtils
-import org.apache.commons.lang3.text.StrBuilder
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.apps.controllerblueprints.core.format
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.TopologicalSortingUtils
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.factory.ResourceSourceMappingFactory
-import java.io.Serializable
-
-/**
- * ResourceAssignmentValidationService.
- *
- * @author Brinda Santh
- */
-interface ResourceAssignmentValidationService : Serializable {
-
- @Throws(BluePrintException::class)
- fun validate(resourceAssignments: List<ResourceAssignment>): Boolean
-}
-
-/**
- * ResourceAssignmentValidationServiceImpl.
- *
- * @author Brinda Santh
- */
-open class ResourceAssignmentValidationServiceImpl : ResourceAssignmentValidationService {
- private val log: EELFLogger = EELFManager.getInstance().getLogger(ResourceAssignmentValidationServiceImpl::class.java)
-
- open var resourceAssignmentMap: Map<String, ResourceAssignment> = hashMapOf()
- open val validationMessage = StrBuilder()
-
- override fun validate(resourceAssignments: List<ResourceAssignment>): Boolean {
- try {
- validateSources(resourceAssignments)
- validateTemplateNDictionaryKeys(resourceAssignments)
- validateCyclicDependency(resourceAssignments)
- if (StringUtils.isNotBlank(validationMessage)) {
- throw BluePrintException("Resource Assignment Validation Failure")
- }
- } catch (e: Exception) {
- throw BluePrintException("Resource Assignment Validation :" + validationMessage.toString(), e)
- }
- return true
- }
-
- open fun validateSources(resourceAssignments: List<ResourceAssignment>) {
- log.info("validating resource assignment sources")
- // Check the Resource Assignment Source(Dynamic Instance) is valid.
- resourceAssignments.forEach { resourceAssignment ->
- try {
- ResourceSourceMappingFactory.getRegisterSourceMapping(resourceAssignment.dictionarySource!!)
- } catch (e: BluePrintException) {
- validationMessage.appendln(e.message + format(" for resource assignment({})", resourceAssignment.name))
- }
- }
- }
-
- open fun validateTemplateNDictionaryKeys(resourceAssignments: List<ResourceAssignment>) {
-
- resourceAssignmentMap = resourceAssignments.map { it.name to it }.toMap()
-
- // Check the Resource Assignment has Duplicate Key Names
- val duplicateKeyNames = resourceAssignments.groupBy { it.name }
- .filter { it.value.size > 1 }
- .map { it.key }
-
- if (duplicateKeyNames.isNotEmpty()) {
- validationMessage.appendln(String.format("Duplicate Assignment Template Keys (%s) is Present", duplicateKeyNames))
- }
-
- // Check the Resource Assignment has Duplicate Dictionary Names
- val duplicateDictionaryKeyNames = resourceAssignments.groupBy { it.dictionaryName }
- .filter { it.value.size > 1 }
- .map { it.key }
- if (duplicateDictionaryKeyNames.isNotEmpty()) {
- validationMessage.appendln(String.format("Duplicate Assignment Dictionary Keys (%s) is Present", duplicateDictionaryKeyNames))
- }
-
- // Collect all the dependencies as a single list
- val dependenciesNames = resourceAssignments.mapNotNull { it.dependencies }.flatten()
-
- // Check all the dependencies keys have Resource Assignment mappings.
- val notPresentDictionaries = dependenciesNames.filter { !resourceAssignmentMap.containsKey(it) }.distinct()
- if (notPresentDictionaries.isNotEmpty()) {
- validationMessage.appendln(String.format("No assignments for Dictionary Keys (%s)", notPresentDictionaries))
- }
-
- if (StringUtils.isNotBlank(validationMessage)) {
- throw BluePrintException("Resource Assignment Validation Failure")
- }
- }
-
- open fun validateCyclicDependency(resourceAssignments: List<ResourceAssignment>) {
- val startResourceAssignment = ResourceAssignment()
- startResourceAssignment.name = "*"
-
- val topologySorting = TopologicalSortingUtils<ResourceAssignment>()
-
- resourceAssignmentMap.map { it.value }.map { resourceAssignment ->
- if (CollectionUtils.isNotEmpty(resourceAssignment.dependencies)) {
- resourceAssignment.dependencies!!.map {
- log.info("Topological Graph link from {} to {}", it, resourceAssignment.name)
- topologySorting.add(resourceAssignmentMap[it]!!, resourceAssignment)
- }
- } else {
- topologySorting.add(startResourceAssignment, resourceAssignment)
- }
- }
-
- if (!topologySorting.isDag) {
- val graph = getTopologicalGraph(topologySorting)
- validationMessage.appendln("Cyclic Dependency :$graph")
- }
- }
-
- open fun getTopologicalGraph(topologySorting: TopologicalSortingUtils<ResourceAssignment>): String {
- val s = StringBuilder()
- val neighbors = topologySorting.getNeighbors()
-
- neighbors.forEach { v, vs ->
- if (v.name == "*") {
- s.append("\n * -> [")
- for (resourceAssignment in vs) {
- s.append("(" + resourceAssignment.dictionaryName + ":" + resourceAssignment.name
- + "),")
- }
- s.append("]")
- } else {
- s.append("\n (" + v.dictionaryName + ":" + v.name + ") -> [")
- for (resourceAssignment in vs) {
- s.append("(" + resourceAssignment.dictionaryName + ":" + resourceAssignment.name
- + "),")
- }
- s.append("]")
- }
- }
- return s.toString()
- }
-
-
-} \ No newline at end of file
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationService.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationService.kt
deleted file mode 100644
index 9541a7b89..000000000
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationService.kt
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright © 2018 IBM.
- * Modifications 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.apps.controllerblueprints.resource.dict.service
-
-import com.att.eelf.configuration.EELFLogger
-import com.att.eelf.configuration.EELFManager
-import com.fasterxml.jackson.databind.JsonNode
-import com.google.common.base.Preconditions
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintTypes
-import org.onap.ccsdk.apps.controllerblueprints.core.data.NodeTemplate
-import org.onap.ccsdk.apps.controllerblueprints.core.data.NodeType
-import org.onap.ccsdk.apps.controllerblueprints.core.data.PropertyDefinition
-import org.onap.ccsdk.apps.controllerblueprints.core.format
-import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintRepoService
-import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintExpressionService
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDefinition
-import java.io.Serializable
-
-/**
- * ResourceDefinitionValidationService.
- *
- * @author Brinda Santh
- */
-interface ResourceDefinitionValidationService : Serializable {
-
- @Throws(BluePrintException::class)
- fun validate(resourceDefinition: ResourceDefinition)
-
-}
-
-/**
- * ResourceDefinitionValidationService.
- *
- * @author Brinda Santh
- */
-open class ResourceDefinitionValidationServiceImpl(private val bluePrintRepoService: BluePrintRepoService) : ResourceDefinitionValidationService {
-
- private val log: EELFLogger = EELFManager.getInstance().getLogger(ResourceDefinitionValidationService::class.java)
-
- override fun validate(resourceDefinition: ResourceDefinition) {
- Preconditions.checkNotNull(resourceDefinition, "Failed to get Resource Definition")
- log.trace("Validating Resource Dictionary Definition {}", resourceDefinition.name)
-
- resourceDefinition.sources.forEach { name, nodeTemplate ->
- val sourceType = nodeTemplate.type
-
- val sourceNodeType = bluePrintRepoService.getNodeType(sourceType)
-
- // Validate Property Name, expression, values and Data Type
- validateNodeTemplateProperties(nodeTemplate, sourceNodeType)
- }
- }
-
-
- open fun validateNodeTemplateProperties(nodeTemplate: NodeTemplate, nodeType: NodeType) {
- nodeTemplate.properties?.let { validatePropertyAssignments(nodeType.properties!!, nodeTemplate.properties!!) }
- }
-
-
- open fun validatePropertyAssignments(nodeTypeProperties: MutableMap<String, PropertyDefinition>,
- properties: MutableMap<String, JsonNode>) {
- properties.forEach { propertyName, propertyAssignment ->
- val propertyDefinition: PropertyDefinition = nodeTypeProperties[propertyName]
- ?: throw BluePrintException(format("failed to get definition for the property ({})", propertyName))
- // Check and Validate if Expression Node
- val expressionData = BluePrintExpressionService.getExpressionData(propertyAssignment)
- if (!expressionData.isExpression) {
- checkPropertyValue(propertyDefinition, propertyName, propertyAssignment)
- } else {
- throw BluePrintException(format("property({}) of expression ({}) is not supported",
- propertyName, propertyAssignment))
- }
- }
- }
-
- open fun checkPropertyValue(propertyDefinition: PropertyDefinition, propertyName: String, propertyAssignment: JsonNode) {
- val propertyType = propertyDefinition.type
- val isValid: Boolean
-
- if (BluePrintTypes.validPrimitiveTypes().contains(propertyType)) {
- isValid = JacksonUtils.checkJsonNodeValueOfPrimitiveType(propertyType, propertyAssignment)
-
- } else if (BluePrintTypes.validCollectionTypes().contains(propertyType)) {
-
- isValid = JacksonUtils.checkJsonNodeValueOfCollectionType(propertyType, propertyAssignment)
- } else {
- bluePrintRepoService.getDataType(propertyType)
- isValid = true
- }
-
- check(isValid) {
- throw BluePrintException(format("property({}) defined of type({}) is not compatable with the value ({})",
- propertyName, propertyType, propertyAssignment))
- }
- }
-} \ No newline at end of file
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtils.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtils.kt
deleted file mode 100644
index 747639c89..000000000
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtils.kt
+++ /dev/null
@@ -1,109 +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.apps.controllerblueprints.resource.dict.utils
-
-import com.att.eelf.configuration.EELFLogger
-import org.apache.commons.collections.CollectionUtils
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.TopologicalSortingUtils
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment
-import com.att.eelf.configuration.EELFManager
-import java.util.ArrayList
-/**
- * BulkResourceSequencingUtils.
- *
- * @author Brinda Santh
- */
-object BulkResourceSequencingUtils {
- private val log: EELFLogger = EELFManager.getInstance().getLogger(BulkResourceSequencingUtils::class.java)
-
- @JvmStatic
- fun process(resourceAssignments: MutableList<ResourceAssignment>): List<List<ResourceAssignment>> {
- val resourceAssignmentMap: MutableMap<String, ResourceAssignment> = hashMapOf()
- val sequenceBatchResourceAssignment = ArrayList<List<ResourceAssignment>>()
- log.info("Assignments ({})", resourceAssignments)
- // Prepare Map
- resourceAssignments.forEach { resourceAssignment ->
- log.trace("Processing Key ({})", resourceAssignment.name)
- resourceAssignmentMap.put(resourceAssignment.name, resourceAssignment)
- }
-
- val startResourceAssignment = ResourceAssignment()
- startResourceAssignment.name = "*"
-
- // Preepare Sorting Map
- val topologySorting = TopologicalSortingUtils<ResourceAssignment>()
- resourceAssignmentMap.forEach { _, resourceAssignment ->
- if (CollectionUtils.isNotEmpty(resourceAssignment.dependencies)) {
- for (dependency in resourceAssignment.dependencies!!) {
- topologySorting.add(resourceAssignmentMap[dependency]!!, resourceAssignment)
- }
- } else {
- topologySorting.add(startResourceAssignment, resourceAssignment)
- }
- }
-
- val sequencedResourceAssignments: MutableList<ResourceAssignment> = topologySorting.topSort()!! as MutableList<ResourceAssignment>
- log.info("Sorted Sequenced Assignments ({})", sequencedResourceAssignments)
-
- var batchResourceAssignment: MutableList<ResourceAssignment>? = null
- var batchAssignmentName: MutableList<String>? = null
-
- // Prepare Sorting
- sequencedResourceAssignments.forEachIndexed { index, resourceAssignment ->
-
- var previousResourceAssignment: ResourceAssignment? = null
-
- if (index > 0) {
- previousResourceAssignment = sequencedResourceAssignments[index - 1]
- }
-
- var dependencyPresence = false
- if (batchAssignmentName != null && resourceAssignment.dependencies != null) {
- dependencyPresence = CollectionUtils.containsAny(batchAssignmentName, resourceAssignment.dependencies)
- }
-
- log.trace("({}) -> Checking ({}), with ({}), result ({})", resourceAssignment.name,
- batchAssignmentName, resourceAssignment.dependencies, dependencyPresence)
-
- if (previousResourceAssignment != null && resourceAssignment.dictionarySource != null
- && resourceAssignment.dictionarySource!!.equals(previousResourceAssignment.dictionarySource, true)
- && !dependencyPresence) {
- batchResourceAssignment!!.add(resourceAssignment)
- batchAssignmentName!!.add(resourceAssignment.name)
- } else {
- if (batchResourceAssignment != null) {
- sequenceBatchResourceAssignment.add(batchResourceAssignment!!)
- log.trace("Created old Set ({})", batchAssignmentName)
- }
- batchResourceAssignment = arrayListOf()
- batchResourceAssignment!!.add(resourceAssignment)
-
- batchAssignmentName = arrayListOf()
- batchAssignmentName!!.add(resourceAssignment.name)
- }
-
- if (index == sequencedResourceAssignments.size - 1) {
- log.trace("Created old Set ({})", batchAssignmentName)
- sequenceBatchResourceAssignment.add(batchResourceAssignment!!)
- }
- }
- log.info("Batched Sequence : ({})", sequenceBatchResourceAssignment)
-
- return sequenceBatchResourceAssignment
- }
-
-} \ No newline at end of file
diff --git a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtils.kt b/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtils.kt
deleted file mode 100644
index 1aeda0ba1..000000000
--- a/components/resource-dict/src/main/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtils.kt
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * 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.apps.controllerblueprints.resource.dict.utils
-
-import com.att.eelf.configuration.EELFLogger
-import com.att.eelf.configuration.EELFManager
-import com.fasterxml.jackson.databind.JsonNode
-import com.fasterxml.jackson.databind.node.NullNode
-import org.apache.commons.collections.MapUtils
-import org.apache.commons.lang3.StringUtils
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintProcessorException
-import org.onap.ccsdk.apps.controllerblueprints.core.data.NodeTemplate
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.BluePrintFileUtils
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDefinition
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDictionaryConstants
-import java.io.File
-
-
-object ResourceDictionaryUtils {
- private val log: EELFLogger = EELFManager.getInstance().getLogger(ResourceDictionaryUtils::class.java)
-
- @JvmStatic
- fun populateSourceMapping(resourceAssignment: ResourceAssignment,
- resourceDefinition: ResourceDefinition) {
-
- if (StringUtils.isBlank(resourceAssignment.dictionarySource)) {
-
- if (MapUtils.isNotEmpty(resourceDefinition.sources)) {
- val source = findFirstSource(resourceDefinition.sources)
-
- // Populate and Assign First Source
- if (StringUtils.isNotBlank(source)) {
- // Set Dictionary Source
- resourceAssignment.dictionarySource = source
- } else {
- resourceAssignment.dictionarySource = ResourceDictionaryConstants.SOURCE_INPUT
- }
- log.info("auto map resourceAssignment : {}", resourceAssignment)
- } else {
- resourceAssignment.dictionarySource = ResourceDictionaryConstants.SOURCE_INPUT
- }
- }
- }
-
- @JvmStatic
- fun findFirstSource(sources: Map<String, NodeTemplate>): String? {
- var source: String? = null
- if (MapUtils.isNotEmpty(sources)) {
- source = sources.keys.stream().findFirst().get()
- }
- return source
- }
-
- @JvmStatic
- fun assignInputs(data: JsonNode, context: MutableMap<String, Any>) {
- log.trace("assignInputs from input JSON ({})", data.toString())
- data.fields().forEach { field ->
- val valueNode: JsonNode = data.at("/".plus(field.key)) ?: NullNode.getInstance()
-
- val path = BluePrintConstants.PATH_INPUTS.plus(BluePrintConstants.PATH_DIVIDER).plus(field.key)
- log.trace("setting path ({}), values ({})", path, valueNode)
- context[path] = valueNode
- }
- }
-
- fun getResourceAssignmentFromFile(filePath: String): List<ResourceAssignment> {
- return JacksonUtils.getListFromFile(filePath, ResourceAssignment::class.java)
- ?: throw BluePrintProcessorException("couldn't get ResourceAssignment definitions for the file($filePath)")
- }
-
- fun writeResourceDefinitionTypes(basePath: String, resourceDefinitionMap: Map<String, ResourceDefinition>) {
- val typePath = basePath.plus(File.separator).plus(BluePrintConstants.TOSCA_DEFINITIONS_DIR)
- .plus(File.separator).plus("${ResourceDictionaryConstants.PATH_RESOURCE_DEFINITION_TYPE}.json")
- val resourceDefinitionContent = JacksonUtils.getJson(resourceDefinitionMap.toSortedMap(), true)
- BluePrintFileUtils.writeDefinitionFile(typePath, resourceDefinitionContent)
- }
-} \ No newline at end of file
diff --git a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinitionTest.java b/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinitionTest.java
deleted file mode 100644
index 1ed306e21..000000000
--- a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/ResourceDefinitionTest.java
+++ /dev/null
@@ -1,60 +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.apps.controllerblueprints.resource.dict;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-public class ResourceDefinitionTest {
- private EELFLogger log = EELFManager.getInstance().getLogger(ResourceDefinitionTest.class);
- private String basePath = "load/resource_dictionary";
-
- @Test
- public void testDictionaryDefinitionInputSource(){
-
- String fileName = basePath + "/input-source.json";
- ResourceDefinition resourceDefinition = JacksonUtils.Companion.readValueFromFile(fileName, ResourceDefinition.class);
- Assert.assertNotNull("Failed to populate dictionaryDefinition for input type", resourceDefinition);
- }
-
- @Test
- public void testDictionaryDefinitionDefaultSource(){
-
- String fileName = basePath + "/default-source.json";
- ResourceDefinition resourceDefinition = JacksonUtils.Companion.readValueFromFile(fileName, ResourceDefinition.class);
- Assert.assertNotNull("Failed to populate dictionaryDefinition for default type", resourceDefinition);
- }
-
- @Test
- public void testDictionaryDefinitionDBSource(){
-
- String fileName = basePath + "/primary-db-source.json";
- ResourceDefinition resourceDefinition = JacksonUtils.Companion.readValueFromFile(fileName, ResourceDefinition.class);
- Assert.assertNotNull("Failed to populate dictionaryDefinition for primary-db type", resourceDefinition);
- }
-
- @Test
- public void testDictionaryDefinitionMDSALSource(){
- String fileName = basePath + "/mdsal-source.json";
- ResourceDefinition resourceDefinition = JacksonUtils.Companion.readValueFromFile(fileName, ResourceDefinition.class);
- Assert.assertNotNull("Failed to populate dictionaryDefinition for mdsal type", resourceDefinition);
- }
-}
diff --git a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactoryTest.java b/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactoryTest.java
deleted file mode 100644
index f11638e35..000000000
--- a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/factory/ResourceSourceMappingFactoryTest.java
+++ /dev/null
@@ -1,42 +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.apps.controllerblueprints.resource.dict.factory;
-
-import org.junit.Test;
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceSourceMapping;
-import org.springframework.util.Assert;
-
-public class ResourceSourceMappingFactoryTest {
-
- @Test
- public void testRegisterResourceMapping() {
-
- ResourceSourceMappingFactory.INSTANCE.registerSourceMapping("primary-db", "source-primary-db");
- ResourceSourceMappingFactory.INSTANCE.registerSourceMapping("input", "source-input");
- ResourceSourceMappingFactory.INSTANCE.registerSourceMapping("default", "source-default");
- ResourceSourceMappingFactory.INSTANCE.registerSourceMapping("primary-config-data", "source-rest");
-
- String nodeTypeName = ResourceSourceMappingFactory.INSTANCE.getRegisterSourceMapping("primary-db");
- Assert.notNull(nodeTypeName, "Failed to get primary-db mapping");
-
- ResourceSourceMapping resourceSourceMapping = ResourceSourceMappingFactory.INSTANCE.getRegisterSourceMapping();
- Assert.notNull(resourceSourceMapping, "Failed to get resource source mapping");
- Assert.notNull(resourceSourceMapping.getResourceSourceMappings(), "Failed to get resource source mappings");
-
- }
-
-}
diff --git a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationServiceTest.kt b/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationServiceTest.kt
deleted file mode 100644
index 191f568f1..000000000
--- a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceAssignmentValidationServiceTest.kt
+++ /dev/null
@@ -1,66 +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.apps.controllerblueprints.resource.dict.service
-
-import com.att.eelf.configuration.EELFLogger
-import org.junit.Assert
-import org.junit.Test
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment
-import com.att.eelf.configuration.EELFManager
-import org.junit.Before
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.utils.ResourceDictionaryTestUtils
-
-/**
- * ResourceAssignmentValidationServiceTest.
- *
- * @author Brinda Santh
- */
-class ResourceAssignmentValidationServiceTest {
- private val log: EELFLogger = EELFManager.getInstance().getLogger(ResourceAssignmentValidationServiceTest::class.java)
- @Before
- fun setUp() {
- // Setup dummy Source Instance Mapping
- ResourceDictionaryTestUtils.setUpResourceSourceMapping()
- }
-
- @Test
- fun testValidateSuccess() {
- log.info("**************** testValidateSuccess *****************")
- val assignments = JacksonUtils.getListFromClassPathFile("validation/success.json", ResourceAssignment::class.java)
- val resourceAssignmentValidator = ResourceAssignmentValidationServiceImpl()
- val result = resourceAssignmentValidator.validate(assignments!!)
- Assert.assertTrue("Failed to Validate", result)
- }
-
- @Test(expected = BluePrintException::class)
- fun testValidateDuplicate() {
- log.info(" **************** testValidateDuplicate *****************")
- val assignments = JacksonUtils.getListFromClassPathFile("validation/duplicate.json", ResourceAssignment::class.java)
- val resourceAssignmentValidator = ResourceAssignmentValidationServiceImpl()
- resourceAssignmentValidator.validate(assignments!!)
- }
-
- @Test(expected = BluePrintException::class)
- fun testValidateCyclic() {
- log.info(" **************** testValidateCyclic *****************")
- val assignments = JacksonUtils.getListFromClassPathFile("validation/cyclic.json", ResourceAssignment::class.java)
- val resourceAssignmentValidator = ResourceAssignmentValidationServiceImpl()
- resourceAssignmentValidator.validate(assignments!!)
- }
-} \ No newline at end of file
diff --git a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationServiceTest.java b/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationServiceTest.java
deleted file mode 100644
index 7f040b2e2..000000000
--- a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/service/ResourceDefinitionValidationServiceTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.apps.controllerblueprints.resource.dict.service;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRepoFileService;
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDefinition;
-
-public class ResourceDefinitionValidationServiceTest {
- private String basePath = "load/model_type";
- private String dictionaryPath = "load/resource_dictionary";
- private BluePrintRepoFileService bluePrintRepoFileService = new BluePrintRepoFileService(basePath);
-
- @Test
- public void testValidateSource() throws Exception {
-
- String inputFileName = dictionaryPath + "/input-source.json";
- testValidate(inputFileName);
-
- String dbFileName = dictionaryPath + "/primary-db-source.json";
- testValidate(dbFileName);
-
- String defaultFileName = dictionaryPath + "/default-source.json";
- testValidate(defaultFileName);
-
- String restFileName = dictionaryPath + "/mdsal-source.json";
- testValidate(restFileName);
- }
-
- private void testValidate(String fileName) throws Exception {
-
- ResourceDefinition resourceDefinition = JacksonUtils.Companion.readValueFromFile(fileName, ResourceDefinition.class);
- Assert.assertNotNull("Failed to populate dictionaryDefinition for type", resourceDefinition);
-
- ResourceDefinitionValidationService resourceDictionaryValidationService =
- new ResourceDefinitionValidationServiceImpl(bluePrintRepoFileService);
- resourceDictionaryValidationService.validate(resourceDefinition);
- Assert.assertNotNull(String.format("Failed to populate dictionaryDefinition for : %s", fileName), resourceDefinition);
- }
-}
diff --git a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtilsTest.java b/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtilsTest.java
deleted file mode 100644
index a2c2310be..000000000
--- a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/BulkResourceSequencingUtilsTest.java
+++ /dev/null
@@ -1,37 +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.apps.controllerblueprints.resource.dict.utils;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;
-import java.util.List;
-/**
- * BulkResourceSequencingUtils.
- *
- * @author Brinda Santh
- */
-public class BulkResourceSequencingUtilsTest {
-
- @Test
- public void testProcess(){
- List<ResourceAssignment> assignments = JacksonUtils.Companion.getListFromClassPathFile("validation/success.json", ResourceAssignment.class);
- Assert.assertNotNull("failed to get ResourceAssignment from validation/success.json ", assignments);
- BulkResourceSequencingUtils.process(assignments);
- }
-} \ No newline at end of file
diff --git a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtilsTest.java b/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtilsTest.java
deleted file mode 100644
index 92bfa7301..000000000
--- a/components/resource-dict/src/test/java/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryUtilsTest.java
+++ /dev/null
@@ -1,99 +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.apps.controllerblueprints.resource.dict.utils;
-
-
-import com.fasterxml.jackson.databind.JsonNode;
-import org.junit.Assert;
-import org.junit.Test;
-import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants;
-import org.onap.ccsdk.apps.controllerblueprints.core.data.NodeTemplate;
-import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDefinition;
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDictionaryConstants;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-import java.util.HashMap;
-import java.util.Map;
-/**
- * ResourceDictionaryUtilsTest.
- *
- * @author Brinda Santh
- */
-public class ResourceDictionaryUtilsTest {
- private static final EELFLogger log = EELFManager.getInstance().getLogger(ResourceDictionaryUtilsTest.class);
-
- @Test
- public void testPopulateSourceMapping() {
-
- ResourceAssignment resourceAssignment = new ResourceAssignment();
- resourceAssignment.setName("sample-assignment");
- ResourceDefinition resourceDefinition = new ResourceDefinition();
- Map<String, NodeTemplate> sources = new HashMap<>();
- resourceDefinition.setSources(sources);
- // To Check Empty Source
- ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
- Assert.assertEquals("Expected Empty source Input, but.", ResourceDictionaryConstants.SOURCE_INPUT, resourceAssignment.getDictionarySource());
-
- // To Check First Source
- resourceAssignment.setDictionarySource(null);
- sources.put(ResourceDictionaryConstants.SOURCE_DEFAULT, new NodeTemplate());
- ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
- Assert.assertEquals("Expected First source Default, but.", ResourceDictionaryConstants.SOURCE_DEFAULT, resourceAssignment.getDictionarySource());
-
- // To Check Assigned Source
- resourceAssignment.setDictionarySource(ResourceDictionaryConstants.SOURCE_PRIMARY_DB);
- ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
- Assert.assertEquals("Expected Assigned source DB, but.", ResourceDictionaryConstants.SOURCE_PRIMARY_DB, resourceAssignment.getDictionarySource());
-
- }
-
- @Test
- public void testFindFirstSource() {
- //To check if Empty Source
- Map<String, NodeTemplate> sources = new HashMap<>();
- String firstSource = ResourceDictionaryUtils.findFirstSource(sources);
- Assert.assertNull("Source populated, which is not expected.", firstSource);
-
- // TO check the first Source
- sources.put(ResourceDictionaryConstants.SOURCE_INPUT, new NodeTemplate());
- String inputFirstSource = ResourceDictionaryUtils.findFirstSource(sources);
- Assert.assertEquals("Expected source Input, but.", ResourceDictionaryConstants.SOURCE_INPUT, inputFirstSource);
-
- // TO check the multiple Source
- sources.put(ResourceDictionaryConstants.SOURCE_PRIMARY_DB, new NodeTemplate());
- String multipleFirstSource = ResourceDictionaryUtils.findFirstSource(sources);
- Assert.assertEquals("Expected source Input, but.", ResourceDictionaryConstants.SOURCE_INPUT, multipleFirstSource);
-
- }
-
- @Test
- public void testAssignInputs() {
- JsonNode data = JacksonUtils.Companion.jsonNodeFromClassPathFile("data/resource-assignment-input.json");
- Map<String, Object> context = new HashMap<>();
- ResourceDictionaryUtils.assignInputs(data, context);
- String path = BluePrintConstants.PATH_INPUTS.concat(BluePrintConstants.PATH_DIVIDER).concat("mapValue");
- log.info("populated context {}", context);
- Assert.assertTrue(String.format("failed to get variable : %s",path),context.containsKey(path));
-
- }
-
-
-}
diff --git a/components/resource-dict/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryTestUtils.kt b/components/resource-dict/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryTestUtils.kt
deleted file mode 100644
index 74ef6d6de..000000000
--- a/components/resource-dict/src/test/kotlin/org/onap/ccsdk/apps/controllerblueprints/resource/dict/utils/ResourceDictionaryTestUtils.kt
+++ /dev/null
@@ -1,30 +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.apps.controllerblueprints.resource.dict.utils
-
-import org.onap.ccsdk.apps.controllerblueprints.resource.dict.factory.ResourceSourceMappingFactory
-
-object ResourceDictionaryTestUtils {
-
- @JvmStatic
- fun setUpResourceSourceMapping() {
- ResourceSourceMappingFactory.registerSourceMapping("primary-db", "source-primary-db")
- ResourceSourceMappingFactory.registerSourceMapping("input", "source-input")
- ResourceSourceMappingFactory.registerSourceMapping("default", "source-default")
- ResourceSourceMappingFactory.registerSourceMapping("primary-config-data", "source-rest")
- }
-} \ No newline at end of file
diff --git a/components/resource-dict/src/test/resources/data/resource-assignment-input.json b/components/resource-dict/src/test/resources/data/resource-assignment-input.json
deleted file mode 100644
index d79c90682..000000000
--- a/components/resource-dict/src/test/resources/data/resource-assignment-input.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "intValue" : 1,
- "floatValue" : 1.34,
- "booleanValue" : true,
- "stringValue" : "sample-String",
- "timeValue" : "2018-09-29",
- "arrayStringValue" : ["one", "two"],
- "mapValue" : {"profile_name1":"profile_name1",
- "profile_name2":"profile_name2"}
-} \ No newline at end of file
diff --git a/components/resource-dict/src/test/resources/validation/cyclic.json b/components/resource-dict/src/test/resources/validation/cyclic.json
deleted file mode 100644
index 98cd14446..000000000
--- a/components/resource-dict/src/test/resources/validation/cyclic.json
+++ /dev/null
@@ -1,111 +0,0 @@
-[
- {
- "name": "vnf-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "vnf-id",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "service-instance-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "service-instance-id",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "bundle-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "bundle-id",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id"
- ]
- },
- {
- "name": "bundle-ip",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "bundle-ip",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id"
- ]
- },
- {
- "name": "bundle-mac",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "bundle-mac",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id",
- "bundle-id"
- ]
- },
- {
- "name": "managed-ip",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "managed-ip",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "loopback-ip"
- ]
- },
- {
- "name": "vnf-name",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "vnf-name",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "managed-ip1",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "managed-ip1",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "loopback-ip"
- ]
- },
- {
- "name": "loopback-ip",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "loopback-ip",
- "dictionary-source": "primary-db",
- "dependencies": [
- "bundle-mac",
- "managed-ip1"
- ]
- }
-]
diff --git a/components/resource-dict/src/test/resources/validation/duplicate.json b/components/resource-dict/src/test/resources/validation/duplicate.json
deleted file mode 100644
index 7581ff64d..000000000
--- a/components/resource-dict/src/test/resources/validation/duplicate.json
+++ /dev/null
@@ -1,110 +0,0 @@
-[
- {
- "name": "vnf-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "vnf-id",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "service-instance-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "service-instance-id",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "bundle-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "bundle-id",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id"
- ]
- },
- {
- "name": "bundle-ip",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "bundle-ip",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id"
- ]
- },
- {
- "name": "bundle-mac",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "bundle-mac",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id",
- "bundle-id"
- ]
- },
- {
- "name": "bundle-mac",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "bundle-mac",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "loopback-ip"
- ]
- },
- {
- "name": "vnf-name",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "vnf-name",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "managed-ip1",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "managed-ip1",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "loopback-ip"
- ]
- },
- {
- "name": "loopback-ip",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "loopback-ip",
- "dictionary-source": "primary-db",
- "dependencies": [
- "bundle-mac"
- ]
- }
-]
diff --git a/components/resource-dict/src/test/resources/validation/success.json b/components/resource-dict/src/test/resources/validation/success.json
deleted file mode 100644
index 486251d60..000000000
--- a/components/resource-dict/src/test/resources/validation/success.json
+++ /dev/null
@@ -1,110 +0,0 @@
-[
- {
- "name": "vnf-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "vnf-id",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "service-instance-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "service-instance-id",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "bundle-id",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "bundle-id",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id"
- ]
- },
- {
- "name": "bundle-ip",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "bundle-ip",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id"
- ]
- },
- {
- "name": "bundle-mac",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "bundle-mac",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "vnf-id",
- "bundle-id"
- ]
- },
- {
- "name": "managed-ip",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "managed-ip",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "loopback-ip"
- ]
- },
- {
- "name": "vnf-name",
- "input-param": true,
- "property": {
- "type": "string",
- "required": true
- },
- "dictionary-name": "vnf-name",
- "dictionary-source": "input",
- "dependencies": []
- },
- {
- "name": "managed-ip1",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "managed-ip1",
- "dictionary-source": "primary-config-data",
- "dependencies": [
- "loopback-ip"
- ]
- },
- {
- "name": "loopback-ip",
- "input-param": true,
- "property": {
- "type": "string"
- },
- "dictionary-name": "loopback-ip",
- "dictionary-source": "primary-db",
- "dependencies": [
- "bundle-mac"
- ]
- }
-]