84073ff2e2d8f62b6825d37a55d4caeb23829d1b
[ccsdk/cds.git] /
1 /*
2  * Copyright © 2017-2018 AT&T Intellectual Property.
3  * Modifications Copyright © 2018 IBM.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 package org.onap.ccsdk.apps.controllerblueprints.validation
19
20 import com.att.eelf.configuration.EELFLogger
21 import com.att.eelf.configuration.EELFManager
22 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException
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.springframework.stereotype.Service
28 import java.util.*
29
30
31 @Service
32 open class BluePrintDesignTimeValidatorService(private val bluePrintTypeValidatorService: BluePrintTypeValidatorService) : BluePrintValidatorService {
33
34     private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintDesignTimeValidatorService::class.toString())
35
36     override fun validateBluePrints(basePath: String): Boolean {
37
38         val bluePrintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(UUID.randomUUID().toString(), basePath)
39         return validateBluePrints(bluePrintRuntimeService)
40     }
41
42     override fun validateBluePrints(bluePrintRuntimeService: BluePrintRuntimeService<*>): Boolean {
43
44         bluePrintTypeValidatorService.validateServiceTemplate(bluePrintRuntimeService, "service_template",
45                 bluePrintRuntimeService.bluePrintContext().serviceTemplate)
46         if (bluePrintRuntimeService.getBluePrintError().errors.size > 0) {
47             throw BluePrintException("failed in blueprint validation : ${bluePrintRuntimeService.getBluePrintError().errors.joinToString("\n")}")
48         }
49         return true
50     }
51 }