1d8c0b430d7cf22b132d027f0e8aa5d585194db0
[sdc.git] /
1 /*
2  * Copyright © 2016-2017 European Support Limited
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
17 package org.openecomp.sdc.vendorsoftwareproduct.impl;
18
19 import org.apache.commons.collections4.MapUtils;
20 import org.openecomp.sdc.generator.core.services.ManualVspToscaGenerationService;
21 import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
22 import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
23 import org.openecomp.sdc.generator.datatypes.tosca.VspModelInfo;
24 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
25 import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
26 import org.openecomp.sdc.vendorsoftwareproduct.services.ManualVspDataCollectionService;
27 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
28 import org.openecomp.sdc.versioning.dao.types.Version;
29
30 import java.util.List;
31 import java.util.Map;
32 import java.util.Optional;
33
34 public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
35
36   private final ManualVspDataCollectionService
37       manualVspDataCollectionService = new ManualVspDataCollectionService();
38
39   @Override
40   public VspModelInfo gatherVspInformation(String vspId, Version version) {
41     VspModelInfo vspModelInfo = new VspModelInfo();
42     //Get Release Vendor Name
43     Optional<String> releaseVendor;
44     try {
45       releaseVendor = manualVspDataCollectionService.getReleaseVendor(vspId, version);
46     } catch (Exception ex) {
47       releaseVendor = Optional.empty();
48     }
49     releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
50
51     //Get Allowed Deployment flavors information
52     Map<String, DeploymentFlavorModel> allowedFlavors;
53     try {
54       allowedFlavors = manualVspDataCollectionService.getAllowedFlavors(vspId, version);
55     } catch (Exception ex) {
56       allowedFlavors = null;
57     }
58     if (MapUtils.isNotEmpty(allowedFlavors)) {
59       vspModelInfo.setAllowedFlavors(allowedFlavors);
60     }
61
62     //Get VFC Image information
63     Map<String, List<MultiFlavorVfcImage>> vspComponentImages;
64     try {
65       vspComponentImages =
66           manualVspDataCollectionService.getVspComponentImages(vspId, version);
67     } catch (Exception ex) {
68       vspComponentImages = null;
69     }
70     if (MapUtils.isNotEmpty(vspComponentImages)) {
71       vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
72     }
73
74     //Get VFC component information
75     Map<String, String> vspComponents;
76     try {
77       vspComponents = manualVspDataCollectionService.getVspComponents(vspId, version);
78     } catch (Exception ex) {
79       vspComponents = null;
80     }
81     if (MapUtils.isNotEmpty(vspComponents)) {
82       vspModelInfo.setComponents(vspComponents);
83     }
84
85     //Get VSP component nic information
86     Map<String, List<Nic>> vspComponentNics;
87     try {
88       vspComponentNics = manualVspDataCollectionService.getVspComponentNics(vspId, version);
89     } catch (Exception ex) {
90       vspComponentNics = null;
91     }
92     if (MapUtils.isNotEmpty(vspComponentNics)) {
93       vspModelInfo.setNics(vspComponentNics);
94     }
95     return vspModelInfo;
96   }
97
98   @Override
99   public ToscaServiceModel generateToscaModel(VspModelInfo vspModelInfo) {
100     ManualVspToscaGenerationService vspToscaGenerator = new ManualVspToscaGenerationService();
101     return vspToscaGenerator.createManualVspToscaServiceModel(vspModelInfo);
102   }
103 }