430401bc36a20c0e51edbe3435ed76a935ba9c30
[ccsdk/cds.git] /
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package org.onap.ccsdk.apps.controllerblueprints.service.validator;\r
18 \r
19 import com.google.common.base.Preconditions;\r
20 import org.apache.commons.lang3.StringUtils;\r
21 import org.jetbrains.annotations.NotNull;\r
22 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants;\r
23 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintException;\r
24 import org.onap.ccsdk.apps.controllerblueprints.core.data.NodeTemplate;\r
25 import org.onap.ccsdk.apps.controllerblueprints.core.data.ServiceTemplate;\r
26 import org.onap.ccsdk.apps.controllerblueprints.core.service.BluePrintValidatorDefaultService;\r
27 import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;\r
28 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.validator.ResourceAssignmentValidator;\r
29 \r
30 import java.util.HashMap;\r
31 import java.util.Map;\r
32 \r
33 /**\r
34  * ServiceTemplateValidator.java Purpose: Provide Configuration Generator ServiceTemplateValidator\r
35  *\r
36  * @author Brinda Santh\r
37  * @version 1.0\r
38  */\r
39 \r
40 public class ServiceTemplateValidator extends BluePrintValidatorDefaultService {\r
41 \r
42     StringBuilder message = new StringBuilder();\r
43     private Map<String, String> metaData = new HashMap();\r
44 \r
45     /**\r
46      * This is a validateServiceTemplate\r
47      *\r
48      * @param serviceTemplateContent\r
49      * @return boolean\r
50      * @throws BluePrintException\r
51      */\r
52     public boolean validateServiceTemplate(String serviceTemplateContent) throws BluePrintException {\r
53         if (StringUtils.isNotBlank(serviceTemplateContent)) {\r
54             ServiceTemplate serviceTemplate =\r
55                     JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);\r
56             return validateServiceTemplate(serviceTemplate);\r
57         } else {\r
58             throw new BluePrintException(\r
59                     "Service Template Content is  (" + serviceTemplateContent + ") not Defined.");\r
60         }\r
61     }\r
62 \r
63     /**\r
64      * This is a validateServiceTemplate\r
65      *\r
66      * @param serviceTemplate\r
67      * @return boolean\r
68      * @throws BluePrintException\r
69      */\r
70     @SuppressWarnings("squid:S00112")\r
71     public boolean validateServiceTemplate(ServiceTemplate serviceTemplate) throws BluePrintException {\r
72         Map<String, Object> properties = new HashMap<>();\r
73         super.validateBlueprint(serviceTemplate, properties);\r
74         return true;\r
75     }\r
76 \r
77     /**\r
78      * This is a getMetaData to get the key information during the\r
79      *\r
80      * @return Map<String                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ,\r
81                        *       String>\r
82      */\r
83     public Map<String, String> getMetaData() {\r
84         return metaData;\r
85     }\r
86 \r
87     @Override\r
88     public void validateMetadata(@NotNull Map<String, String> metaDataMap) throws BluePrintException {\r
89 \r
90         Preconditions.checkNotNull(serviceTemplate.getMetadata(), "Service Template Metadata Information is missing.");\r
91         super.validateMetadata(metaDataMap);\r
92 \r
93         this.metaData.putAll(serviceTemplate.getMetadata());\r
94     }\r
95 \r
96 \r
97     @Override\r
98     public void validateNodeTemplate(@NotNull String nodeTemplateName, @NotNull NodeTemplate nodeTemplate)\r
99             throws BluePrintException {\r
100         super.validateNodeTemplate(nodeTemplateName, nodeTemplate);\r
101         validateNodeTemplateCustom(nodeTemplateName, nodeTemplate);\r
102 \r
103     }\r
104 \r
105     @Deprecated()\r
106     private void validateNodeTemplateCustom(@NotNull String nodeTemplateName, @NotNull NodeTemplate nodeTemplate)\r
107             throws BluePrintException {\r
108         String derivedFrom = getBluePrintContext().nodeTemplateNodeType(nodeTemplateName).getDerivedFrom();\r
109         if ("tosca.nodes.Artifact".equals(derivedFrom)) {\r
110             ResourceAssignmentValidator resourceAssignmentValidator = new ResourceAssignmentValidator(nodeTemplate);\r
111             resourceAssignmentValidator.validateResourceAssignment();\r
112         }\r
113     }\r
114 }\r