/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package jobs.vipr; import java.net.URI; import java.util.Collection; import java.util.List; import java.util.Set; import util.BourneUtil; import com.emc.storageos.model.NamedRelatedResourceRep; import com.emc.storageos.model.vpool.FileVirtualPoolRestRep; import com.emc.vipr.client.ViPRCoreClient; import com.emc.vipr.client.core.util.CachedResources; import com.emc.vipr.client.core.util.RelatedResourceComparator; import com.google.common.collect.Sets; /** * Fetches connected file virtual pools for the given virtual arrays. */ public class ConnectedFileVirtualPoolsCall extends ViPRListCall<FileVirtualPoolRestRep> { private Collection<URI> varrayIds; public ConnectedFileVirtualPoolsCall(Collection<URI> varrayIds) { this(BourneUtil.getViprClient(), varrayIds); } public ConnectedFileVirtualPoolsCall(ViPRCoreClient client, Collection<URI> varrayIds) { this(client, new CachedResources<FileVirtualPoolRestRep>(client.fileVpools()), varrayIds); } public ConnectedFileVirtualPoolsCall(ViPRCoreClient client, CachedResources<FileVirtualPoolRestRep> cache, Collection<URI> varrayIds) { super(client, cache); this.varrayIds = varrayIds; } @Override public List<FileVirtualPoolRestRep> call() { Set<NamedRelatedResourceRep> refs = Sets.newTreeSet(new RelatedResourceComparator()); for (URI varrayId : varrayIds) { refs.addAll(client.fileVpools().listByVirtualArray(varrayId)); } return getByRefs(refs); } }