2993b3d35c016e89b6dd59fd275eee9cf3138968
[ccsdk/cds.git] /
1 /*
2  * Copyright © 2017-2018 AT&T Intellectual Property.
3  *
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
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.onap.ccsdk.apps.controllerblueprints.blueprint.validation
18
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
37 import java.util.*
38
39 @Service
40 class BluePrintTypeValidatorDefaultService(private val bluePrintTypeValidatorService: BluePrintTypeValidatorService)
41     : BluePrintValidatorService {
42
43     private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintValidatorServiceImpl::class.toString())
44
45     override fun validateBluePrints(basePath: String): Boolean {
46
47         log.info("validating blueprint($basePath)")
48         val bluePrintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(UUID.randomUUID().toString(), basePath)
49         return validateBluePrints(bluePrintRuntimeService)
50     }
51
52     override fun validateBluePrints(bluePrintRuntimeService: BluePrintRuntimeService<*>): Boolean {
53
54         bluePrintTypeValidatorService.validateServiceTemplate(bluePrintRuntimeService, "service_template",
55                 bluePrintRuntimeService.bluePrintContext().serviceTemplate)
56
57         if (bluePrintRuntimeService.getBluePrintError().errors.size > 0) {
58             throw BluePrintException("failed in blueprint validation : ${bluePrintRuntimeService.getBluePrintError().errors.joinToString("\n")}")
59         }
60         return true
61     }
62 }
63
64 // Core Validator Services
65
66 @Service
67 class DefaultBluePrintServiceTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
68     : BluePrintServiceTemplateValidatorImpl(bluePrintTypeValidatorService)
69
70 @Service
71 class DefaultBluePrintDataTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
72     : BluePrintDataTypeValidatorImpl(bluePrintTypeValidatorService)
73
74 @Service
75 class DefaultBluePrintArtifactTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
76     : BluePrintArtifactTypeValidatorImpl(bluePrintTypeValidatorService)
77
78 @Service
79 class DefaultBluePrintNodeTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
80     : BluePrintNodeTypeValidatorImpl(bluePrintTypeValidatorService)
81
82 @Service
83 class DefaultBluePrintTopologyTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
84     : BluePrintTopologyTemplateValidatorImpl(bluePrintTypeValidatorService)
85
86 @Service
87 class DefaulBluePrintNodeTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
88     : BluePrintNodeTemplateValidatorImpl(bluePrintTypeValidatorService)
89
90 @Service
91 class DefaultBluePrintWorkflowValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
92     : BluePrintWorkflowValidatorImpl(bluePrintTypeValidatorService)
93
94 @Service
95 class DefaulBluePrintPropertyDefinitionValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
96     : BluePrintPropertyDefinitionValidatorImpl(bluePrintTypeValidatorService)
97
98 @Service
99 class DefaultBluePrintAttributeDefinitionValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
100     : BluePrintAttributeDefinitionValidatorImpl(bluePrintTypeValidatorService)