2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2018 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.vdu.mapper;
 
  23 import java.util.List;
 
  25 import org.onap.so.adapters.vdu.VduModelInfo;
 
  26 import org.onap.so.adapters.vdu.VduArtifact;
 
  27 import org.onap.so.adapters.vdu.VduArtifact.ArtifactType;
 
  28 import org.onap.so.db.catalog.beans.HeatEnvironment;
 
  29 import org.onap.so.db.catalog.beans.HeatFiles;
 
  30 import org.onap.so.db.catalog.beans.HeatTemplate;
 
  31 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 
  32 import org.springframework.stereotype.Component;
 
  35 public class VfModuleCustomizationToVduMapper {
 
  37         public VduModelInfo mapVfModuleCustomizationToVdu(VfModuleCustomization vfModuleCustom)
 
  39                 VduModelInfo vduModel = new VduModelInfo();
 
  40                 vduModel.setModelCustomizationUUID(vfModuleCustom.getModelCustomizationUUID());
 
  41                 vduModel.setModelUUID(vfModuleCustom.getVfModule().getModelUUID());
 
  42                 vduModel.setModelInvariantUUID(vfModuleCustom.getVfModule().getModelInvariantUUID());
 
  44                 // Map the cloud templates, attached files, and environment file
 
  45                 mapCloudTemplates(vfModuleCustom.getVfModule().getModuleHeatTemplate(), vduModel);
 
  46                 mapCloudFiles(vfModuleCustom,vduModel);
 
  47                 mapEnvironment(vfModuleCustom.getHeatEnvironment(), vduModel);
 
  52         public VduModelInfo mapVfModuleCustVolumeToVdu(VfModuleCustomization vfModuleCustom)
 
  54                 VduModelInfo vduModel = new VduModelInfo();
 
  55                 vduModel.setModelCustomizationUUID(vfModuleCustom.getModelCustomizationUUID());
 
  56                 vduModel.setModelUUID(vfModuleCustom.getVfModule().getModelUUID());
 
  57                 vduModel.setModelInvariantUUID(vfModuleCustom.getVfModule().getModelInvariantUUID());
 
  59                 // Map the cloud templates, attached files, and environment file
 
  60                 mapCloudTemplates(vfModuleCustom.getVfModule().getVolumeHeatTemplate(), vduModel);
 
  61                 mapCloudFiles(vfModuleCustom,vduModel);
 
  62                 mapEnvironment(vfModuleCustom.getVolumeHeatEnv(), vduModel);
 
  67         private void mapCloudTemplates(HeatTemplate heatTemplate, VduModelInfo vduModel) {
 
  68                 // TODO:  These catalog objects will be refactored to be non-Heat-specific
 
  70                 List<VduArtifact> vduArtifacts = vduModel.getArtifacts();
 
  72                 // Main template.  Also set the VDU timeout based on the main template.
 
  73                 vduArtifacts.add(mapHeatTemplateToVduArtifact(heatTemplate, ArtifactType.MAIN_TEMPLATE));
 
  74                 vduModel.setTimeoutMinutes(heatTemplate.getTimeoutMinutes());
 
  77                 List<HeatTemplate> childTemplates = heatTemplate.getChildTemplates();
 
  78                 if (childTemplates != null) {
 
  79                         for(HeatTemplate childTemplate : childTemplates){
 
  80                                 vduArtifacts.add(mapHeatTemplateToVduArtifact(childTemplate, ArtifactType.NESTED_TEMPLATE));
 
  85         private VduArtifact mapHeatTemplateToVduArtifact(HeatTemplate heatTemplate, ArtifactType artifactType) {
 
  86                 VduArtifact vduArtifact = new VduArtifact();
 
  87                 vduArtifact.setName(heatTemplate.getTemplateName());
 
  88                 vduArtifact.setContent(heatTemplate.getHeatTemplate().getBytes());
 
  89                 vduArtifact.setType(artifactType);
 
  93         private void mapCloudFiles(VfModuleCustomization vfModuleCustom, VduModelInfo vduModel) {
 
  94                 // TODO:  These catalog objects will be refactored to be non-Heat-specific
 
  96                 List<VduArtifact> vduArtifacts = vduModel.getArtifacts();
 
  99                 List<HeatFiles> heatFiles = vfModuleCustom.getVfModule().getHeatFiles();
 
 100                 if (heatFiles != null) {
 
 101                         for(HeatFiles file : heatFiles){
 
 102                                 vduArtifacts.add(mapCloudFileToVduArtifact(file, ArtifactType.TEXT_FILE));
 
 107         private VduArtifact mapCloudFileToVduArtifact(HeatFiles heatFile, ArtifactType artifactType) {
 
 108                 VduArtifact vduArtifact = new VduArtifact();
 
 109                 vduArtifact.setName(heatFile.getFileName());
 
 110                 vduArtifact.setContent(heatFile.getFileBody().getBytes());
 
 111                 vduArtifact.setType(artifactType);
 
 115         private void mapEnvironment(HeatEnvironment heatEnvironment, VduModelInfo vduModel) {
 
 116                 // TODO:  These catalog objects will be refactored to be non-Heat-specific
 
 117                 if (heatEnvironment != null) {
 
 118                         List<VduArtifact> vduArtifacts = vduModel.getArtifacts();
 
 119                         vduArtifacts.add(mapEnvironmentFileToVduArtifact(heatEnvironment));
 
 123         private VduArtifact mapEnvironmentFileToVduArtifact(HeatEnvironment heatEnv) {
 
 124                 VduArtifact vduArtifact = new VduArtifact();
 
 125                 vduArtifact.setName(heatEnv.getName());
 
 126                 vduArtifact.setContent(heatEnv.getEnvironment().getBytes());
 
 127                 vduArtifact.setType(ArtifactType.ENVIRONMENT);