1 package org.openecomp.sdcrests.vsp.rest.services;
3 import org.apache.commons.collections4.CollectionUtils;
4 import org.openecomp.sdc.logging.context.MdcUtil;
5 import org.openecomp.sdc.logging.types.LoggerServiceName;
6 import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
7 import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
8 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
9 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
10 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
11 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
12 import org.openecomp.sdc.versioning.dao.types.Version;
13 import org.openecomp.sdc.versioning.types.VersionableEntityAction;
14 import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto;
15 import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityValidationDataDto;
16 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorCreationDto;
17 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorDto;
18 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorListResponseDto;
19 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorRequestDto;
20 import org.openecomp.sdcrests.vsp.rest.DeploymentFlavors;
21 import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityResponseToDto;
22 import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityValidationDataToDto;
23 import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorEntityDeploymentFlavorToListResponse;
24 import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorEntityToDeploymentFlavorCreationDto;
25 import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity;
26 import org.openecomp.sdcrests.vsp.rest.mapping.MapDeploymentFlavorToDeploymentDto;
27 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
28 import org.springframework.beans.factory.annotation.Autowired;
29 import org.springframework.context.annotation.Scope;
30 import org.springframework.stereotype.Service;
32 import java.util.Collection;
33 import javax.inject.Named;
34 import javax.ws.rs.core.Response;
37 @Service("deploymentFlavors")
38 @Scope(value = "prototype")
39 public class DeploymentFlavorsImpl implements DeploymentFlavors
41 private DeploymentFlavorManager deploymentFlavorManager =
42 DeploymentFlavorManagerFactory.getInstance().createInterface();
45 public Response create(DeploymentFlavorRequestDto request, String vspId, String versionId,
47 MdcUtil.initMdc(LoggerServiceName.Create_Deployment_Flavor.toString());
48 DeploymentFlavorEntity deploymentFlavorEntity =
49 new MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity()
50 .applyMapping(request, DeploymentFlavorEntity.class);
51 deploymentFlavorEntity.setVspId(vspId);
52 deploymentFlavorEntity.setVersion(resolveVspVersion(vspId, null, user,
53 VersionableEntityAction.Write));
54 DeploymentFlavorEntity createdDeploymentFlavor =
55 deploymentFlavorManager.createDeploymentFlavor(deploymentFlavorEntity, user);
56 MapDeploymentFlavorEntityToDeploymentFlavorCreationDto mapping =
57 new MapDeploymentFlavorEntityToDeploymentFlavorCreationDto();
58 DeploymentFlavorCreationDto deploymentFlavorCreatedDto= mapping.applyMapping
59 (createdDeploymentFlavor,DeploymentFlavorCreationDto.class);
61 .ok(createdDeploymentFlavor != null ? deploymentFlavorCreatedDto : null)
66 public Response list(String vspId,String version,String user) {
67 MdcUtil.initMdc(LoggerServiceName.Get_List_Deployment_flavor.toString());
68 Collection<DeploymentFlavorEntity> deploymentFlavors =
69 deploymentFlavorManager.listDeploymentFlavors(vspId, resolveVspVersion(vspId, version, user,
70 VersionableEntityAction.Read), user);
72 MapDeploymentFlavorEntityDeploymentFlavorToListResponse mapper = new
73 MapDeploymentFlavorEntityDeploymentFlavorToListResponse();
74 GenericCollectionWrapper<DeploymentFlavorListResponseDto> results = new GenericCollectionWrapper<>();
75 for (DeploymentFlavorEntity deploymentFlavor : deploymentFlavors) {
76 results.add(mapper.applyMapping(deploymentFlavor, DeploymentFlavorListResponseDto.class));
78 return Response.ok(results).build();
82 public Response get(String vspId, String version, String deploymentFlavorId, String user) {
83 MdcUtil.initMdc(LoggerServiceName.Get_Deployment_flavor.toString());
84 CompositionEntityResponse<DeploymentFlavor> response = deploymentFlavorManager
85 .getDeploymentFlavor(vspId, resolveVspVersion(vspId, version, user,
86 VersionableEntityAction.Read), deploymentFlavorId, user);
88 CompositionEntityResponseDto<DeploymentFlavorDto> responseDto = new
89 CompositionEntityResponseDto<>();
90 new MapCompositionEntityResponseToDto<>(new MapDeploymentFlavorToDeploymentDto(), DeploymentFlavorDto.class)
91 .doMapping(response, responseDto);
92 return Response.ok(responseDto).build();
96 public Response getSchema(String vspId, String version, String user) {
97 MdcUtil.initMdc(LoggerServiceName.Get_Deployment_flavor.toString());
98 CompositionEntityResponse<DeploymentFlavor> response = deploymentFlavorManager
99 .getDeploymentFlavorSchema(vspId, Version.valueOf(version), user);
100 return Response.ok(response).build();
104 public Response delete(String vspId, String versionId, String deploymentFlavorId, String user) {
105 MdcUtil.initMdc(LoggerServiceName.Delete_Deployment_flavor.toString());
106 Version version = resolveVspVersion(vspId, null, user, VersionableEntityAction.Write);
107 deploymentFlavorManager.deleteDeploymentFlavor(vspId, version, deploymentFlavorId, user);
108 return Response.ok().build();
112 public Response update(DeploymentFlavorRequestDto request, String vspId, String versionId,
113 String deploymentFlavorId, String user) {
114 MdcUtil.initMdc(LoggerServiceName.Update_Deployment_flavor.toString());
115 DeploymentFlavorEntity deploymentFlavorEntity =
116 new MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity().applyMapping(request,
117 DeploymentFlavorEntity.class);
118 deploymentFlavorEntity.setVspId(vspId);
119 deploymentFlavorEntity.setVersion(resolveVspVersion(vspId, null, user, VersionableEntityAction.Write));
120 deploymentFlavorEntity.setId(deploymentFlavorId);
122 CompositionEntityValidationData validationData =
123 deploymentFlavorManager.updateDeploymentFlavor(deploymentFlavorEntity, user);
124 return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors())
125 ? Response.status(Response.Status.EXPECTATION_FAILED).entity(
126 new MapCompositionEntityValidationDataToDto().applyMapping(validationData,
127 CompositionEntityValidationDataDto.class)).build() : Response.ok().build();