6bfa9033e198a094db65c859eef9f314b46e7b6f
[ccsdk/features.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.config.params.service;\r
19 \r
20 import java.io.File;\r
21 import java.io.IOException;\r
22 import java.nio.charset.Charset;\r
23 import java.util.HashMap;\r
24 import java.util.Map;\r
25 import org.apache.commons.io.FileUtils;\r
26 import org.apache.commons.lang3.StringUtils;\r
27 import org.onap.ccsdk.config.model.ConfigModelConstant;\r
28 import org.onap.ccsdk.config.model.data.DataType;\r
29 import org.onap.ccsdk.config.model.data.NodeTemplate;\r
30 import org.onap.ccsdk.config.model.data.NodeType;\r
31 import org.onap.ccsdk.config.model.data.ServiceTemplate;\r
32 import org.onap.ccsdk.config.model.data.TopologyTemplate;\r
33 import org.onap.ccsdk.config.model.data.dict.ResourceDefinition;\r
34 import org.onap.ccsdk.config.model.utils.TransformationUtils;\r
35 \r
36 public class ServiceTemplateCreateUtils {\r
37 \r
38     public void createNodeTypes(String serviceTemplateFileName) throws IOException {\r
39         if (StringUtils.isNotBlank(serviceTemplateFileName)) {\r
40             String fileContent =\r
41                     FileUtils.readFileToString(new File(serviceTemplateFileName), Charset.defaultCharset());\r
42             if (StringUtils.isNotBlank(fileContent)) {\r
43                 // System.out.println("NodeTypeCreateUtils.createNodeTypes()" +fileContent );\r
44                 ServiceTemplate serviceTemplate = TransformationUtils.readValue(fileContent, ServiceTemplate.class);\r
45 \r
46                 String formattedServiceTemplateContent = TransformationUtils.getJson(serviceTemplate, true);\r
47 \r
48                 FileUtils.writeStringToFile(new File("src/test/resources/service_templates/_default.json"),\r
49                         formattedServiceTemplateContent, Charset.defaultCharset());\r
50 \r
51                 createNetconfdownloadNodeTemplate(serviceTemplate);\r
52                 createRestconfdownloadNodeTemplate(serviceTemplate);\r
53                 // createResourceAssignmentNodeTemplate(serviceTemplate);\r
54                 createVrrNodeTemplate(serviceTemplate);\r
55                 createDictionarySchema();\r
56 \r
57             }\r
58         }\r
59     }\r
60 \r
61     public void createNodeTypes(ServiceTemplate serviceTemplate) throws IOException {\r
62 \r
63         if (serviceTemplate != null && serviceTemplate.getNodeTypes() != null) {\r
64             serviceTemplate.getNodeTypes().forEach((nodeTypeKey, node_types) -> {\r
65 \r
66                 if (node_types != null && StringUtils.isNotBlank(node_types.getDerivedFrom())) {\r
67 \r
68                     try {\r
69                         String fileName = "src/test/resources/node_types/";\r
70                         if (ConfigModelConstant.MODEL_TYPE_NODE_VNF.equalsIgnoreCase(node_types.getDerivedFrom())) {\r
71                             fileName = fileName + "vnf/" + nodeTypeKey + ".json";\r
72                         }\r
73                         if (ConfigModelConstant.MODEL_TYPE_NODE_DG.equalsIgnoreCase(node_types.getDerivedFrom())) {\r
74                             fileName = fileName + "dg/" + nodeTypeKey + ".json";\r
75                         }\r
76                         if (ConfigModelConstant.MODEL_TYPE_NODE_COMPONENT\r
77                                 .equalsIgnoreCase(node_types.getDerivedFrom())) {\r
78                             fileName = fileName + "component/" + nodeTypeKey + ".json";\r
79                         }\r
80                         String content = TransformationUtils.getJson(node_types, true);\r
81                         FileUtils.write(new File(fileName), content, Charset.defaultCharset());\r
82                     } catch (IOException e) {\r
83                         e.printStackTrace();\r
84                     }\r
85 \r
86                 }\r
87                 System.out.println("NodeTypeCreateUtils.createNodeTypes()" + nodeTypeKey);\r
88             });\r
89         }\r
90 \r
91     }\r
92 \r
93     public void createNetconfdownloadNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
94         if (serviceTemplate != null) {\r
95             ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
96             workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
97 \r
98             Map<String, DataType> data_types = new HashMap<String, DataType>();\r
99             data_types.put("datatype-property", serviceTemplate.getDataTypes().get("datatype-property"));\r
100             data_types.put("datatype-resource-assignment",\r
101                     serviceTemplate.getDataTypes().get("datatype-resource-assignment"));\r
102             workingServiceTemplate.setDataTypes(data_types);\r
103 \r
104             TopologyTemplate topology_template = new TopologyTemplate();\r
105             Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
106 \r
107             Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
108 \r
109             node_templates.put("activate-action", node_Templates.get("activate-action"));\r
110             node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
111             node_templates.put("vrr-netconf-device", node_Templates.get("vrr-netconf-device"));\r
112             node_templates.put("get-netconf-config", node_Templates.get("get-netconf-config"));\r
113             node_templates.put("edit-netconf-config", node_Templates.get("edit-netconf-config"));\r
114             node_templates.put("transaction-netconf-baseconfig", node_Templates.get("transaction-netconf-baseconfig"));\r
115 \r
116             topology_template.setNodeTemplates(node_templates);\r
117             topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
118 \r
119             Map<String, NodeType> node_types = new HashMap<String, NodeType>();\r
120             node_types.put("dg-activate-netconf", serviceTemplate.getNodeTypes().get("dg-activate-netconf"));\r
121             node_types.put("artifact-config-template", serviceTemplate.getNodeTypes().get("artifact-config-template"));\r
122             node_types.put("component-transaction-netconf",\r
123                     serviceTemplate.getNodeTypes().get("component-transaction-netconf"));\r
124             node_types.put("component-netconf-edit", serviceTemplate.getNodeTypes().get("component-netconf-edit"));\r
125             node_types.put("component-netconf-get", serviceTemplate.getNodeTypes().get("component-netconf-get"));\r
126             node_types.put("vnf-netconf-device", serviceTemplate.getNodeTypes().get("vnf-netconf-device"));\r
127 \r
128             workingServiceTemplate.setNodeTypes(node_types);\r
129             workingServiceTemplate.setTopologyTemplate(topology_template);\r
130 \r
131             String workingServiceTemplateContent = TransformationUtils.getJson(workingServiceTemplate, true);\r
132 \r
133             FileUtils.writeStringToFile(new File("src/test/resources/service_templates/download_config.json"),\r
134                     workingServiceTemplateContent, Charset.defaultCharset());\r
135 \r
136             File lcmFile = new File(\r
137                     "../../../adaptors/netconf-adaptor/provider/src/test/resources/service_templates/download_config.json");\r
138             FileUtils.writeStringToFile(lcmFile, workingServiceTemplateContent, Charset.defaultCharset());\r
139 \r
140         }\r
141     }\r
142 \r
143     public void createRestconfdownloadNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
144         if (serviceTemplate != null) {\r
145             ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
146             workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
147 \r
148             Map<String, DataType> data_types = new HashMap<String, DataType>();\r
149             data_types.put("datatype-property", serviceTemplate.getDataTypes().get("datatype-property"));\r
150             data_types.put("datatype-resource-assignment",\r
151                     serviceTemplate.getDataTypes().get("datatype-resource-assignment"));\r
152             workingServiceTemplate.setDataTypes(data_types);\r
153 \r
154             TopologyTemplate topology_template = new TopologyTemplate();\r
155             Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
156 \r
157             Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
158             node_templates.put("activate-restconf-action", node_Templates.get("activate-restconf-action"));\r
159             node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
160             node_templates.put("vrr-restconf-device", node_Templates.get("vrr-restconf-device"));\r
161             node_templates.put("edit-restconf-config", node_Templates.get("edit-restconf-config"));\r
162             node_templates.put("transaction-restconf-baseconfig",\r
163                     node_Templates.get("transaction-restconf-baseconfig"));\r
164 \r
165             topology_template.setNodeTemplates(node_templates);\r
166             topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
167 \r
168             Map<String, NodeType> node_types = new HashMap<String, NodeType>();\r
169             node_types.put("dg-activate-restconf", serviceTemplate.getNodeTypes().get("dg-activate-restconf"));\r
170             node_types.put("artifact-config-template", serviceTemplate.getNodeTypes().get("artifact-config-template"));\r
171             node_types.put("component-transaction-restconf",\r
172                     serviceTemplate.getNodeTypes().get("component-transaction-restconf"));\r
173             node_types.put("component-restconf", serviceTemplate.getNodeTypes().get("component-restconf"));\r
174             node_types.put("vnf-restconf-device", serviceTemplate.getNodeTypes().get("vnf-restconf-device"));\r
175 \r
176             workingServiceTemplate.setNodeTypes(node_types);\r
177             workingServiceTemplate.setTopologyTemplate(topology_template);\r
178 \r
179             String workingServiceTemplateContent = TransformationUtils.getJson(workingServiceTemplate, true);\r
180 \r
181             FileUtils.writeStringToFile(new File("src/test/resources/service_templates/restconf_download_config.json"),\r
182                     workingServiceTemplateContent, Charset.defaultCharset());\r
183 \r
184             File lcmFile = new File(\r
185                     "../../../adaptors/netconf-adaptor/provider/src/test/resources/service_templates/restconf_download_config.json");\r
186             FileUtils.writeStringToFile(lcmFile, workingServiceTemplateContent, Charset.defaultCharset());\r
187 \r
188         }\r
189 \r
190     }\r
191 \r
192     public void createResourceAssignmentNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
193         if (serviceTemplate != null) {\r
194             ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
195             workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
196 \r
197             Map<String, DataType> data_types = new HashMap<String, DataType>();\r
198             data_types.put("datatype-property", serviceTemplate.getDataTypes().get("datatype-property"));\r
199             data_types.put("datatype-resource-assignment",\r
200                     serviceTemplate.getDataTypes().get("datatype-resource-assignment"));\r
201 \r
202             workingServiceTemplate.setDataTypes(data_types);\r
203 \r
204             TopologyTemplate topology_template = new TopologyTemplate();\r
205             Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
206 \r
207             Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
208 \r
209             node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
210             node_templates.put("licence-template", node_Templates.get("licence-template"));\r
211 \r
212             node_templates.put("resource-assignment-action", node_Templates.get("resource-assignment-action"));\r
213             node_templates.put("resource-assignment", node_Templates.get("resource-assignment"));\r
214 \r
215             topology_template.setNodeTemplates(node_templates);\r
216             topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
217 \r
218             Map<String, NodeType> node_types = new HashMap<String, NodeType>();\r
219             node_types.put("artifact-config-template", serviceTemplate.getNodeTypes().get("artifact-config-template"));\r
220             node_types.put("dg-resource-assignment", serviceTemplate.getNodeTypes().get("dg-resource-assignment"));\r
221             node_types.put("component-resource-assignment",\r
222                     serviceTemplate.getNodeTypes().get("component-resource-assignment"));\r
223 \r
224             workingServiceTemplate.setNodeTypes(node_types);\r
225             workingServiceTemplate.setTopologyTemplate(topology_template);\r
226 \r
227             String workingServiceTemplateConmtent = TransformationUtils.getJson(workingServiceTemplate, true);\r
228 \r
229             FileUtils.writeStringToFile(new File("src/test/resources/service_templates/resource_assignment.json"),\r
230                     workingServiceTemplateConmtent, Charset.defaultCharset());\r
231 \r
232             File lcmFile = new File(\r
233                     "../../../northbound/selfservice-api/provider/src/test/resources/service_templates/resource_assignment.json");\r
234             FileUtils.writeStringToFile(lcmFile, workingServiceTemplateConmtent, Charset.defaultCharset());\r
235 \r
236             File resourceAssignmetFile = new File(\r
237                     "../../../plugin/assignment/provider/src/test/resources/service_templates/resource_assignment.json");\r
238             FileUtils.writeStringToFile(resourceAssignmetFile, workingServiceTemplateConmtent,\r
239                     Charset.defaultCharset());\r
240 \r
241             System.out.println("NodeTypeCreateUtils.createNodeTemplate() :" + workingServiceTemplateConmtent);\r
242         }\r
243 \r
244     }\r
245 \r
246     public void createVrrNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
247         if (serviceTemplate != null) {\r
248             ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
249             workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
250 \r
251             TopologyTemplate topology_template = new TopologyTemplate();\r
252             Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
253 \r
254             Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
255 \r
256             node_templates.put("resource-assignment-action", node_Templates.get("resource-assignment-action"));\r
257             node_templates.put("resource-assignment", node_Templates.get("resource-assignment"));\r
258 \r
259             node_templates.put("activate-action", node_Templates.get("activate-action"));\r
260             node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
261             node_templates.put("licence-template", node_Templates.get("licence-template"));\r
262             node_templates.put("vrr-netconf-device", node_Templates.get("vrr-netconf-device"));\r
263             node_templates.put("get-netconf-config", node_Templates.get("get-netconf-config"));\r
264             node_templates.put("edit-netconf-config", node_Templates.get("edit-netconf-config"));\r
265             node_templates.put("transaction-netconf-baseconfig", node_Templates.get("transaction-netconf-baseconfig"));\r
266 \r
267             topology_template.setNodeTemplates(node_templates);\r
268             topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
269 \r
270             workingServiceTemplate.setTopologyTemplate(topology_template);\r
271 \r
272             String workingServiceTemplateContent = TransformationUtils.getJson(workingServiceTemplate, true);\r
273 \r
274             FileUtils.writeStringToFile(new File("src/test/resources/service_templates/vrr_config.json"),\r
275                     workingServiceTemplateContent, Charset.defaultCharset());\r
276 \r
277         }\r
278     }\r
279 \r
280     public void createDictionarySchema() throws IOException {\r
281         String schema = TransformationUtils.getJsonSchema(ResourceDefinition.class);\r
282         FileUtils.writeStringToFile(new File("src/test/resources/dictionary/dictionary_schema.json"), schema,\r
283                 Charset.defaultCharset());\r
284     }\r
285 \r
286     public static void main(String[] args) {\r
287         try {\r
288             ServiceTemplateCreateUtils utils = new ServiceTemplateCreateUtils();\r
289             utils.createNodeTypes("src/test/resources/service_templates/default.json");\r
290         } catch (Exception e) {\r
291             // TODO: handle exception\r
292         }\r
293     }\r
294 \r
295 }\r