3d8e234f045de562b3059edad95ab20806b71d48
[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
17 package org.openo.commontosca.catalog.db.resource;
18
19 import org.openo.commontosca.catalog.db.common.Parameters;
20 import org.openo.commontosca.catalog.db.entity.PackageData;
21 import org.openo.commontosca.catalog.db.entity.ServiceTemplateData;
22
23 import org.openo.commontosca.catalog.db.exception.CatalogResourceException;
24 import org.openo.commontosca.catalog.db.util.CatalogDbUtil;
25 import org.openo.commontosca.catalog.db.util.HqlFactory;
26 import org.openo.commontosca.catalog.db.wrapper.PackageHandler;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30 import java.util.ArrayList;
31 import java.util.HashMap;
32 import java.util.Map;
33
34 public class PackageManager {
35   private static final Logger LOGGER = LoggerFactory.getLogger(PackageManager.class);
36   private static PackageManager manager;
37   PackageHandler handler = new PackageHandler();
38
39   /**
40    * get PackageManager instance.
41    * @return PackageManager instance
42    */
43   public static synchronized PackageManager getInstance() {
44     if (manager == null) {
45       manager = new PackageManager();
46     }
47     return manager;
48   }
49
50   private PackageManager() {}
51
52   /**
53    * add package.
54    * @param packageData package data
55    * @return PackageData
56    * @throws CatalogResourceException e
57    */
58   public PackageData addPackage(PackageData packageData) throws CatalogResourceException {
59     LOGGER.info("start add package info  to db.info:" + CatalogDbUtil.objectToString(packageData));
60     PackageData data = handler.create(packageData);
61     LOGGER.info(" package info  to db end.info:" + CatalogDbUtil.objectToString(data));
62     return data;
63   }
64
65   /**
66    * query package by package id.
67    * @param csarId package id
68    * @return package data list
69    * @throws CatalogResourceException e
70    */
71   public ArrayList<PackageData> queryPackageByCsarId(String csarId)
72       throws CatalogResourceException {
73     Map<String, String> queryParam = new HashMap<String, String>();
74     queryParam.put(Parameters.csarId.name(), csarId);
75     LOGGER.info("start query package info by csarid." + csarId);
76     ArrayList<PackageData> data = handler.query(queryParam);
77     LOGGER.info("query package info end.size:" + data.size() + "detail:"
78         + CatalogDbUtil.objectToString(data));
79     return data;
80   }
81
82   /**
83    * query package by condition.
84    * @param name package name
85    * @param provider package provider
86    * @param version package version
87    * @param deletionPending deletionPending
88    * @param type package type
89    * @return package data list
90    * @throws CatalogResourceException e
91    */
92   public ArrayList<PackageData> queryPackage(String name, String provider, String version,
93       String deletionPending, String type) throws CatalogResourceException {
94     LOGGER.info("start query package info.name:" + name + " provider:" + provider + " version:"
95         + version + " type:" + type);
96     Map<String, String> queryParam = new HashMap<String, String>();
97     if (CatalogDbUtil.isNotEmpty(name)) {
98       queryParam.put(Parameters.name.name(), name);
99     }
100     if (CatalogDbUtil.isNotEmpty(version)) {
101       queryParam.put(Parameters.version.name(), version);
102     }
103     if (CatalogDbUtil.isNotEmpty(deletionPending)) {
104       queryParam.put(Parameters.deletionPending.name(), deletionPending);
105     }
106     if (CatalogDbUtil.isNotEmpty(type)) {
107       queryParam.put(Parameters.type.name(), type);
108     }
109     if (CatalogDbUtil.isNotEmpty(provider)) {
110       queryParam.put(Parameters.provider.name(), provider);
111     }
112     ArrayList<PackageData> data = handler.query(queryParam);
113     LOGGER.info("query package info end.size:" + data.size() + "detail:"
114         + CatalogDbUtil.objectToString(data));
115     return data;
116   }
117
118   /**
119    * delete package according package id.
120    * @param packageId package id
121    * @throws CatalogResourceException e
122    */
123   public void deletePackage(String packageId) throws CatalogResourceException {
124     LOGGER.info("start delete package info by id." + packageId);
125     handler.delete(packageId);
126     LOGGER.info(" delete package info end id." + packageId);
127   }
128
129   /**
130    * delete package by service template id.
131    * @param serviceTemplateId service template id
132    * @throws CatalogResourceException e
133    */
134   public void deletePackageByServiceTemplateId(String serviceTemplateId)
135       throws CatalogResourceException {
136     LOGGER.info("start delete package info by serviceTemplateid." + serviceTemplateId);
137     ServiceTemplateData serviceTemplate = new ServiceTemplateData();
138     serviceTemplate.setServiceTemplateId(serviceTemplateId);
139     String filter =
140         HqlFactory.getDeleteHqlByFilter(PackageData.class, serviceTemplate,
141             Parameters.csarId.name());
142     int data = handler.unionDelete(filter);
143
144     LOGGER.info("delete serviceTemplate info end.num:" + data);
145   }
146
147   /**
148    * query package by service template id.
149    * @param serviceTemplateId service template id
150    * @return package data list
151    * @throws CatalogResourceException e
152    */
153   public ArrayList<PackageData> queryPackageByServiceTemplateId(String serviceTemplateId)
154       throws CatalogResourceException {
155     LOGGER.info("start query package info by serviceTemplateid." + serviceTemplateId);
156     ServiceTemplateData serviceTemplate = new ServiceTemplateData();
157     serviceTemplate.setServiceTemplateId(serviceTemplateId);
158     String filter =
159         HqlFactory
160             .getQueryHqlByFilter(PackageData.class, serviceTemplate, Parameters.csarId.name());
161     ArrayList<PackageData> data = handler.unionQuery(filter);
162     LOGGER.info("query package info end.size:" + data.size() + "detail:"
163         + CatalogDbUtil.objectToString(data));
164     return data;
165   }
166
167   /**
168    * update package data.
169    * 
170    * @param packageData package data
171    * @param csarId package id
172    * @throws CatalogResourceException e
173    */
174   public void updatePackage(PackageData packageData, String csarId)
175       throws CatalogResourceException {
176     LOGGER.info("start update package info by id." + csarId + " info:"
177         + CatalogDbUtil.objectToString(packageData));
178     handler.update(packageData, csarId);
179     LOGGER.info(" update package  end id." + csarId);
180   }
181
182 }