89f4d9e387e0d0fa827a299c0b8024c7ead4b230
[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.service.validator
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.BluePrintRepoService
23 import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintTypeValidatorService
24 import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintValidatorService
25 import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintRuntimeService
26 import org.onap.ccsdk.apps.controllerblueprints.core.utils.BluePrintMetadataUtils
27 import org.onap.ccsdk.apps.controllerblueprints.core.validation.*
28 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.service.ResourceAssignmentValidationServiceImpl
29 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.service.ResourceDefinitionValidationServiceImpl
30 import org.springframework.stereotype.Service
31 import java.util.*
32
33 @Service
34 class BluePrintTypeValidatorDefaultService(private val bluePrintTypeValidatorService: BluePrintTypeValidatorService)
35     : BluePrintValidatorService {
36
37     private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintValidatorServiceImpl::class.toString())
38
39     override fun validateBluePrints(basePath: String): Boolean {
40
41         log.info("validating blueprint($basePath)")
42         val bluePrintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(UUID.randomUUID().toString(), basePath)
43         return validateBluePrints(bluePrintRuntimeService)
44     }
45
46     override fun validateBluePrints(bluePrintRuntimeService: BluePrintRuntimeService<*>): Boolean {
47
48         bluePrintTypeValidatorService.validateServiceTemplate(bluePrintRuntimeService, "service_template",
49                 bluePrintRuntimeService.bluePrintContext().serviceTemplate)
50
51         if (bluePrintRuntimeService.getBluePrintError().errors.size > 0) {
52             throw BluePrintException("failed in blueprint validation : ${bluePrintRuntimeService.getBluePrintError().errors.joinToString("\n")}")
53         }
54         return true
55     }
56 }
57
58 // Core Validator Services
59
60 @Service
61 class DefaultBluePrintServiceTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
62     : BluePrintServiceTemplateValidatorImpl(bluePrintTypeValidatorService)
63
64 @Service
65 class DefaultBluePrintDataTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
66     : BluePrintDataTypeValidatorImpl(bluePrintTypeValidatorService)
67
68 @Service
69 class DefaultBluePrintArtifactTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
70     : BluePrintArtifactTypeValidatorImpl(bluePrintTypeValidatorService)
71
72 @Service
73 class DefaultBluePrintNodeTypeValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
74     : BluePrintNodeTypeValidatorImpl(bluePrintTypeValidatorService)
75
76 @Service
77 class DefaultBluePrintTopologyTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
78     : BluePrintTopologyTemplateValidatorImpl(bluePrintTypeValidatorService)
79
80 @Service
81 class DefaulBluePrintNodeTemplateValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
82     : BluePrintNodeTemplateValidatorImpl(bluePrintTypeValidatorService)
83
84 @Service
85 class DefaultBluePrintWorkflowValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
86     : BluePrintWorkflowValidatorImpl(bluePrintTypeValidatorService)
87
88 @Service
89 class DefaulBluePrintPropertyDefinitionValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
90     : BluePrintPropertyDefinitionValidatorImpl(bluePrintTypeValidatorService)
91
92 @Service
93 class DefaultBluePrintAttributeDefinitionValidator(bluePrintTypeValidatorService: BluePrintTypeValidatorService)
94     : BluePrintAttributeDefinitionValidatorImpl(bluePrintTypeValidatorService)
95
96 // Resource Dictionary Validation Services
97
98 @Service
99 class DefaultResourceAssignmentValidationService : ResourceAssignmentValidationServiceImpl()
100
101 @Service
102 class DefalutResourceDefinitionValidationService(bluePrintRepoService: BluePrintRepoService)
103     : ResourceDefinitionValidationServiceImpl(bluePrintRepoService)