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