package com.sungardas.enhancedsnapshots.dto.converter; import com.amazonaws.services.ec2.model.Tag; import com.amazonaws.services.ec2.model.Volume; import com.sungardas.enhancedsnapshots.dto.VolumeDto; import org.springframework.beans.BeanUtils; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; public class VolumeDtoConverter { public static VolumeDto convert(Volume volume) { VolumeDto volumeDto = new VolumeDto(); BeanUtils.copyProperties(volume, volumeDto); List<Tag> tags = new ArrayList<>(); for (Tag tag : volume.getTags()) { // check whether volume has Name tag if (tag.getKey().equals("Name")) { volumeDto.setVolumeName(tag.getValue()); } else { tags.add(tag); } } volumeDto.setTags(tags); // check whether volume is attached to instance if (volume.getAttachments().size() > 0) { volumeDto.setInstanceID(volume.getAttachments().get(0).getInstanceId()); } return volumeDto; } public static Set<VolumeDto> convert(Iterable<Volume> volumes) { Set<VolumeDto> volumeDtoList = new LinkedHashSet<>(); for (Volume volume : volumes) { if(!isTempVolume(volume)){ volumeDtoList.add(convert(volume)); } } return volumeDtoList; } private static boolean isTempVolume(Volume volume) { List<Tag> tags = volume.getTags(); for (Tag toCheck: tags) { if(toCheck.getKey().equals("ESTempVolume")) return true; } return false; } }