dd18767762c20c9c73d69ea04c1857c63155e902
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2019 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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.onap.so.adapters.catalogdb.rest;
22
23 import java.util.ArrayList;
24 import java.util.List;
25 import org.onap.so.db.catalog.beans.HeatEnvironment;
26 import org.onap.so.db.catalog.beans.VfModuleCustomization;
27 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
28 import org.onap.so.rest.catalog.beans.Service;
29 import org.onap.so.rest.catalog.beans.VfModule;
30 import org.onap.so.rest.catalog.beans.Vnf;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
33 import org.springframework.stereotype.Component;
34
35
36 @Component
37 public class ServiceMapper {
38     private static final Logger logger = LoggerFactory.getLogger(ServiceMapper.class);
39
40     public Service mapService(org.onap.so.db.catalog.beans.Service service, int depth) {
41         Service restService = new Service();
42         restService.setCategory(service.getCategory());
43         restService.setCreated(service.getCreated());
44         restService.setDescription(service.getDescription());
45         restService.setDistrobutionStatus(service.getDistrobutionStatus());
46         restService.setEnvironmentContext(service.getEnvironmentContext());
47         restService.setModelInvariantId(service.getModelInvariantUUID());
48         restService.setModelName(service.getModelName());
49         restService.setModelVersionId(service.getModelUUID());
50         restService.setModelVersion(service.getModelVersion());
51         restService.setServiceRole(service.getServiceRole());
52         restService.setServiceType(service.getServiceType());
53         restService.setWorkloadContext(service.getWorkloadContext());
54         if (depth > 0)
55             restService.setVnf(mapVnfs(service, depth));
56         return restService;
57     }
58
59     private List<Vnf> mapVnfs(org.onap.so.db.catalog.beans.Service service, int depth) {
60         List<Vnf> vnfs = new ArrayList<>();
61         logger.info("Vnf Count : {}", service.getVnfCustomizations().size());
62         service.getVnfCustomizations().parallelStream().forEach(vnf -> vnfs.add(mapVnf(vnf, depth)));
63         return vnfs;
64     }
65
66     private Vnf mapVnf(org.onap.so.db.catalog.beans.VnfResourceCustomization vnfResourceCustomization, int depth) {
67         Vnf vnf = new Vnf();
68         vnf.setAvailabilityZoneMaxCount(vnfResourceCustomization.getAvailabilityZoneMaxCount());
69         vnf.setCategory(vnfResourceCustomization.getVnfResources().getCategory());
70         vnf.setCloudVersionMax(vnfResourceCustomization.getVnfResources().getAicVersionMax());
71         vnf.setCloudVersionMin(vnfResourceCustomization.getVnfResources().getAicVersionMin());
72         vnf.setMaxInstances(vnfResourceCustomization.getMaxInstances());
73         vnf.setMinInstances(vnfResourceCustomization.getMinInstances());
74         vnf.setModelCustomizationId(vnfResourceCustomization.getModelCustomizationUUID());
75         vnf.setModelInstanceName(vnfResourceCustomization.getModelInstanceName());
76         vnf.setModelInvariantId(vnfResourceCustomization.getVnfResources().getModelInvariantId());
77         vnf.setModelName(vnfResourceCustomization.getVnfResources().getModelName());
78         vnf.setModelVersionId(vnfResourceCustomization.getVnfResources().getModelUUID());
79         vnf.setModelVersion(vnfResourceCustomization.getVnfResources().getModelVersion());
80         vnf.setMultiStageDesign(vnfResourceCustomization.getMultiStageDesign());
81         vnf.setNfFunction(vnfResourceCustomization.getNfFunction());
82         vnf.setNfNamingCode(vnfResourceCustomization.getNfNamingCode());
83         vnf.setNfRole(vnfResourceCustomization.getNfRole());
84         vnf.setOrchestrationMode(vnfResourceCustomization.getVnfResources().getOrchestrationMode());
85         vnf.setSubCategory(vnfResourceCustomization.getVnfResources().getSubCategory());
86         vnf.setToscaNodeType(vnfResourceCustomization.getVnfResources().getToscaNodeType());
87         if (depth > 1) {
88             vnf.setVfModule(mapVfModules(vnfResourceCustomization, depth));
89         }
90         return vnf;
91     }
92
93     private List<VfModule> mapVfModules(VnfResourceCustomization vnfResourceCustomization, int depth) {
94         List<VfModule> vfModules = new ArrayList<>();
95         vnfResourceCustomization.getVfModuleCustomizations().parallelStream()
96                 .forEach(vfModule -> vfModules.add(mapVfModule(vfModule)));
97         return vfModules;
98     }
99
100     private VfModule mapVfModule(VfModuleCustomization vfModuleCust) {
101         VfModule vfModule = new VfModule();
102         vfModule.setAvailabilityZoneCount(vfModuleCust.getAvailabilityZoneCount());
103         vfModule.setCreated(vfModuleCust.getCreated());
104         vfModule.setDescription(vfModuleCust.getVfModule().getDescription());
105         vfModule.setInitialCount(vfModuleCust.getInitialCount());
106         vfModule.setIsBase(vfModuleCust.getVfModule().getIsBase());
107         vfModule.setIsVolumeGroup(getIsVolumeGroup(vfModuleCust));
108         vfModule.setMaxInstances(vfModuleCust.getMaxInstances());
109         vfModule.setMinInstances(vfModuleCust.getMinInstances());
110         vfModule.setLabel(vfModuleCust.getLabel());
111         vfModule.setModelCustomizationId(vfModuleCust.getModelCustomizationUUID());
112         vfModule.setModelInvariantId(vfModuleCust.getVfModule().getModelInvariantUUID());
113         vfModule.setModelName(vfModuleCust.getVfModule().getModelName());
114         vfModule.setModelVersionId(vfModuleCust.getVfModule().getModelUUID());
115         vfModule.setModelVersion(vfModuleCust.getVfModule().getModelVersion());
116         return vfModule;
117     }
118
119     private boolean getIsVolumeGroup(VfModuleCustomization vfModuleCust) {
120         boolean isVolumeGroup = false;
121         HeatEnvironment envt = vfModuleCust.getVolumeHeatEnv();
122         if (envt != null) {
123             isVolumeGroup = true;
124         }
125         return isVolumeGroup;
126     }
127
128 }