564116d8a782d7af22fd802418371c862eb4b910
[vfc/nfvo/catalog.git] /
1 /**
2  * Copyright 2016 [ZTE] and others.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.openo.commontosca.catalog.db.resource;
17
18 import java.util.ArrayList;
19 import java.util.HashMap;
20 import java.util.Map;
21
22 import org.openo.commontosca.catalog.db.common.Parameters;
23 import org.openo.commontosca.catalog.db.entity.ServiceTemplateMappingData;
24 import org.openo.commontosca.catalog.db.entity.TemplateData;
25 import org.openo.commontosca.catalog.db.exception.CatalogResourceException;
26 import org.openo.commontosca.catalog.db.util.CatalogDbUtil;
27 import org.openo.commontosca.catalog.db.util.HqlFactory;
28 import org.openo.commontosca.catalog.db.wrapper.ServiceTemplateHandler;
29 import org.openo.commontosca.catalog.db.wrapper.ServiceTemplateMappingHandler;
30 import org.openo.commontosca.catalog.db.wrapper.TemplateHandler;
31 import org.openo.commontosca.catalog.db.entity.NodeTemplateData;
32 import org.openo.commontosca.catalog.db.entity.PackageData;
33 import org.openo.commontosca.catalog.db.entity.ServiceTemplateData;
34 import org.openo.commontosca.catalog.db.wrapper.NodeTemplateHandler;
35 import org.slf4j.Logger;
36 import org.slf4j.LoggerFactory;
37
38 public class TemplateManager {
39     private static final Logger LOGGER = LoggerFactory.getLogger(TemplateManager.class);
40     private static TemplateManager manager;
41     ServiceTemplateHandler handler = new ServiceTemplateHandler();
42     NodeTemplateHandler nodeTemplateHandler = new NodeTemplateHandler();
43     TemplateHandler templateHandler = new TemplateHandler();
44     ServiceTemplateMappingHandler mappingHandler = new ServiceTemplateMappingHandler();
45
46     public synchronized static TemplateManager getInstance() {
47         if (manager == null) {
48             manager = new TemplateManager();
49         }
50         return manager;
51     }
52
53     private TemplateManager() {}
54
55     public TemplateData addServiceTemplate(TemplateData templateData)
56             throws CatalogResourceException {
57         LOGGER.info("start add template info  to db.info:"
58                 + CatalogDbUtil.objectToString(templateData));
59         TemplateData data = templateHandler.create(templateData);
60         LOGGER.info(" template info  to db end.info:" + CatalogDbUtil.objectToString(data));
61         return data;
62     }
63
64     public ServiceTemplateMappingData addServiceTemplateMapping(
65             ServiceTemplateMappingData templateMappingData) throws CatalogResourceException {
66         LOGGER.info("start add servicetemplate Mapping  info  to db.info:"
67                 + CatalogDbUtil.objectToString(templateMappingData));
68         ServiceTemplateMappingData data = mappingHandler.create(templateMappingData);
69         LOGGER.info(" template mapping info  to db end.info:" + CatalogDbUtil.objectToString(data));
70         return data;
71     }
72
73     public ArrayList<ServiceTemplateMappingData> queryServiceTemplateMappingById(String id)
74             throws CatalogResourceException {
75         Map<String, String> queryParam = new HashMap<String, String>();
76         queryParam.put(Parameters.mappingId.name(), id);
77         LOGGER.info("start query serviceTemplateMapping info by id." + id);
78         ArrayList<ServiceTemplateMappingData> data = mappingHandler.query(queryParam);
79         LOGGER.info("query serviceTemplateMapping info end.size:" + data.size() + "detail:"
80                 + CatalogDbUtil.objectToString(data));
81         return data;
82     }
83
84     public void deleteServiceTemplateMappingById(String id) throws CatalogResourceException {
85
86         LOGGER.info("start delete serviceTemplateMapping info by id." + id);
87         mappingHandler.delete(id);
88         LOGGER.info("delete serviceTemplateMapping info end");
89     }
90
91     public void deleteServiceTemplateMapping(String nodeType, String serviceTemplateId)
92             throws CatalogResourceException {
93         Map<String, String> delParam = new HashMap<String, String>();
94         if (CatalogDbUtil.isNotEmpty(nodeType))
95             delParam.put(Parameters.nodeType.name(), nodeType);
96         if (CatalogDbUtil.isNotEmpty(serviceTemplateId))
97             delParam.put(Parameters.serviceTemplateId.name(), serviceTemplateId);
98         LOGGER.info("start delete serviceTemplateMapping info.nodeType:" + nodeType
99                 + " serviceTemplateId:" + serviceTemplateId);
100         mappingHandler.delete(delParam);
101         LOGGER.info("delete serviceTemplateMapping info ");
102     }
103
104     public ArrayList<ServiceTemplateMappingData> queryServiceTemplateMapping(String nodeType,
105             String serviceTemplateId) throws CatalogResourceException {
106         Map<String, String> queryParam = new HashMap<String, String>();
107         if (CatalogDbUtil.isNotEmpty(nodeType))
108             queryParam.put(Parameters.nodeType.name(), nodeType);
109         if (CatalogDbUtil.isNotEmpty(serviceTemplateId))
110             queryParam.put(Parameters.serviceTemplateId.name(), serviceTemplateId);
111         LOGGER.info("start query serviceTemplateMapping info.nodeType:" + nodeType
112                 + " serviceTemplateId:" + serviceTemplateId);
113         ArrayList<ServiceTemplateMappingData> data = mappingHandler.query(queryParam);
114         LOGGER.info("query serviceTemplateMapping info end.size:" + data.size() + "detail:"
115                 + CatalogDbUtil.objectToString(data));
116         return data;
117     }
118
119     public ArrayList<ServiceTemplateData> queryServiceTemplateById(String id)
120             throws CatalogResourceException {
121         Map<String, String> queryParam = new HashMap<String, String>();
122         queryParam.put(Parameters.serviceTemplateId.name(), id);
123         LOGGER.info("start query serviceTemplate info by id." + id);
124         ArrayList<ServiceTemplateData> data = handler.query(queryParam);
125         LOGGER.info("query serviceTemplate info end.size:" + data.size() + "detail:"
126                 + CatalogDbUtil.objectToString(data));
127         return data;
128     }
129
130     public ArrayList<ServiceTemplateData> queryServiceTemplate(String type, String version,
131             String vendor) throws CatalogResourceException {
132         LOGGER.info("start query serviceTemplate info.type:" + type + " vendor:" + vendor
133                 + " version:" + version);
134         Map<String, String> queryParam = new HashMap<String, String>();
135         if (CatalogDbUtil.isNotEmpty(type))
136             queryParam.put(Parameters.type.name(), type);
137         if (CatalogDbUtil.isNotEmpty(vendor))
138             queryParam.put(Parameters.vendor.name(), vendor);
139         if (CatalogDbUtil.isNotEmpty(version))
140             queryParam.put(Parameters.version.name(), version);
141         ArrayList<ServiceTemplateData> data = handler.query(queryParam);
142         LOGGER.info("query serviceTemplate info end.size:" + data.size() + "detail:"
143                 + CatalogDbUtil.objectToString(data));
144         return data;
145     }
146
147     public ArrayList<NodeTemplateData> queryNodeTemplateBySeriviceTemplateId(
148             String serviceTemplateId) throws CatalogResourceException {
149         LOGGER.info("start query NodeTemplate info.serviceTemplateId:" + serviceTemplateId);
150         Map<String, String> queryParam = new HashMap<String, String>();
151         queryParam.put(Parameters.serviceTemplateId.name(), serviceTemplateId);
152         ArrayList<NodeTemplateData> data = nodeTemplateHandler.query(queryParam);
153         LOGGER.info("query NodeTemplate info end.size:" + data.size() + "detail:"
154                 + CatalogDbUtil.objectToString(data));
155         return data;
156     }
157
158     public ArrayList<NodeTemplateData> queryNodeTemplateById(String serviceTemplateId,
159             String nodeTemplateId) throws CatalogResourceException {
160         LOGGER.info("start query NodeTemplate info.serviceTemplateId:" + serviceTemplateId
161                 + "nodeTemplateId:" + nodeTemplateId);
162         Map<String, String> queryParam = new HashMap<String, String>();
163         if (CatalogDbUtil.isNotEmpty(serviceTemplateId))
164             queryParam.put(Parameters.serviceTemplateId.name(), serviceTemplateId);
165         if (CatalogDbUtil.isNotEmpty(nodeTemplateId))
166             queryParam.put(Parameters.nodeTemplateId.name(), nodeTemplateId);
167         ArrayList<NodeTemplateData> data = nodeTemplateHandler.query(queryParam);
168         LOGGER.info("query NodeTemplate info end.size:" + data.size() + "detail:"
169                 + CatalogDbUtil.objectToString(data));
170         return data;
171     }
172
173     public ArrayList<ServiceTemplateData> queryServiceTemplateByCsarPackageInfo(
174             PackageData packageInfo) throws CatalogResourceException {
175         LOGGER.info("start query serviceTemplate info by package.package:"
176                 + CatalogDbUtil.objectToString(packageInfo));
177         String filter =
178                 HqlFactory.getQueryHqlByFilter(ServiceTemplateData.class, packageInfo,
179                         Parameters.csarId.name());
180         ArrayList<ServiceTemplateData> data = handler.unionQuery(filter);
181         LOGGER.info("query serviceTemplate info end.size:" + data.size() + "detail:"
182                 + CatalogDbUtil.objectToString(data));
183         return data;
184     }
185
186     public void deleteServiceTemplateById(String serviceTemplateId) throws CatalogResourceException {
187         LOGGER.info("start delete serviceTemplate info.id:" + serviceTemplateId);
188         ArrayList<NodeTemplateData> nodeTemplateList =
189                 queryNodeTemplateBySeriviceTemplateId(serviceTemplateId);
190         templateHandler.delete(serviceTemplateId, nodeTemplateList);
191         LOGGER.info(" delete serviceTemplate info end id." + serviceTemplateId);
192     }
193
194     public void deleteServiceTemplateByCsarPackageInfo(PackageData packageInfo)
195             throws CatalogResourceException {
196         LOGGER.info("start delete serviceTemplate info by package.package:"
197                 + CatalogDbUtil.objectToString(packageInfo));
198
199         ArrayList<ServiceTemplateData> serviceTemplate =
200                 queryServiceTemplateByCsarPackageInfo(packageInfo);
201         for (int i = 0; i < serviceTemplate.size(); i++) {
202             deleteServiceTemplateById(serviceTemplate.get(i).getServiceTemplateId());
203         }
204         LOGGER.info("delete serviceTemplate info end.");
205
206     }
207 }