2 * ============LICENSE_START=======================================================
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
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.onap.so.adapters.catalogdb.rest;
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;
37 public class ServiceMapper {
38 private static final Logger logger = LoggerFactory.getLogger(ServiceMapper.class);
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());
55 restService.setVnf(mapVnfs(service, depth));
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)));
66 private Vnf mapVnf(org.onap.so.db.catalog.beans.VnfResourceCustomization vnfResourceCustomization, int depth) {
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());
88 vnf.setVfModule(mapVfModules(vnfResourceCustomization, depth));
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)));
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());
119 private boolean getIsVolumeGroup(VfModuleCustomization vfModuleCust) {
120 boolean isVolumeGroup = false;
121 HeatEnvironment envt = vfModuleCust.getVolumeHeatEnv();
123 isVolumeGroup = true;
125 return isVolumeGroup;