/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.vipr.client.core.util;
import java.util.ArrayList;
import java.util.List;
import com.emc.storageos.model.vpool.NamedRelatedVirtualPoolRep;
import com.emc.storageos.model.vpool.VirtualPoolHighAvailabilityParam;
public class VirtualPoolUtils {
public static final String FILE = "file";
public static final String BLOCK = "block";
public static final String VPLEX_LOCAL = "vplex_local";
public static final String VPLEX_DISTRIBUTED = "vplex_distributed";
public static final String OBJECT = "object";
private static boolean isVplexLocal(String type) {
return VPLEX_LOCAL.equals(type);
}
public static boolean isVplexDistributed(String type) {
return VPLEX_DISTRIBUTED.equals(type);
}
public static boolean isHighAvailability(VirtualPoolHighAvailabilityParam ha) {
return (ha != null) && (isVplexLocal(ha.getType()) || isVplexDistributed(ha.getType()));
}
public static List<NamedRelatedVirtualPoolRep> fileVpools(List<NamedRelatedVirtualPoolRep> pools) {
return byType(pools, FILE);
}
public static List<NamedRelatedVirtualPoolRep> blockVpools(List<NamedRelatedVirtualPoolRep> pools) {
return byType(pools, BLOCK);
}
public static List<NamedRelatedVirtualPoolRep> objectVpools(List<NamedRelatedVirtualPoolRep> pools) {
return byType(pools, OBJECT);
}
private static List<NamedRelatedVirtualPoolRep> byType(List<NamedRelatedVirtualPoolRep> pools, String type) {
List<NamedRelatedVirtualPoolRep> response = new ArrayList<NamedRelatedVirtualPoolRep>();
for (NamedRelatedVirtualPoolRep pool : pools) {
if (type.equalsIgnoreCase(pool.getVirtualPoolType())) {
response.add(pool);
}
}
return response;
}
}