/* * Copyright (c) 2015 EMC * All Rights Reserved */ package com.emc.sa.service.vipr.block.tasks; import java.net.URI; import java.util.List; import java.util.Set; import com.emc.sa.service.vipr.tasks.ViPRExecutionTask; import com.emc.storageos.model.NamedRelatedResourceRep; import com.emc.storageos.model.block.NamedVolumeGroupsList; import com.google.common.collect.Lists; import com.google.common.collect.Sets; public class GetMobilityGroupVolumes extends ViPRExecutionTask<Set<URI>> { private final List<URI> mobilityGroups = Lists.newArrayList(); public GetMobilityGroupVolumes(List<URI> mobilityGroups) { this.mobilityGroups.addAll(mobilityGroups); provideDetailArgs(mobilityGroups); } public GetMobilityGroupVolumes(NamedVolumeGroupsList children) { for (NamedRelatedResourceRep child : children.getVolumeGroups()) { mobilityGroups.add(child.getId()); } provideDetailArgs(mobilityGroups); } @Override public Set<URI> executeTask() throws Exception { Set<URI> volumes = Sets.newHashSet(); for (URI mobilityGroup : mobilityGroups) { List<NamedRelatedResourceRep> volRefs = getClient().application().getVolumes(mobilityGroup); for (NamedRelatedResourceRep volume : volRefs) { volumes.add(volume.getId()); } } return volumes; } }