2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.vendorsoftwareproduct.dao.impl;
23 import org.openecomp.core.model.dao.EnrichedServiceArtifactDao;
24 import org.openecomp.core.model.dao.EnrichedServiceArtifactDaoFactory;
25 import org.openecomp.core.model.dao.EnrichedServiceModelDao;
26 import org.openecomp.core.model.dao.EnrichedServiceModelDaoFactory;
27 import org.openecomp.core.model.dao.ServiceArtifactDaoFactory;
28 import org.openecomp.core.model.dao.ServiceArtifactDaoInter;
29 import org.openecomp.core.model.dao.ServiceModelDao;
30 import org.openecomp.core.model.dao.ServiceModelDaoFactory;
31 import org.openecomp.core.model.dao.ServiceTemplateDaoFactory;
32 import org.openecomp.core.model.dao.ServiceTemplateDaoInter;
33 import org.openecomp.core.utilities.CommonMethods;
34 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
35 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
36 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDao;
37 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDependencyModelDaoFactory;
38 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
39 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
40 import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
41 import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDaoFactory;
42 import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
43 import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
44 import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDao;
45 import org.openecomp.sdc.vendorsoftwareproduct.dao.NetworkDaoFactory;
46 import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
47 import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
48 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDao;
49 import org.openecomp.sdc.vendorsoftwareproduct.dao.OrchestrationTemplateCandidateDaoFactory;
50 import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDao;
51 import org.openecomp.sdc.vendorsoftwareproduct.dao.PackageInfoDaoFactory;
52 import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDao;
53 import org.openecomp.sdc.vendorsoftwareproduct.dao.ProcessDaoFactory;
54 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
55 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
56 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
57 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
58 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
59 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
60 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
61 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
62 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
63 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
64 import org.openecomp.sdc.versioning.dao.types.Version;
66 import java.nio.ByteBuffer;
67 import java.util.Collection;
68 import java.util.List;
70 public class VendorSoftwareProductDaoImpl implements VendorSoftwareProductDao {
72 private static final VendorSoftwareProductInfoDao vspInfoDao = VendorSoftwareProductInfoDaoFactory
73 .getInstance().createInterface();
74 private static final PackageInfoDao packageInfoDao =
75 PackageInfoDaoFactory.getInstance().createInterface();
76 private static final OrchestrationTemplateCandidateDao orchestrationTemplateCandidateDataDao =
77 OrchestrationTemplateCandidateDaoFactory.getInstance().createInterface();
78 private static final NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface();
79 private static final ComponentDao componentDao =
80 ComponentDaoFactory.getInstance().createInterface();
81 private static final NicDao nicDao = NicDaoFactory.getInstance().createInterface();
82 private static final ProcessDao processDao = ProcessDaoFactory.getInstance().createInterface();
83 private static final ServiceArtifactDaoInter
84 artifactDao = ServiceArtifactDaoFactory.getInstance().createInterface();
85 public static final ServiceTemplateDaoInter
86 templateDao = ServiceTemplateDaoFactory.getInstance().createInterface();
87 private static final EnrichedServiceArtifactDao enrichArtifactDao =
88 EnrichedServiceArtifactDaoFactory.getInstance().createInterface();
89 private static final EnrichedServiceModelDao enrichedServiceModelDao =
90 EnrichedServiceModelDaoFactory.getInstance().createInterface();
91 private static final ServiceModelDao serviceModelDao =
92 ServiceModelDaoFactory.getInstance().createInterface();
93 private static final ComponentDependencyModelDao componentDependencyModelDao =
94 ComponentDependencyModelDaoFactory.getInstance().createInterface();
95 private static final DeploymentFlavorDao
96 deploymentFlavorDao = DeploymentFlavorDaoFactory.getInstance().createInterface();
97 private static final ImageDao imageDao = ImageDaoFactory.getInstance().createInterface();
98 private static final ComputeDao computeDao = ComputeDaoFactory.getInstance().createInterface();
102 public void registerVersioning(String versionableEntityType) {
103 vspInfoDao.registerVersioning(versionableEntityType);
104 networkDao.registerVersioning(versionableEntityType);
105 componentDao.registerVersioning(versionableEntityType);
106 nicDao.registerVersioning(versionableEntityType);
107 processDao.registerVersioning(versionableEntityType);
108 orchestrationTemplateCandidateDataDao.registerVersioning(versionableEntityType);
109 componentDependencyModelDao.registerVersioning(versionableEntityType);
110 computeDao.registerVersioning(versionableEntityType);
111 deploymentFlavorDao.registerVersioning(versionableEntityType);
112 imageDao.registerVersioning(versionableEntityType);
116 public Collection<ComponentEntity> listComponents(String vspId, Version version) {
117 return componentDao.list(new ComponentEntity(vspId, version, null));
121 public Collection<ComponentEntity> listComponentsQuestionnaire(String vspId, Version version) {
122 return componentDao.listQuestionnaires(vspId, version);
126 public Collection<ComponentEntity> listComponentsCompositionAndQuestionnaire(String vspId,
128 return componentDao.listCompositionAndQuestionnaire(vspId, version);
132 public Collection<ProcessEntity> listProcesses(String vspId, Version version,
133 String componentId) {
134 return processDao.list(new ProcessEntity(vspId, version, componentId, null));
138 public void deleteProcesses(String vspId, Version version, String componentId) {
139 processDao.delete(new ProcessEntity(vspId, version, componentId, null));
143 public ProcessEntity getProcess(String vspId, Version version, String componentId,
145 return processDao.get(new ProcessEntity(vspId, version, componentId, processId));
149 public void createProcess(ProcessEntity processEntity) {
150 processDao.create(processEntity);
154 public void updateProcess(ProcessEntity processEntity) {
155 ProcessEntity process = processDao.get(new ProcessEntity(processEntity.getVspId(), processEntity.getVersion(),
156 processEntity.getComponentId(), processEntity.getId()));
157 processEntity.setArtifact(process.getArtifact());
158 processEntity.setArtifactName(process.getArtifactName());
159 processDao.update(processEntity);
163 public void deleteProcess(String vspId, Version version, String componentId, String processId) {
164 processDao.delete(new ProcessEntity(vspId, version, componentId, processId));
168 public void uploadProcessArtifact(String vspId, Version version, String componentId,
169 String processId, byte[] artifact, String artifactName) {
171 processArtifact = new ProcessEntity(vspId, version, componentId, processId);
172 processArtifact = processDao.get(processArtifact);
173 processArtifact.setArtifact(ByteBuffer.wrap(artifact));
174 processArtifact.setArtifactName(artifactName);
175 processDao.update(processArtifact);
179 public ProcessEntity getProcessArtifact(String vspId, Version version, String componentId,
182 .get(new ProcessEntity(vspId, version, componentId, processId));
186 public void deleteProcessArtifact(String vspId, Version version, String componentId,
188 processDao.delete(new ProcessEntity(vspId, version, componentId, processId));
192 public Collection<NicEntity> listNicsByVsp(String vspId, Version version) {
193 return nicDao.listByVsp(vspId, version);
197 public void deleteUploadData(String vspId, Version version) {
198 networkDao.deleteAll(vspId, version);
199 enrichedServiceModelDao.deleteAll(vspId, version);
200 serviceModelDao.deleteAll(vspId, version);
201 componentDao.deleteAll(vspId, version);
205 public void createComponentDependencyModel(List<ComponentDependencyModelEntity>
206 componentDependencyModel, String vspId,
208 componentDependencyModelDao.deleteAll(vspId, version);
209 for (ComponentDependencyModelEntity entity : componentDependencyModel) {
210 entity.setId(CommonMethods.nextUuId());
211 componentDependencyModelDao.create(entity);
216 public Collection<ComponentDependencyModelEntity> listComponentDependencies(String vspId,
218 return componentDependencyModelDao.list(new ComponentDependencyModelEntity(vspId, version,
223 public void createDeploymentFlavor(DeploymentFlavorEntity deploymentFlavor) {
224 deploymentFlavorDao.create(deploymentFlavor);
228 public Collection<DeploymentFlavorEntity> listDeploymentFlavors(String vspId, Version version) {
229 return deploymentFlavorDao.list(new DeploymentFlavorEntity(vspId, version, null));
233 public DeploymentFlavorEntity getDeploymentFlavor(String vspId, Version version,
234 String deploymentFlavorId) {
235 return deploymentFlavorDao.get(new DeploymentFlavorEntity(vspId, version, deploymentFlavorId));
239 public void deleteDeploymentFlavor(String vspId, Version version, String deploymentFlavorId) {
240 deploymentFlavorDao.delete(new DeploymentFlavorEntity(vspId,version,
241 deploymentFlavorId));
245 public void createImage(ImageEntity imageEntity) {
246 imageDao.create(imageEntity);
250 public Collection<ImageEntity> listImages(String vspId, Version version, String componentId) {
251 return imageDao.list(new ImageEntity(vspId, version, componentId, null));
255 public ImageEntity getImage(String vspId, Version version, String componentId, String imageId) {
256 return imageDao.get(new ImageEntity(vspId, version, componentId, imageId));
260 public Collection<ImageEntity> listImagesByVsp(String vspId, Version version) {
261 return imageDao.listByVsp(vspId, version);
265 public void createCompute(ComputeEntity computeEntity) {
266 computeDao.create(computeEntity);
270 public Collection<ComputeEntity> listComputes(String vspId, Version version, String componentId) {
271 return computeDao.list(new ComputeEntity(vspId, version, componentId, null));
275 public Collection<ComputeEntity> listComputesByVsp(String vspId, Version version) {
276 return computeDao.listByVsp(vspId, version);
280 public ComputeEntity getCompute(String vspId, Version version, String componentId,
281 String computeFlavorId) {
282 return computeDao.get(new ComputeEntity(vspId, version, componentId, computeFlavorId));
286 public void deleteImage(String vspId, Version version, String componentId, String imageId) {
287 ImageEntity imageEntity = new ImageEntity(vspId, version, componentId, imageId);
288 imageDao.delete(imageEntity);
292 public void updateDeploymentFlavor(DeploymentFlavorEntity deploymentFlavorEntity) {
293 deploymentFlavorDao.update(deploymentFlavorEntity);
297 public void updateImage(ImageEntity imageEntity) {
298 imageDao.update(imageEntity);
302 public void updateImageQuestionnaire(String vspId, Version version, String componentId,
303 String imageId, String questionnaireData) {
304 imageDao.updateQuestionnaireData(vspId, version, componentId, imageId, questionnaireData);
308 public void updateComputeQuestionnaire(String vspId, Version version, String componentId,
309 String computeId, String questionnaireData) {
310 computeDao.updateQuestionnaireData(vspId, version, componentId, computeId, questionnaireData);
314 public void updateCompute(ComputeEntity compute) {
315 computeDao.update(compute);
319 public void deleteCompute(String vspId, Version version, String componentId, String
321 computeDao.delete(new ComputeEntity(vspId, version, componentId, computeFlavorId));