0b42a26ee203c5472af77e6df477958789e8cf06
[ccsdk/cds.git] /
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * Modifications Copyright © 2018 IBM.\r
4  *\r
5  * Licensed under the Apache License, Version 2.0 (the "License");\r
6  * you may not use this file except in compliance with the License.\r
7  * You may obtain a copy of the License at\r
8  *\r
9  *     http://www.apache.org/licenses/LICENSE-2.0\r
10  *\r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an "AS IS" BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 \r
18 package org.onap.ccsdk.apps.controllerblueprints.service.enhancer\r
19 \r
20 import com.att.eelf.configuration.EELFLogger\r
21 import com.att.eelf.configuration.EELFManager\r
22 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException\r
23 import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintEnhancerService\r
24 import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintRepoService\r
25 import org.onap.ccsdk.apps.controllerblueprints.core.interfaces.BluePrintTypeEnhancerService\r
26 import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintContext\r
27 import org.onap.ccsdk.apps.controllerblueprints.core.utils.BluePrintFileUtils\r
28 import org.onap.ccsdk.apps.controllerblueprints.core.utils.BluePrintMetadataUtils\r
29 import org.springframework.stereotype.Service\r
30 import java.util.*\r
31 \r
32 @Service\r
33 open class BluePrintEnhancerServiceImpl(private val bluePrintRepoService: BluePrintRepoService,\r
34                                         private val bluePrintTypeEnhancerService: BluePrintTypeEnhancerService) : BluePrintEnhancerService {\r
35 \r
36     private val log: EELFLogger = EELFManager.getInstance().getLogger(BluePrintEnhancerServiceImpl::class.toString())\r
37 \r
38     override fun enhance(basePath: String, enrichedBasePath: String): BluePrintContext {\r
39         // Copy the Blueprint Content to Target Location\r
40         BluePrintFileUtils.copyBluePrint(basePath, enrichedBasePath)\r
41 \r
42         // Enhance the Blueprint\r
43         val enhancedBluePrintContext = enhance(enrichedBasePath)\r
44 \r
45         // Delete the Old Type files\r
46         BluePrintFileUtils.deleteBluePrintTypes(enrichedBasePath)\r
47 \r
48         // Write the Type File Definitions\r
49         BluePrintFileUtils.writeBluePrintTypes(enhancedBluePrintContext)\r
50         return enhancedBluePrintContext\r
51     }\r
52 \r
53     @Throws(BluePrintException::class)\r
54     override fun enhance(basePath: String): BluePrintContext {\r
55         log.info("Enhancing blueprint($basePath)")\r
56         val blueprintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime(UUID.randomUUID().toString(), basePath)\r
57         try {\r
58 \r
59             bluePrintTypeEnhancerService.enhanceServiceTemplate(blueprintRuntimeService, "service_template",\r
60                     blueprintRuntimeService.bluePrintContext().serviceTemplate)\r
61 \r
62             if (blueprintRuntimeService.getBluePrintError().errors.isNotEmpty()) {\r
63                 throw BluePrintException(blueprintRuntimeService.getBluePrintError().errors.toString())\r
64             }\r
65         } catch (e: Exception) {\r
66             log.error("failed in blueprint enhancement", e)\r
67         }\r
68 \r
69         return blueprintRuntimeService.bluePrintContext()\r
70     }\r
71 \r
72 }\r
73 \r