Controller Blueprints Nitrogen to Oxygen Migration
[ccsdk/features.git] / blueprints-processor / plugin / model-provider / src / test / java / org / onap / ccsdk / features / params / service / ServiceTemplateCreateUtils.java
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.features.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.features.model.ConfigModelConstant;\r
28 import org.onap.ccsdk.features.model.data.DataType;\r
29 import org.onap.ccsdk.features.model.data.NodeTemplate;\r
30 import org.onap.ccsdk.features.model.data.NodeType;\r
31 import org.onap.ccsdk.features.model.data.ServiceTemplate;\r
32 import org.onap.ccsdk.features.model.data.TopologyTemplate;\r
33 import org.onap.ccsdk.features.model.data.dict.ResourceDefinition;\r
34 import org.onap.ccsdk.features.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                 createVrrNodeTemplate(serviceTemplate);\r
52                 createDictionarySchema();\r
53 \r
54             }\r
55         }\r
56     }\r
57 \r
58     public void createNodeTypes(ServiceTemplate serviceTemplate) throws IOException {\r
59 \r
60         if (serviceTemplate != null && serviceTemplate.getNodeTypes() != null) {\r
61             serviceTemplate.getNodeTypes().forEach((nodeTypeKey, node_types) -> {\r
62 \r
63                 if (node_types != null && StringUtils.isNotBlank(node_types.getDerivedFrom())) {\r
64 \r
65                     try {\r
66                         String fileName = "src/test/resources/node_types/";\r
67                         if (ConfigModelConstant.MODEL_TYPE_NODE_VNF.equalsIgnoreCase(node_types.getDerivedFrom())) {\r
68                             fileName = fileName + "vnf/" + nodeTypeKey + ".json";\r
69                         }\r
70                         if (ConfigModelConstant.MODEL_TYPE_NODE_DG.equalsIgnoreCase(node_types.getDerivedFrom())) {\r
71                             fileName = fileName + "dg/" + nodeTypeKey + ".json";\r
72                         }\r
73                         if (ConfigModelConstant.MODEL_TYPE_NODE_COMPONENT\r
74                                 .equalsIgnoreCase(node_types.getDerivedFrom())) {\r
75                             fileName = fileName + "component/" + nodeTypeKey + ".json";\r
76                         }\r
77                         String content = TransformationUtils.getJson(node_types, true);\r
78                         FileUtils.write(new File(fileName), content, Charset.defaultCharset());\r
79                     } catch (IOException e) {\r
80                         e.printStackTrace();\r
81                     }\r
82 \r
83                 }\r
84                 System.out.println("NodeTypeCreateUtils.createNodeTypes()" + nodeTypeKey);\r
85             });\r
86         }\r
87 \r
88     }\r
89 \r
90     public void createResourceAssignmentNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
91         if (serviceTemplate != null) {\r
92             ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
93             workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
94 \r
95             Map<String, DataType> data_types = new HashMap<String, DataType>();\r
96             data_types.put("datatype-property", serviceTemplate.getDataTypes().get("datatype-property"));\r
97             data_types.put("datatype-resource-assignment",\r
98                     serviceTemplate.getDataTypes().get("datatype-resource-assignment"));\r
99 \r
100             workingServiceTemplate.setDataTypes(data_types);\r
101 \r
102             TopologyTemplate topology_template = new TopologyTemplate();\r
103             Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
104 \r
105             Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
106 \r
107             node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
108             node_templates.put("licence-template", node_Templates.get("licence-template"));\r
109 \r
110             node_templates.put("resource-assignment-action", node_Templates.get("resource-assignment-action"));\r
111             node_templates.put("resource-assignment", node_Templates.get("resource-assignment"));\r
112 \r
113             topology_template.setNodeTemplates(node_templates);\r
114             topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
115 \r
116             Map<String, NodeType> node_types = new HashMap<String, NodeType>();\r
117             node_types.put("artifact-config-template", serviceTemplate.getNodeTypes().get("artifact-config-template"));\r
118             node_types.put("dg-resource-assignment", serviceTemplate.getNodeTypes().get("dg-resource-assignment"));\r
119             node_types.put("component-resource-assignment",\r
120                     serviceTemplate.getNodeTypes().get("component-resource-assignment"));\r
121 \r
122             workingServiceTemplate.setNodeTypes(node_types);\r
123             workingServiceTemplate.setTopologyTemplate(topology_template);\r
124 \r
125             String workingServiceTemplateConmtent = TransformationUtils.getJson(workingServiceTemplate, true);\r
126 \r
127             FileUtils.writeStringToFile(new File("src/test/resources/service_templates/resource_assignment.json"),\r
128                     workingServiceTemplateConmtent, Charset.defaultCharset());\r
129 \r
130             File lcmFile = new File(\r
131                     "../../../northbound/selfservice-api/provider/src/test/resources/service_templates/resource_assignment.json");\r
132             FileUtils.writeStringToFile(lcmFile, workingServiceTemplateConmtent, Charset.defaultCharset());\r
133 \r
134             File resourceAssignmetFile = new File(\r
135                     "../../../plugin/assignment/provider/src/test/resources/service_templates/resource_assignment.json");\r
136             FileUtils.writeStringToFile(resourceAssignmetFile, workingServiceTemplateConmtent,\r
137                     Charset.defaultCharset());\r
138 \r
139             System.out.println("NodeTypeCreateUtils.createNodeTemplate() :" + workingServiceTemplateConmtent);\r
140         }\r
141 \r
142     }\r
143 \r
144     public void createVrrNodeTemplate(ServiceTemplate serviceTemplate) throws IOException {\r
145         if (serviceTemplate != null) {\r
146             ServiceTemplate workingServiceTemplate = new ServiceTemplate();\r
147             workingServiceTemplate.setMetadata(serviceTemplate.getMetadata());\r
148 \r
149             TopologyTemplate topology_template = new TopologyTemplate();\r
150             Map<String, NodeTemplate> node_templates = new HashMap<String, NodeTemplate>();\r
151 \r
152             Map<String, NodeTemplate> node_Templates = serviceTemplate.getTopologyTemplate().getNodeTemplates();\r
153 \r
154             node_templates.put("resource-assignment-action", node_Templates.get("resource-assignment-action"));\r
155             node_templates.put("resource-assignment", node_Templates.get("resource-assignment"));\r
156 \r
157             node_templates.put("activate-action", node_Templates.get("activate-action"));\r
158             node_templates.put("base-config-template", node_Templates.get("base-config-template"));\r
159             node_templates.put("licence-template", node_Templates.get("licence-template"));\r
160             node_templates.put("vrr-netconf-device", node_Templates.get("vrr-netconf-device"));\r
161             node_templates.put("get-netconf-config", node_Templates.get("get-netconf-config"));\r
162             node_templates.put("edit-netconf-config", node_Templates.get("edit-netconf-config"));\r
163             node_templates.put("transaction-netconf-baseconfig", node_Templates.get("transaction-netconf-baseconfig"));\r
164 \r
165             topology_template.setNodeTemplates(node_templates);\r
166             topology_template.setInputs(serviceTemplate.getTopologyTemplate().getInputs());\r
167 \r
168             workingServiceTemplate.setTopologyTemplate(topology_template);\r
169 \r
170             String workingServiceTemplateContent = TransformationUtils.getJson(workingServiceTemplate, true);\r
171 \r
172             FileUtils.writeStringToFile(new File("src/test/resources/service_templates/vrr_config.json"),\r
173                     workingServiceTemplateContent, Charset.defaultCharset());\r
174 \r
175         }\r
176     }\r
177 \r
178     public void createDictionarySchema() throws IOException {\r
179         String schema = TransformationUtils.getJsonSchema(ResourceDefinition.class);\r
180         FileUtils.writeStringToFile(new File("src/test/resources/dictionary/dictionary_schema.json"), schema,\r
181                 Charset.defaultCharset());\r
182     }\r
183 \r
184     public static void main(String[] args) {\r
185         try {\r
186             ServiceTemplateCreateUtils utils = new ServiceTemplateCreateUtils();\r
187             utils.createNodeTypes("src/test/resources/service_templates/default.json");\r
188         } catch (Exception e) {\r
189             // TODO: handle exception\r
190         }\r
191     }\r
192 \r
193 }\r