2 * Copyright © 2016-2017 European Support Limited
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.openecomp.sdc.vendorsoftwareproduct.impl;
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;
30 import java.util.List;
32 import java.util.Optional;
34 public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
36 private final ManualVspDataCollectionService
37 manualVspDataCollectionService = new ManualVspDataCollectionService();
40 public VspModelInfo gatherVspInformation(String vspId, Version version) {
41 VspModelInfo vspModelInfo = new VspModelInfo();
42 //Get Release Vendor Name
43 Optional<String> releaseVendor;
45 releaseVendor = manualVspDataCollectionService.getReleaseVendor(vspId, version);
46 } catch (Exception ex) {
47 releaseVendor = Optional.empty();
49 releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
51 //Get Allowed Deployment flavors information
52 Map<String, DeploymentFlavorModel> allowedFlavors;
54 allowedFlavors = manualVspDataCollectionService.getAllowedFlavors(vspId, version);
55 } catch (Exception ex) {
56 allowedFlavors = null;
58 if (MapUtils.isNotEmpty(allowedFlavors)) {
59 vspModelInfo.setAllowedFlavors(allowedFlavors);
62 //Get VFC Image information
63 Map<String, List<MultiFlavorVfcImage>> vspComponentImages;
66 manualVspDataCollectionService.getVspComponentImages(vspId, version);
67 } catch (Exception ex) {
68 vspComponentImages = null;
70 if (MapUtils.isNotEmpty(vspComponentImages)) {
71 vspModelInfo.setMultiFlavorVfcImages(vspComponentImages);
74 //Get VFC component information
75 Map<String, String> vspComponents;
77 vspComponents = manualVspDataCollectionService.getVspComponents(vspId, version);
78 } catch (Exception ex) {
81 if (MapUtils.isNotEmpty(vspComponents)) {
82 vspModelInfo.setComponents(vspComponents);
85 //Get VSP component nic information
86 Map<String, List<Nic>> vspComponentNics;
88 vspComponentNics = manualVspDataCollectionService.getVspComponentNics(vspId, version);
89 } catch (Exception ex) {
90 vspComponentNics = null;
92 if (MapUtils.isNotEmpty(vspComponentNics)) {
93 vspModelInfo.setNics(vspComponentNics);
99 public ToscaServiceModel generateToscaModel(VspModelInfo vspModelInfo) {
100 ManualVspToscaGenerationService vspToscaGenerator = new ManualVspToscaGenerationService();
101 return vspToscaGenerator.createManualVspToscaServiceModel(vspModelInfo);