2  * Copyright © 2017-2018 AT&T Intellectual Property.
 
   4  * Licensed under the Apache License, Version 2.0 (the "License");
 
   5  * you may not use this file except in compliance with the License.
 
   6  * You may obtain a copy of the License at
 
   8  *     http://www.apache.org/licenses/LICENSE-2.0
 
  10  * Unless required by applicable law or agreed to in writing, software
 
  11  * distributed under the License is distributed on an "AS IS" BASIS,
 
  12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  13  * See the License for the specific language governing permissions and
 
  14  * limitations under the License.
 
  17 package org.onap.ccsdk.apps.controllerblueprints.blueprint.validation
 
  19 import com.att.eelf.configuration.EELFLogger
 
  20 import com.att.eelf.configuration.EELFManager
 
  21 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
 
  22 import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintTypeValidatorService
 
  23 import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintValidatorService
 
  24 import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRuntimeService
 
  25 import org.onap.ccsdk.apps.controllerblueprints.core.utils.BluePrintMetadataUtils
 
  26 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintArtifactTypeValidatorImpl
 
  27 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintAttributeDefinitionValidatorImpl
 
  28 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintDataTypeValidatorImpl
 
  29 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintNodeTemplateValidatorImpl
 
  30 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintNodeTypeValidatorImpl
 
  31 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintPropertyDefinitionValidatorImpl
 
  32 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintServiceTemplateValidatorImpl
 
  33 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintTopologyTemplateValidatorImpl
 
  34 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintValidatorServiceImpl
 
  35 import org.onap.ccsdk.apps.controllerblueprints.core.validation.BluePrintWorkflowValidatorImpl
 
  36 import org.springframework.stereotype.Service
 
  40 class BluePrintTypeValidatorDefaultService(private val bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  41     : BluePrintValidatorService {
 
  43     private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintValidatorServiceImpl::class.toString())
 
  45     override fun validateBluePrints(basePath: String): Boolean {
 
  47         log.info("validating blueprint($basePath)")
 
  48         val bluePrintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(UUID.randomUUID().toString(), basePath)
 
  49         return validateBluePrints(bluePrintRuntimeService)
 
  52     override fun validateBluePrints(bluePrintRuntimeService: BluePrintRuntimeService<*>): Boolean {
 
  54         bluePrintTypeValidatorService.validateServiceTemplate(bluePrintRuntimeService, "service_template",
 
  55                 bluePrintRuntimeService.bluePrintContext().serviceTemplate)
 
  57         if (bluePrintRuntimeService.getBluePrintError().errors.size > 0) {
 
  58             throw BluePrintException("failed in blueprint validation : ${bluePrintRuntimeService.getBluePrintError().errors.joinToString("\n")}")
 
  64 // Core Validator Services
 
  67 class DefaultBluePrintServiceTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  68     : BluePrintServiceTemplateValidatorImpl(bluePrintTypeValidatorService)
 
  71 class DefaultBluePrintDataTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  72     : BluePrintDataTypeValidatorImpl(bluePrintTypeValidatorService)
 
  75 class DefaultBluePrintArtifactTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  76     : BluePrintArtifactTypeValidatorImpl(bluePrintTypeValidatorService)
 
  79 class DefaultBluePrintNodeTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  80     : BluePrintNodeTypeValidatorImpl(bluePrintTypeValidatorService)
 
  83 class DefaultBluePrintTopologyTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  84     : BluePrintTopologyTemplateValidatorImpl(bluePrintTypeValidatorService)
 
  87 class DefaulBluePrintNodeTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  88     : BluePrintNodeTemplateValidatorImpl(bluePrintTypeValidatorService)
 
  91 class DefaultBluePrintWorkflowValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  92     : BluePrintWorkflowValidatorImpl(bluePrintTypeValidatorService)
 
  95 class DefaulBluePrintPropertyDefinitionValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
  96     : BluePrintPropertyDefinitionValidatorImpl(bluePrintTypeValidatorService)
 
  99 class DefaultBluePrintAttributeDefinitionValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
 
 100     : BluePrintAttributeDefinitionValidatorImpl(bluePrintTypeValidatorService)