summaryrefslogtreecommitdiffstats
path: root/ms/controllerblueprints/modules/service/src/main
diff options
context:
space:
mode:
authorBrinda Santh <brindasanth@in.ibm.com>2019-08-30 13:57:57 -0400
committerBrinda Santh <brindasanth@in.ibm.com>2019-08-30 13:57:57 -0400
commit9039b516eaa55a08d2f97ef290c17de781e13ae2 (patch)
tree6cd4052ecea536df45de609032eb01a10d233aa4 /ms/controllerblueprints/modules/service/src/main
parent7bbeeda4e4ff25a073c9d1a8992fe68aaf470e6b (diff)
Refactor handlers, services to designer api.
Change-Id: I3bc56e14fca332c0c0b661bb7e8a501a2dadbe91 Issue-ID: CCSDK-1663 Signed-off-by: Brinda Santh <brindasanth@in.ibm.com>
Diffstat (limited to 'ms/controllerblueprints/modules/service/src/main')
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/AutoResourceMappingService.kt174
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/BluePrintRepoServiceImpl.kt105
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ControllerBlueprintExceptionHandler.kt57
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ModelTypeController.kt58
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ResourceDictionaryController.kt69
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ModelTypeHandler.kt122
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ResourceDictionaryHandler.kt147
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/BluePrintsReactRepository.kt76
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ModelTypeRepository.kt85
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ResourceDictionaryRepository.kt66
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/utils/BluePrintEnhancerUtils.kt164
-rw-r--r--ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/validator/ModelTypeValidator.kt83
12 files changed, 0 insertions, 1206 deletions
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/AutoResourceMappingService.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/AutoResourceMappingService.kt
deleted file mode 100644
index 3ab9fee58..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/AutoResourceMappingService.kt
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- * Modifications Copyright © 2019 Huawei.
- *
- * 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
-
-import com.google.common.base.Preconditions
-import org.apache.commons.collections.CollectionUtils
-import org.apache.commons.lang3.StringUtils
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.core.data.PropertyDefinition
-import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
-import org.onap.ccsdk.cds.controllerblueprints.resource.dict.utils.ResourceDictionaryUtils
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ResourceDictionary
-import org.onap.ccsdk.cds.controllerblueprints.service.model.AutoMapResponse
-import org.onap.ccsdk.cds.controllerblueprints.service.repository.ResourceDictionaryRepository
-import org.slf4j.LoggerFactory
-import org.springframework.stereotype.Service
-import java.util.*
-
-@Service
-open class AutoResourceMappingService(private val dataDictionaryRepository: ResourceDictionaryRepository) {
-
- private val log = LoggerFactory.getLogger(AutoResourceMappingService::class.java)
-
- @Throws(BluePrintException::class)
- fun autoMap(resourceAssignments: MutableList<ResourceAssignment>):
- AutoMapResponse {
- val autoMapResponse = AutoMapResponse()
- try {
- if (CollectionUtils.isNotEmpty(resourceAssignments)) {
- // Create the Dictionary definitions for the ResourceAssignment Names
- val dictionaryMap = getDictionaryDefinitions(resourceAssignments)
-
- for (resourceAssignment in resourceAssignments) {
- if (StringUtils.isNotBlank(resourceAssignment.name)
- && StringUtils.isBlank(resourceAssignment.dictionaryName)) {
- populateDictionaryMapping(dictionaryMap, resourceAssignment)
- log.info("Mapped Resource : {}", resourceAssignment)
- }
- }
- }
- val dictionaries = getDictionaryDefinitionsList(resourceAssignments)
- val resourceAssignmentsFinal = getAllAutoMapResourceAssignments(resourceAssignments)
- autoMapResponse.dataDictionaries = dictionaries
- autoMapResponse.resourceAssignments = resourceAssignmentsFinal
- } catch (e: Exception) {
- log.error(String.format("Failed in auto process %s", e.message))
- throw BluePrintException(e, e.message!!)
- }
-
- return autoMapResponse
- }
-
- private fun populateDictionaryMapping(dictionaryMap: Map<String, ResourceDictionary>, resourceAssignment: ResourceAssignment) {
- val dbDataDictionary = dictionaryMap[resourceAssignment.name]
- if (dbDataDictionary != null && dbDataDictionary.definition != null) {
-
- val dictionaryDefinition = dbDataDictionary.definition
-
- if (dictionaryDefinition != null && StringUtils.isNotBlank(dictionaryDefinition.name)
- && StringUtils.isBlank(resourceAssignment.dictionaryName)) {
-
- resourceAssignment.dictionaryName = dbDataDictionary.name
- ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition)
- }
- }
- }
-
- private fun getDictionaryDefinitions(resourceAssignments: List<ResourceAssignment>): Map<String, ResourceDictionary> {
- val dictionaryMap = HashMap<String, ResourceDictionary>()
- val names = ArrayList<String>()
- for (resourceAssignment in resourceAssignments) {
- if (StringUtils.isNotBlank(resourceAssignment.name)) {
- names.add(resourceAssignment.name)
- }
- }
- if (CollectionUtils.isNotEmpty(names)) {
-
- val dictionaries = dataDictionaryRepository.findByNameIn(names)
- if (CollectionUtils.isNotEmpty(dictionaries)) {
- for (dataDictionary in dictionaries) {
- if (StringUtils.isNotBlank(dataDictionary.name)) {
- dictionaryMap[dataDictionary.name] = dataDictionary
- }
- }
- }
- }
- return dictionaryMap
-
- }
- private fun getDictionaryDefinitionsList(resourceAssignments: List<ResourceAssignment>): List<ResourceDictionary>? {
- var dictionaries: List<ResourceDictionary>? = null
- val names = ArrayList<String>()
- for (resourceAssignment in resourceAssignments) {
- if (StringUtils.isNotBlank(resourceAssignment.dictionaryName)) {
-
- if (!names.contains(resourceAssignment.dictionaryName)) {
- names.add(resourceAssignment.dictionaryName!!)
- }
-
- if (resourceAssignment.dependencies != null && !resourceAssignment.dependencies!!.isEmpty()) {
- val dependencyNames = resourceAssignment.dependencies
- for (dependencyName in dependencyNames!!) {
- if (StringUtils.isNotBlank(dependencyName) && !names.contains(dependencyName)) {
- names.add(dependencyName)
- }
- }
- }
- }
- }
- if (CollectionUtils.isNotEmpty(names)) {
- dictionaries = dataDictionaryRepository.findByNameIn(names)
- }
- return dictionaries
-
- }
-
- private fun getAllAutoMapResourceAssignments(resourceAssignments: MutableList<ResourceAssignment>): List<ResourceAssignment> {
- var dictionaries: List<ResourceDictionary>? = null
- val names = ArrayList<String>()
- for (resourceAssignment in resourceAssignments) {
- if (StringUtils.isNotBlank(resourceAssignment.dictionaryName)) {
- if (resourceAssignment.dependencies != null && !resourceAssignment.dependencies!!.isEmpty()) {
- val dependencyNames = resourceAssignment.dependencies
- for (dependencyName in dependencyNames!!) {
- if (StringUtils.isNotBlank(dependencyName) && !names.contains(dependencyName)
- && !checkAssignmentsExists(resourceAssignments, dependencyName)) {
- names.add(dependencyName)
- }
- }
- }
- }
- }
-
- if (!names.isEmpty()) {
- dictionaries = dataDictionaryRepository.findByNameIn(names)
- }
- if (dictionaries != null) {
- for (rscDictionary in dictionaries) {
- val dictionaryDefinition = rscDictionary.definition
- Preconditions.checkNotNull(dictionaryDefinition, "failed to get Resource Definition from dictionary definition")
- val property = PropertyDefinition()
- property.required = true
- val resourceAssignment = ResourceAssignment()
- resourceAssignment.name = rscDictionary.name
- resourceAssignment.dictionaryName = rscDictionary.name
- resourceAssignment.version = 0
- resourceAssignment.property = property
- ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition)
- resourceAssignments.add(resourceAssignment)
- }
- }
- return resourceAssignments
- }
-
-
- private fun checkAssignmentsExists(resourceAssignmentsWithDepencies: List<ResourceAssignment>, resourceName: String): Boolean {
- return resourceAssignmentsWithDepencies.stream().anyMatch { names -> names.name.equals(resourceName, ignoreCase = true) }
- }
-} \ No newline at end of file
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/BluePrintRepoServiceImpl.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/BluePrintRepoServiceImpl.kt
deleted file mode 100644
index e1fa1882d..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/BluePrintRepoServiceImpl.kt
+++ /dev/null
@@ -1,105 +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
-
-import com.fasterxml.jackson.databind.JsonNode
-import com.google.common.base.Preconditions
-import org.apache.commons.lang3.StringUtils
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.core.data.*
-import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
-import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceDefinition
-import org.onap.ccsdk.cds.controllerblueprints.service.repository.ModelTypeRepository
-import org.onap.ccsdk.cds.controllerblueprints.service.repository.ResourceDictionaryRepository
-import org.springframework.stereotype.Service
-
-interface ResourceDefinitionRepoService : BluePrintRepoService {
-
- @Throws(BluePrintException::class)
- fun getResourceDefinition(resourceDefinitionName: String): ResourceDefinition
-}
-
-@Service
-open class BluePrintRepoFileService(private val modelTypeRepository: ModelTypeRepository,
- private val resourceDictionaryRepository: ResourceDictionaryRepository) : ResourceDefinitionRepoService {
-
- @Throws(BluePrintException::class)
- override fun getNodeType(nodeTypeName: String): NodeType {
- return getModelType(nodeTypeName, NodeType::class.java)
- ?: throw BluePrintException("couldn't get NodeType($nodeTypeName)")
- }
-
- @Throws(BluePrintException::class)
- override fun getDataType(dataTypeName: String): DataType {
- return getModelType(dataTypeName, DataType::class.java)
- ?: throw BluePrintException("couldn't get DataType($dataTypeName)")
- }
-
- @Throws(BluePrintException::class)
- override fun getArtifactType(artifactTypeName: String): ArtifactType {
- return getModelType(artifactTypeName, ArtifactType::class.java)
- ?: throw BluePrintException("couldn't get ArtifactType($artifactTypeName)")
- }
-
- @Throws(BluePrintException::class)
- override fun getRelationshipType(relationshipTypeName: String): RelationshipType {
- return getModelType(relationshipTypeName, RelationshipType::class.java)
- ?: throw BluePrintException("couldn't get RelationshipType($relationshipTypeName)")
- }
-
- @Throws(BluePrintException::class)
- override fun getCapabilityDefinition(capabilityDefinitionName: String): CapabilityDefinition {
- return getModelType(capabilityDefinitionName, CapabilityDefinition::class.java)
- ?: throw BluePrintException("couldn't get CapabilityDefinition($capabilityDefinitionName)")
- }
-
- @Throws(BluePrintException::class)
- override fun getResourceDefinition(resourceDefinitionName: String): ResourceDefinition {
- val dbResourceDictionary = resourceDictionaryRepository.findByName(resourceDefinitionName)
- return if (dbResourceDictionary != null) {
- dbResourceDictionary.definition
- } else {
- throw BluePrintException(String.format("failed to get resource dictionary (%s) from repo", resourceDefinitionName))
- }
- }
-
- @Throws(BluePrintException::class)
- private fun <T> getModelType(modelName: String, valueClass: Class<T>): T? {
- Preconditions.checkArgument(StringUtils.isNotBlank(modelName),
- "Failed to get model from repo, model name is missing")
-
- val modelDefinition = getModelDefinition(modelName)
- Preconditions.checkNotNull(modelDefinition,
- String.format("Failed to get model content for model name (%s)", modelName))
-
- return JacksonUtils.readValue(modelDefinition, valueClass)
- }
-
- @Throws(BluePrintException::class)
- private fun getModelDefinition(modelName: String): JsonNode {
- val modelDefinition: JsonNode
- val modelTypeDb = modelTypeRepository.findByModelName(modelName)
- if (modelTypeDb != null) {
- modelDefinition = modelTypeDb.definition
- } else {
- throw BluePrintException(String.format("failed to get model definition (%s) from repo", modelName))
- }
- return modelDefinition
- }
-} \ No newline at end of file
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ControllerBlueprintExceptionHandler.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ControllerBlueprintExceptionHandler.kt
deleted file mode 100644
index 4537dbb9d..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ControllerBlueprintExceptionHandler.kt
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright © 2018-2019 Bell Canada 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.controller
-
-import org.springframework.web.bind.annotation.RestControllerAdvice
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.core.data.ErrorCode
-import org.onap.ccsdk.cds.controllerblueprints.service.common.ErrorMessage
-import org.slf4j.LoggerFactory
-import org.springframework.http.HttpStatus
-import org.springframework.http.ResponseEntity
-import org.springframework.web.bind.annotation.ExceptionHandler
-
-/**
- * ControllerBlueprintExceptionHandler Purpose: Handle exceptions in controllerBlueprint API and provide the right
- * HTTP code status
- *
- * @author Vinal Patel
- * @version 1.0
- */
-@RestControllerAdvice("org.onap.ccsdk.cds.controllerblueprints")
-open class ControllerBlueprintExceptionHandler {
-
- companion object ControllerBlueprintExceptionHandler {
- val LOG = LoggerFactory.getLogger(ControllerBlueprintExceptionHandler::class.java)
- }
-
- @ExceptionHandler
- fun ControllerBlueprintExceptionHandler(e: BluePrintException): ResponseEntity<ErrorMessage> {
- var errorCode = ErrorCode.valueOf(e.code)
- val errorMessage = ErrorMessage(errorCode?.message(e.message!!), errorCode?.value, "ControllerBluePrint_Error_Message")
- LOG.error("Error: $errorCode ${e.message}")
- return ResponseEntity(errorMessage, HttpStatus.resolve(errorCode!!.httpCode))
- }
-
- @ExceptionHandler
- fun ControllerBlueprintExceptionHandler(e: Exception): ResponseEntity<ErrorMessage> {
- var errorCode = ErrorCode.GENERIC_FAILURE
- val errorMessage = ErrorMessage(errorCode?.message(e.message!!), errorCode?.value, "ControllerBluePrint_Error_Message")
- LOG.error("Error: $errorCode ${e.message}")
- return ResponseEntity(errorMessage, HttpStatus.resolve(errorCode!!.httpCode))
- }
-}
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ModelTypeController.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ModelTypeController.kt
deleted file mode 100644
index 341d63bf0..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ModelTypeController.kt
+++ /dev/null
@@ -1,58 +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.controller
-
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ModelType
-import org.onap.ccsdk.cds.controllerblueprints.service.handler.ModelTypeHandler
-import kotlinx.coroutines.runBlocking
-import org.springframework.http.MediaType
-import org.springframework.web.bind.annotation.*
-
-@RestController
-@RequestMapping(value = arrayOf("/api/v1/model-type"))
-open class ModelTypeController(private val modelTypeHandler: ModelTypeHandler) {
-
- @GetMapping(path = arrayOf("/{name}"), produces = arrayOf(MediaType.APPLICATION_JSON_VALUE))
- fun getModelTypeByName(@PathVariable(value = "name") name: String): ModelType? = runBlocking {
- modelTypeHandler.getModelTypeByName(name)
- }
-
- @GetMapping(path = arrayOf("/search/{tags}"), produces = arrayOf(MediaType.APPLICATION_JSON_VALUE))
- fun searchModelTypes(@PathVariable(value = "tags") tags: String): List<ModelType> = runBlocking {
- modelTypeHandler.searchModelTypes(tags)
- }
-
- @GetMapping(path = arrayOf("/by-definition/{definitionType}"), produces = arrayOf(MediaType.APPLICATION_JSON_VALUE))
- @ResponseBody
- fun getModelTypeByDefinitionType(@PathVariable(value = "definitionType") definitionType: String): List<ModelType> = runBlocking {
- modelTypeHandler.getModelTypeByDefinitionType(definitionType)
- }
-
- @PostMapping(path = arrayOf(""), produces = arrayOf(MediaType.APPLICATION_JSON_VALUE), consumes = arrayOf(MediaType.APPLICATION_JSON_VALUE))
- @ResponseBody
- @Throws(BluePrintException::class)
- fun saveModelType(@RequestBody modelType: ModelType): ModelType = runBlocking {
- modelTypeHandler.saveModel(modelType)
- }
-
- @DeleteMapping(path = arrayOf("/{name}"))
- fun deleteModelTypeByName(@PathVariable(value = "name") name: String) = runBlocking {
- modelTypeHandler.deleteByModelName(name)
- }
-} \ No newline at end of file
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ResourceDictionaryController.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ResourceDictionaryController.kt
deleted file mode 100644
index d728fc229..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/controller/ResourceDictionaryController.kt
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.controller
-
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceSourceMapping
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ResourceDictionary
-import org.onap.ccsdk.cds.controllerblueprints.service.handler.ResourceDictionaryHandler
-import kotlinx.coroutines.runBlocking
-import org.springframework.http.MediaType
-import org.springframework.web.bind.annotation.*
-
-@RestController
-@RequestMapping(value = ["/api/v1/dictionary"])
-open class ResourceDictionaryController(private val resourceDictionaryHandler: ResourceDictionaryHandler) {
-
- @GetMapping(path = ["/{name}"], produces = [MediaType.APPLICATION_JSON_VALUE])
- @ResponseBody
- @Throws(BluePrintException::class)
- fun getResourceDictionaryByName(@PathVariable(value = "name") name: String): ResourceDictionary = runBlocking {
- resourceDictionaryHandler.getResourceDictionaryByName(name)
- }
-
- @PostMapping(path = [""], produces = [MediaType.APPLICATION_JSON_VALUE], consumes = [MediaType.APPLICATION_JSON_VALUE])
- @ResponseBody
- @Throws(BluePrintException::class)
- fun saveResourceDictionary(@RequestBody dataDictionary: ResourceDictionary): ResourceDictionary = runBlocking {
- resourceDictionaryHandler.saveResourceDictionary(dataDictionary)
- }
-
- @DeleteMapping(path = ["/{name}"])
- fun deleteResourceDictionaryByName(@PathVariable(value = "name") name: String) = runBlocking {
- resourceDictionaryHandler.deleteResourceDictionary(name)
- }
-
- @PostMapping(path = ["/by-names"], produces = [MediaType.APPLICATION_JSON_VALUE], consumes = [MediaType.APPLICATION_JSON_VALUE])
- @ResponseBody
- fun searchResourceDictionaryByNames(@RequestBody names: List<String>): List<ResourceDictionary> = runBlocking {
- resourceDictionaryHandler.searchResourceDictionaryByNames(names)
- }
-
- @GetMapping(path = ["/search/{tags}"], produces = [MediaType.APPLICATION_JSON_VALUE])
- @ResponseBody
- fun searchResourceDictionaryByTags(@PathVariable(value = "tags") tags: String): List<ResourceDictionary> = runBlocking {
- resourceDictionaryHandler.searchResourceDictionaryByTags(tags)
-
- }
-
- @GetMapping(path = ["/source-mapping"], produces = [MediaType.APPLICATION_JSON_VALUE])
- @ResponseBody
- fun getResourceSourceMapping(): ResourceSourceMapping = runBlocking {
- resourceDictionaryHandler.getResourceSourceMapping()
- }
-
-}
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ModelTypeHandler.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ModelTypeHandler.kt
deleted file mode 100644
index d68fdd025..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ModelTypeHandler.kt
+++ /dev/null
@@ -1,122 +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.handler
-
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ModelType
-import org.onap.ccsdk.cds.controllerblueprints.service.repository.ModelTypeRepository
-import org.onap.ccsdk.cds.controllerblueprints.service.validator.ModelTypeValidator
-import org.slf4j.LoggerFactory
-import org.springframework.stereotype.Service
-
-@Service
-open class ModelTypeHandler(private val modelTypeRepository: ModelTypeRepository) {
-
- private val log = LoggerFactory.getLogger(ModelTypeHandler::class.java)!!
-
- /**
- * This is a getModelTypeByName service
- *
- * @param modelTypeName modelTypeName
- * @return ModelType
- */
- suspend fun getModelTypeByName(modelTypeName: String): ModelType {
- log.info("Searching : $modelTypeName")
- check(modelTypeName.isNotBlank()) { "Model Name Information is missing." }
- val modelType = modelTypeRepository.findByModelName(modelTypeName)
- return if (modelType != null) {
- modelType
- } else {
- throw BluePrintException("couldn't get modelType($modelTypeName)")
- }
- }
-
-
- /**
- * This is a searchModelTypes service
- *
- * @param tags tags
- * @return List<ModelType>
- </ModelType> */
- suspend fun searchModelTypes(tags: String): List<ModelType> {
- check(tags.isNotBlank()) { "No Search Information provide" }
- return modelTypeRepository.findByTagsContainingIgnoreCase(tags)
- }
-
- /**
- * This is a saveModel service
- *
- * @param modelType modelType
- * @return ModelType
- * @throws BluePrintException BluePrintException
- */
- @Throws(BluePrintException::class)
- suspend open fun saveModel(modelType: ModelType): ModelType {
- lateinit var dbModel: ModelType
- ModelTypeValidator.validateModelType(modelType)
- val dbModelType: ModelType? = modelTypeRepository.findByModelName(modelType.modelName)
- if (dbModelType != null) {
- dbModel = dbModelType
- dbModel.description = modelType.description
- dbModel.definition = modelType.definition
- dbModel.definitionType = modelType.definitionType
- dbModel.derivedFrom = modelType.derivedFrom
- dbModel.tags = modelType.tags
- dbModel.version = modelType.version
- dbModel.updatedBy = modelType.updatedBy
- dbModel = modelTypeRepository.save(dbModel)
- } else {
- dbModel = modelTypeRepository.save(modelType)
- }
- return dbModel
- }
-
-
- /**
- * This is a deleteByModelName service
- *
- * @param modelName modelName
- */
- suspend open fun deleteByModelName(modelName: String) {
- check(modelName.isNotBlank()) { "Model Name Information is missing." }
- modelTypeRepository.deleteByModelName(modelName)
-
- }
-
- /**
- * This is a getModelTypeByDefinitionType service
- *
- * @param definitionType definitionType
- * @return List<ModelType>
- */
- suspend fun getModelTypeByDefinitionType(definitionType: String): List<ModelType> {
- check(definitionType.isNotBlank()) { "Model definitionType Information is missing." }
- return modelTypeRepository.findByDefinitionType(definitionType)
- }
-
- /**
- * This is a getModelTypeByDerivedFrom service
- *
- * @param derivedFrom derivedFrom
- * @return List<ModelType>
- */
- suspend fun getModelTypeByDerivedFrom(derivedFrom: String): List<ModelType> {
- check(derivedFrom.isNotBlank()) { "Model derivedFrom Information is missing." }
- return modelTypeRepository.findByDerivedFrom(derivedFrom)
- }
-} \ No newline at end of file
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ResourceDictionaryHandler.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ResourceDictionaryHandler.kt
deleted file mode 100644
index e339bcd68..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/handler/ResourceDictionaryHandler.kt
+++ /dev/null
@@ -1,147 +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.handler
-
-import com.google.common.base.Preconditions
-import org.apache.commons.collections.CollectionUtils
-import org.apache.commons.lang3.StringUtils
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.core.checkNotEmpty
-import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceSourceMapping
-import org.onap.ccsdk.cds.controllerblueprints.resource.dict.factory.ResourceSourceMappingFactory
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ResourceDictionary
-import org.onap.ccsdk.cds.controllerblueprints.service.repository.ResourceDictionaryRepository
-import org.springframework.stereotype.Service
-
-@Service
-class ResourceDictionaryHandler(private val resourceDictionaryRepository: ResourceDictionaryRepository) {
-
-
- /**
- * This is a getDataDictionaryByName service
- *
- * @param name name
- * @return DataDictionary
- * @throws BluePrintException BluePrintException
- */
- @Throws(BluePrintException::class)
- suspend fun getResourceDictionaryByName(name: String): ResourceDictionary {
- Preconditions.checkArgument(StringUtils.isNotBlank(name), "Resource dictionary Name Information is missing.")
- val resourceDictionaryDb = resourceDictionaryRepository.findByName(name)
- return if (resourceDictionaryDb != null) {
- resourceDictionaryDb
- } else {
- throw BluePrintException(String.format("couldn't get resource dictionary for name (%s)", name))
- }
- }
-
- /**
- * This is a searchResourceDictionaryByNames service
- *
- * @param names names
- * @return List<ResourceDictionary>
- </ResourceDictionary> */
- suspend fun searchResourceDictionaryByNames(names: List<String>): List<ResourceDictionary> {
- Preconditions.checkArgument(CollectionUtils.isNotEmpty(names), "No Search Information provide")
- return resourceDictionaryRepository.findByNameIn(names)
- }
-
- /**
- * This is a searchResourceDictionaryByTags service
- *
- * @param tags tags
- * @return List<ResourceDictionary>
- </ResourceDictionary> */
- suspend fun searchResourceDictionaryByTags(tags: String): List<ResourceDictionary> {
- Preconditions.checkArgument(StringUtils.isNotBlank(tags), "No search tag information provide")
- return resourceDictionaryRepository.findByTagsContainingIgnoreCase(tags)
- }
-
- /**
- * This is a saveDataDictionary service
- *
- * @param resourceDictionary resourceDictionary
- * @return DataDictionary
- */
- @Throws(BluePrintException::class)
- suspend fun saveResourceDictionary(resourceDictionary: ResourceDictionary): ResourceDictionary {
- var resourceDictionary = resourceDictionary
-
- val resourceDefinition = resourceDictionary.definition
- Preconditions.checkNotNull(resourceDefinition, "failed to get resource definition from content")
- // Validate the Resource Definitions
- //TODO( Save Validator)
- //validate(resourceDefinition)
-
- resourceDictionary.tags = resourceDefinition.tags
- resourceDefinition.updatedBy = resourceDictionary.updatedBy
- // Set the Property Definitions
- val propertyDefinition = resourceDefinition.property
- resourceDictionary.description = propertyDefinition.description
- resourceDictionary.dataType = propertyDefinition.type
- if (propertyDefinition.entrySchema != null) {
- resourceDictionary.entrySchema = propertyDefinition.entrySchema!!.type
- }
-
- validateResourceDictionary(resourceDictionary)
-
- val dbResourceDictionaryData = resourceDictionaryRepository.findByName(resourceDictionary.name)
- if (dbResourceDictionaryData != null) {
- val dbResourceDictionary = dbResourceDictionaryData
-
- dbResourceDictionary.name = resourceDictionary.name
- dbResourceDictionary.definition = resourceDictionary.definition
- dbResourceDictionary.description = resourceDictionary.description
- dbResourceDictionary.tags = resourceDictionary.tags
- dbResourceDictionary.updatedBy = resourceDictionary.updatedBy
- dbResourceDictionary.dataType = resourceDictionary.dataType
- dbResourceDictionary.entrySchema = resourceDictionary.entrySchema
- resourceDictionary = resourceDictionaryRepository.save(dbResourceDictionary)
- } else {
- resourceDictionary = resourceDictionaryRepository.save(resourceDictionary)
- }
-
- return resourceDictionary
- }
-
- /**
- * This is a deleteResourceDictionary service
- *
- * @param name name
- */
- suspend fun deleteResourceDictionary(name: String) {
- check(name.isNotBlank()) { "Resource dictionary name is missing." }
- resourceDictionaryRepository.deleteByName(name)
- }
-
- /**
- * This is a getResourceSourceMapping service
- */
- suspend fun getResourceSourceMapping(): ResourceSourceMapping {
- return ResourceSourceMappingFactory.getRegisterSourceMapping()
- }
-
- private fun validateResourceDictionary(resourceDictionary: ResourceDictionary): Boolean {
- checkNotEmpty(resourceDictionary.name){ "DataDictionary Definition name is missing."}
- checkNotNull(resourceDictionary.definition) { "DataDictionary Definition Information is missing." }
- checkNotEmpty(resourceDictionary.description){ "DataDictionary Definition Information is missing."}
- checkNotEmpty(resourceDictionary.tags){ "DataDictionary Definition tags is missing."}
- checkNotEmpty(resourceDictionary.updatedBy){ "DataDictionary Definition updatedBy is missing."}
- return true
- }
-} \ No newline at end of file
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/BluePrintsReactRepository.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/BluePrintsReactRepository.kt
deleted file mode 100644
index 0041fa7c8..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/BluePrintsReactRepository.kt
+++ /dev/null
@@ -1,76 +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.cds.controllerblueprints.service.repository
-
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ModelType
-import org.springframework.stereotype.Service
-import reactor.core.publisher.Flux
-import reactor.core.publisher.Mono
-import reactor.core.scheduler.Schedulers
-
-/**
- * ModelTypeReactRepository.
- *
- * @author Brinda Santh
- */
-@Service
-open class ModelTypeReactRepository(private val modelTypeRepository: ModelTypeRepository) {
-
- fun save(modelType: ModelType): Mono<ModelType> {
- return Mono.justOrEmpty(modelTypeRepository.save(modelType))
- }
-
- fun findByModelName(modelName: String): Mono<ModelType> {
- return Mono.justOrEmpty(modelTypeRepository.findByModelName(modelName))
- }
-
- fun findByModelNameIn(modelNames: List<String>): Flux<ModelType> {
- return Flux.fromIterable(modelTypeRepository.findByModelNameIn(modelNames))
- .subscribeOn(Schedulers.elastic())
- }
-
- fun findByDerivedFrom(derivedFrom: String): Flux<ModelType> {
- return Flux.fromIterable(modelTypeRepository.findByDerivedFrom(derivedFrom))
- .subscribeOn(Schedulers.elastic())
- }
-
- fun findByDerivedFromIn(derivedFroms: List<String>): Flux<ModelType> {
- return Flux.fromIterable(modelTypeRepository.findByDerivedFromIn(derivedFroms))
- .subscribeOn(Schedulers.elastic())
- }
-
- fun findByDefinitionType(definitionType: String): Flux<ModelType> {
- return Flux.fromIterable(modelTypeRepository.findByDefinitionType(definitionType))
- .subscribeOn(Schedulers.elastic())
- }
-
- fun findByDefinitionTypeIn(definitionTypes: List<String>): Flux<ModelType> {
- return Flux.fromIterable(modelTypeRepository.findByDefinitionTypeIn(definitionTypes))
- .subscribeOn(Schedulers.elastic())
- }
-
- fun findByTagsContainingIgnoreCase(tags: String): Flux<ModelType> {
- return Flux.fromIterable(modelTypeRepository.findByTagsContainingIgnoreCase(tags))
- .subscribeOn(Schedulers.elastic())
- }
-
- fun deleteByModelName(modelName: String): Mono<Void> {
- modelTypeRepository.deleteByModelName(modelName)
- return Mono.empty()
- }
-
-} \ No newline at end of file
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ModelTypeRepository.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ModelTypeRepository.kt
deleted file mode 100644
index 4fefc8144..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ModelTypeRepository.kt
+++ /dev/null
@@ -1,85 +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.repository
-
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ModelType
-import org.springframework.data.jpa.repository.JpaRepository
-import org.springframework.stereotype.Repository
-import javax.transaction.Transactional
-
-@Repository
-interface ModelTypeRepository : JpaRepository<ModelType, String> {
- /**
- * This is a findByModelName method
- *
- * @param modelName Model Name
- * @return Optional<ModelType>
- */
- fun findByModelName(modelName: String): ModelType?
- /**
- * This is a findByModelNameIn method
- *
- * @param modelNames Model Names
- * @return List<ModelType>
- */
- fun findByModelNameIn(modelNames: List<String>): List<ModelType>
- /**
- * This is a findByDerivedFrom method
- *
- * @param derivedFrom Derived From
- * @return List<ModelType>
- */
- fun findByDerivedFrom(derivedFrom: String): List<ModelType>
- /**
- * This is a findByDerivedFromIn method
- *
- * @param derivedFroms Derived Froms
- * @return List<ModelType>
- */
- fun findByDerivedFromIn(derivedFroms: List<String>): List<ModelType>
-
- /**
- * This is a findByDefinitionType method
- *
- * @param definitionType Definition Type
- * @return List<ModelType>
- */
- fun findByDefinitionType(definitionType: String): List<ModelType>
- /**
- * This is a findByDefinitionTypeIn method
- *
- * @param definitionTypes Definition Types
- * @return List<ModelType>
- */
- fun findByDefinitionTypeIn(definitionTypes: List<String>): List<ModelType>
-
- /**
- * This is a findByTagsContainingIgnoreCase method
- *
- * @param tags Tags
- * @return Optional<ModelType>
- */
- fun findByTagsContainingIgnoreCase(tags: String): List<ModelType>
-
- /**
- * This is a deleteByModelName method
- *
- * @param modelName ModelName
- */
- @Transactional
- fun deleteByModelName(modelName: String)
-}
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ResourceDictionaryRepository.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ResourceDictionaryRepository.kt
deleted file mode 100644
index b1b633a10..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/repository/ResourceDictionaryRepository.kt
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.repository
-
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ResourceDictionary
-import org.springframework.data.jpa.repository.JpaRepository
-import org.springframework.stereotype.Repository
-
-
-/**
- * ResourceMappingRepository.java Purpose: Provide Configuration Generator ResourceMappingRepository
- *
- * @author Brinda Santh
- * @version 1.0
- */
-@Repository
-interface ResourceDictionaryRepository : JpaRepository<ResourceDictionary, String> {
-
-
- /**
- * This is a findByName method
- *
- * @param name name
- * @return Optional<ResourceMapping>
- </ResourceMapping> */
- fun findByName(name: String): ResourceDictionary?
-
- /**
- * This is a findByNameIn method
- *
- * @param names names
- * @return Optional<ResourceMapping>
- </ResourceMapping> */
- fun findByNameIn(names: List<String>): List<ResourceDictionary>
-
- /**
- * This is a findByTagsContainingIgnoreCase method
- *
- * @param tags tags
- * @return Optional<ModelType>
- </ModelType> */
- fun findByTagsContainingIgnoreCase(tags: String): List<ResourceDictionary>
-
- /**
- * This is a deleteByName method
- *
- * @param name name
- */
- fun deleteByName(name: String)
-
-
-}
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/utils/BluePrintEnhancerUtils.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/utils/BluePrintEnhancerUtils.kt
deleted file mode 100644
index 97b9a813a..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/utils/BluePrintEnhancerUtils.kt
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright © 2017-2018 AT&T Intellectual Property.
- * Modifications Copyright © 2019 Bell Canada.
- * 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.utils
-
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.reactive.awaitSingle
-import kotlinx.coroutines.withContext
-import org.onap.ccsdk.cds.controllerblueprints.core.*
-import org.onap.ccsdk.cds.controllerblueprints.core.data.*
-import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintRepoService
-import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintArchiveUtils
-import org.springframework.core.io.ByteArrayResource
-import org.springframework.core.io.Resource
-import org.springframework.http.HttpHeaders
-import org.springframework.http.MediaType
-import org.springframework.http.ResponseEntity
-import org.springframework.http.codec.multipart.FilePart
-import org.springframework.util.StringUtils
-import reactor.core.publisher.Mono
-import java.io.File
-import java.io.IOException
-import java.nio.file.Path
-import java.nio.file.Paths
-import java.util.*
-
-
-class BluePrintEnhancerUtils {
- companion object {
-
- fun populateDataTypes(bluePrintContext: BluePrintContext, bluePrintRepoService: BluePrintRepoService,
- dataTypeName: String): DataType {
- val dataType = bluePrintContext.serviceTemplate.dataTypes?.get(dataTypeName)
- ?: bluePrintRepoService.getDataType(dataTypeName)
- ?: throw BluePrintException("couldn't get DataType($dataTypeName) from repo.")
- bluePrintContext.serviceTemplate.dataTypes?.put(dataTypeName, dataType)
- return dataType
- }
-
- fun populateRelationshipType(bluePrintContext: BluePrintContext, bluePrintRepoService: BluePrintRepoService,
- relationshipName: String): RelationshipType {
-
- val relationshipType = bluePrintContext.serviceTemplate.relationshipTypes?.get(relationshipName)
- ?: bluePrintRepoService.getRelationshipType(relationshipName)
- ?: throw BluePrintException("couldn't get RelationshipType($relationshipName) from repo.")
- bluePrintContext.serviceTemplate.relationshipTypes?.put(relationshipName, relationshipType)
- return relationshipType
- }
-
-
- fun populateNodeType(bluePrintContext: BluePrintContext, bluePrintRepoService: BluePrintRepoService,
- nodeTypeName: String): NodeType {
-
- val nodeType = bluePrintContext.serviceTemplate.nodeTypes?.get(nodeTypeName)
- ?: bluePrintRepoService.getNodeType(nodeTypeName)
- ?: throw BluePrintException("couldn't get NodeType($nodeTypeName) from repo.")
- bluePrintContext.serviceTemplate.nodeTypes?.put(nodeTypeName, nodeType)
- return nodeType
- }
-
- fun populateArtifactType(bluePrintContext: BluePrintContext, bluePrintRepoService: BluePrintRepoService,
- artifactTypeName: String): ArtifactType {
-
- val artifactType = bluePrintContext.serviceTemplate.artifactTypes?.get(artifactTypeName)
- ?: bluePrintRepoService.getArtifactType(artifactTypeName)
- ?: throw BluePrintException("couldn't get ArtifactType($artifactTypeName) from repo.")
- bluePrintContext.serviceTemplate.artifactTypes?.put(artifactTypeName, artifactType)
- return artifactType
- }
-
- suspend fun copyFromFilePart(filePart: FilePart, targetFile: File): File {
- // Delete the Directory
- targetFile.deleteRecursively()
- return filePart.transferTo(targetFile)
- .thenReturn(targetFile)
- .awaitSingle()
- }
-
- suspend fun extractCompressFilePart(filePart: FilePart, archiveDir: String, enhanceDir: String): File {
- //Recreate the Base Directories
- normalizedFile(archiveDir).reCreateDirs()
- normalizedFile(enhanceDir).reCreateDirs()
- val filePartFile = normalizedFile(archiveDir, "cba.zip")
- // Copy the File Part to ZIP
- return copyFromFilePart(filePart, filePartFile)
- }
-
- suspend fun decompressFilePart(filePart: FilePart, archiveDir: String, enhanceDir: String): File {
- val filePartFile = extractCompressFilePart(filePart, archiveDir, enhanceDir)
- val deCompressFileName = normalizedPathName(enhanceDir)
- return filePartFile.deCompress(deCompressFileName)
- }
-
- suspend fun compressToFilePart(enhanceDir: String, archiveDir: String,
- outputFileName:String="enhanced-cba.zip"): ResponseEntity<Resource> {
- val compressedFile = normalizedFile(archiveDir, outputFileName)
- BluePrintArchiveUtils.compress(Paths.get(enhanceDir).toFile(), compressedFile)
- return prepareResourceEntity(compressedFile.name, compressedFile.readBytes())
- }
-
- suspend fun prepareResourceEntity(fileName: String, file: ByteArray): ResponseEntity<Resource> {
- return ResponseEntity.ok()
- .contentType(MediaType.parseMediaType("text/plain"))
- .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"$fileName\"")
- .body(ByteArrayResource(file))
- }
-
- suspend fun cleanEnhancer(archiveLocation: String, enhancementLocation: String) = withContext(Dispatchers.Default) {
- deleteDir(archiveLocation)
- deleteDir(enhancementLocation)
- }
-
- /**
- * This is a saveCBAFile method
- * take a [FilePart], transfer it to disk using a Flux of FilePart and return a [Mono] representing the CBA file name
- *
- * @param (filePart, targetDirectory) - the request part containing the file to be saved and the default directory where to save
- * @return a [Mono] String representing the result of the operation
- * @throws (BluePrintException, IOException) BluePrintException, IOException
- */
- @Throws(BluePrintException::class, IOException::class)
- fun saveCBAFile(filePart: FilePart, targetDirectory: Path): Mono<String> {
-
- // Normalize file name
- val fileName = StringUtils.cleanPath(filePart.filename())
-
- // Check if the file's extension is "CBA"
- if (StringUtils.getFilenameExtension(fileName) != "zip") {
- throw BluePrintException(ErrorCode.INVALID_FILE_EXTENSION.value, "Invalid file extension required ZIP")
- }
-
- // Change file name to match a pattern
- val changedFileName = UUID.randomUUID().toString() + ".zip"
- //String changedFileName = BluePrintFileUtils.Companion.getCBAGeneratedFileName(fileName, this.CBA_FILE_NAME_PATTERN);
-
- // Copy file to the target location (Replacing existing file with the same name)
- val targetLocation = targetDirectory.resolve(changedFileName)
-
- // if a file with the same name already exists in a repository, delete and recreate it
- val file = File(targetLocation.toString())
- if (file.exists())
- file.delete()
- file.createNewFile()
-
- return filePart.transferTo(file).thenReturn(changedFileName)
- }
- }
-}
diff --git a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/validator/ModelTypeValidator.kt b/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/validator/ModelTypeValidator.kt
deleted file mode 100644
index 9bfb29c23..000000000
--- a/ms/controllerblueprints/modules/service/src/main/kotlin/org/onap/ccsdk/cds/controllerblueprints/service/validator/ModelTypeValidator.kt
+++ /dev/null
@@ -1,83 +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.validator
-
-import com.fasterxml.jackson.databind.JsonNode
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintException
-import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintTypes
-import org.onap.ccsdk.cds.controllerblueprints.core.data.*
-import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
-import org.onap.ccsdk.cds.controllerblueprints.service.domain.ModelType
-
-class ModelTypeValidator {
- companion object {
- /**
- * This is a validateModelTypeDefinition
- *
- * @param definitionType definitionType
- * @param definitionContent definitionContent
- * @return boolean
- */
- fun validateModelTypeDefinition(definitionType: String, definitionContent: JsonNode): Boolean {
-
- when (definitionType) {
- BluePrintConstants.MODEL_DEFINITION_TYPE_DATA_TYPE -> {
- JacksonUtils.readValue(definitionContent, DataType::class.java)
- ?: throw BluePrintException("Model type definition is not DataType valid content $definitionContent")
- }
- BluePrintConstants.MODEL_DEFINITION_TYPE_NODE_TYPE -> {
- JacksonUtils.readValue(definitionContent, NodeType::class.java)
- ?: throw BluePrintException("Model type definition is not NodeType valid content $definitionContent")
- }
- BluePrintConstants.MODEL_DEFINITION_TYPE_ARTIFACT_TYPE -> {
- JacksonUtils.readValue(definitionContent, ArtifactType::class.java)
- ?: throw BluePrintException("Model type definition is not ArtifactType valid content $definitionContent")
- }
- BluePrintConstants.MODEL_DEFINITION_TYPE_CAPABILITY_TYPE -> {
- JacksonUtils.readValue(definitionContent, CapabilityDefinition::class.java)
- ?: throw BluePrintException("Model type definition is not CapabilityDefinition valid content $definitionContent")
- }
- BluePrintConstants.MODEL_DEFINITION_TYPE_RELATIONSHIP_TYPE -> {
- JacksonUtils.readValue(definitionContent, RelationshipType::class.java)
- ?: throw BluePrintException("Model type definition is not RelationshipType valid content $definitionContent")
- }
- }
- return true
- }
-
- /**
- * This is a validateModelType method
- *
- * @param modelType modelType
- * @return boolean
- */
- fun validateModelType(modelType: ModelType?): Boolean {
- checkNotNull(modelType) { "Model Type Information is missing." }
-
- val validRootTypes = BluePrintTypes.validModelTypes()
-
- check(validRootTypes.contains(modelType.definitionType)) {
- "Not Valid Model Root Type(${modelType.definitionType}), It should be $validRootTypes"
- }
-
- validateModelTypeDefinition(modelType.definitionType, modelType.definition)
- return true
- }
- }
-
-}