Search in sources :

Example 6 with VPlexBackendManager

use of com.emc.storageos.vplexcontroller.VPlexBackendManager in project coprhd-controller by CoprHD.

the class VPlexHDSMaskingOrchestratorTest method main.

public static void main(String[] args) {
    VdcUtil.setDbClient(new DummyDbClient());
    PropertyConfigurator.configure("log4j.properties");
    _log.info("Beginning logging");
    PortAllocatorTestContext contextPrototype = new PortAllocatorTestContext();
    StoragePortsAllocator.setContextPrototype(contextPrototype);
    VPlexHDSMaskingOrchestrator orca = new VPlexHDSMaskingOrchestrator(null, null);
    VPlexBackendManager bemgr = new VPlexBackendManager();
    orca.setSimulation(true);
    URI arrayURI = URI.create("hdsArray");
    Map<String, Set<String>> directorToInitiators = new HashMap<String, Set<String>>();
    Map<String, URI> initiatorIdToNetwork = new HashMap<String, URI>();
    Map<String, Initiator> initiatorMap = new HashMap<String, Initiator>();
    PortAllocationContext context = null;
    Map<URI, NetworkLite> networkMap = new HashMap<URI, NetworkLite>();
    Map<URI, List<StoragePort>> allocatablePorts = new HashMap<URI, List<StoragePort>>();
    URI varray1 = URI.create("varray1");
    context = getNet1Ports(networkMap, allocatablePorts);
    context = getNet2Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net1", "net2", null);
    Set<Map<String, Map<URI, Set<Initiator>>>> initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    // orca.getInitiatorGroups(directorToInitiators, initiatorIdToNetwork, initiatorMap);
    Set<Map<URI, List<List<StoragePort>>>> portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet1Ports(networkMap, allocatablePorts);
    context = getNet0Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net1", "net0", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet3Ports(networkMap, allocatablePorts);
    context = getNet4Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net3", "net4", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet3Ports(networkMap, allocatablePorts);
    context = getNet4Ports(networkMap, allocatablePorts);
    context = getNet4XPorts(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net3", "net4", "net4X");
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet5Ports(networkMap, allocatablePorts);
    context = getNet6Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net5", "net6", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet7Ports(networkMap, allocatablePorts);
    context = getNet8Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net7", "net8", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet573APorts(networkMap, allocatablePorts);
    context = getNet573BPorts(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net573A", "net573B", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) PortAllocatorTestContext(com.emc.storageos.volumecontroller.placement.PortAllocatorTestContext) HashMap(java.util.HashMap) NetworkLite(com.emc.storageos.util.NetworkLite) VPlexBackendManager(com.emc.storageos.vplexcontroller.VPlexBackendManager) StoragePort(com.emc.storageos.db.client.model.StoragePort) URI(java.net.URI) Initiator(com.emc.storageos.db.client.model.Initiator) DummyDbClient(com.emc.storageos.util.DummyDbClient) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) StringSetMap(com.emc.storageos.db.client.model.StringSetMap) PortAllocationContext(com.emc.storageos.volumecontroller.placement.StoragePortsAllocator.PortAllocationContext)

Example 7 with VPlexBackendManager

use of com.emc.storageos.vplexcontroller.VPlexBackendManager in project coprhd-controller by CoprHD.

the class VPlexHDSMaskingOrchestratorTest method makeExportMasks.

private static void makeExportMasks(URI arrayURI, VPlexHDSMaskingOrchestrator orca, Set<Map<URI, List<List<StoragePort>>>> portGroups, Set<Map<String, Map<URI, Set<Initiator>>>> initiatorGroups, Map<URI, NetworkLite> networkMap) {
    // Iterate through the PortGroups generating zoning info and an ExportMask
    Iterator<Map<String, Map<URI, Set<Initiator>>>> igIterator = initiatorGroups.iterator();
    for (Map<URI, List<List<StoragePort>>> portGroup : portGroups) {
        String maskName = "testMask" + maskCounter.toString();
        maskCounter++;
        _log.info("Generating ExportMask: " + maskName);
        if (!igIterator.hasNext()) {
            igIterator = initiatorGroups.iterator();
        }
        Map<String, Map<URI, Set<Initiator>>> initiatorGroup = igIterator.next();
        StoragePortsAssigner assigner = StoragePortsAssignerFactory.getAssignerForZones("hds", null);
        StringSetMap zoningMap = orca.configureZoning(portGroup, initiatorGroup, networkMap, assigner, null, null, null);
        VPlexBackendManager mgr = new VPlexBackendManager(null, null, null, null, null, URI.create("project"), URI.create("tenant"), null, null);
        ExportMask exportMask = mgr.generateExportMask(arrayURI, maskName, portGroup, initiatorGroup, zoningMap);
    }
    _log.info("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
}
Also used : StringSetMap(com.emc.storageos.db.client.model.StringSetMap) HashSet(java.util.HashSet) Set(java.util.Set) ExportMask(com.emc.storageos.db.client.model.ExportMask) VPlexBackendManager(com.emc.storageos.vplexcontroller.VPlexBackendManager) StoragePort(com.emc.storageos.db.client.model.StoragePort) URI(java.net.URI) StoragePortsAssigner(com.emc.storageos.volumecontroller.placement.StoragePortsAssigner) Initiator(com.emc.storageos.db.client.model.Initiator) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) StringSetMap(com.emc.storageos.db.client.model.StringSetMap)

Example 8 with VPlexBackendManager

use of com.emc.storageos.vplexcontroller.VPlexBackendManager in project coprhd-controller by CoprHD.

the class VPlexVmaxMaskingOrchestratorTest method makeExportMasksSA.

private static void makeExportMasksSA(URI arrayURI, VPlexVmaxMaskingOrchestrator orca, Set<Map<URI, List<List<StoragePort>>>> portGroups, Set<Map<String, Map<URI, Set<Initiator>>>> initiatorGroups, Map<URI, NetworkLite> networkMap, Map<URI, String> initiatorSwitchMap, Map<URI, Map<String, List<StoragePort>>> portSwitchMap) {
    // Iterate through the PortGroups generating zoning info and an ExportMask
    Iterator<Map<String, Map<URI, Set<Initiator>>>> igIterator = initiatorGroups.iterator();
    for (Map<URI, List<List<StoragePort>>> portGroup : portGroups) {
        String maskName = "testMask" + maskCounter.toString();
        maskCounter++;
        _log.info("Generating ExportMask: " + maskName);
        if (!igIterator.hasNext()) {
            igIterator = initiatorGroups.iterator();
        }
        Map<String, Map<URI, Set<Initiator>>> initiatorGroup = igIterator.next();
        StoragePortsAssigner assigner = StoragePortsAssignerFactory.getAssignerForZones("vmax", null);
        StringSetMap zoningMap = orca.configureZoning(portGroup, initiatorGroup, networkMap, assigner, initiatorSwitchMap, portSwitchMap, getPortSwitchNameMap(portSwitchMap));
        VPlexBackendManager mgr = new VPlexBackendManager(null, null, null, null, null, URI.create("project"), URI.create("tenant"), null, null);
        mgr.generateExportMask(arrayURI, maskName, portGroup, initiatorGroup, zoningMap);
    }
    _log.info("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
}
Also used : StringSetMap(com.emc.storageos.db.client.model.StringSetMap) HashSet(java.util.HashSet) Set(java.util.Set) VPlexBackendManager(com.emc.storageos.vplexcontroller.VPlexBackendManager) StoragePort(com.emc.storageos.db.client.model.StoragePort) URI(java.net.URI) StoragePortsAssigner(com.emc.storageos.volumecontroller.placement.StoragePortsAssigner) Initiator(com.emc.storageos.db.client.model.Initiator) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) StringSetMap(com.emc.storageos.db.client.model.StringSetMap)

Example 9 with VPlexBackendManager

use of com.emc.storageos.vplexcontroller.VPlexBackendManager in project coprhd-controller by CoprHD.

the class VPlexVnxMaskingOrchestratorTest method makeExportMasks.

private static void makeExportMasks(URI arrayURI, VPlexVnxMaskingOrchestrator orca, Set<Map<URI, List<List<StoragePort>>>> portGroups, Set<Map<String, Map<URI, Set<Initiator>>>> initiatorGroups, Map<URI, NetworkLite> networkMap) {
    // Iterate through the PortGroups generating zoning info and an ExportMask
    Iterator<Map<String, Map<URI, Set<Initiator>>>> igIterator = initiatorGroups.iterator();
    Iterator<Map<URI, List<List<StoragePort>>>> pgIterator = portGroups.iterator();
    while (igIterator.hasNext()) {
        Map<String, Map<URI, Set<Initiator>>> initiatorGroup = igIterator.next();
        String maskName = "testMask" + maskCounter.toString();
        if (!pgIterator.hasNext()) {
            break;
        }
        Map<URI, List<List<StoragePort>>> portGroup = pgIterator.next();
        maskCounter++;
        _log.info("Generating ExportMask: " + maskName);
        StoragePortsAssigner assigner = StoragePortsAssignerFactory.getAssignerForZones("vnxblock", null);
        StringSetMap zoningMap = orca.configureZoning(portGroup, initiatorGroup, networkMap, assigner, null, null, null);
        VPlexBackendManager mgr = new VPlexBackendManager(null, null, null, null, null, URI.create("project"), URI.create("tenant"), null, null);
        ExportMask exportMask = mgr.generateExportMask(arrayURI, maskName, portGroup, initiatorGroup, zoningMap);
    }
    _log.info("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
}
Also used : StringSetMap(com.emc.storageos.db.client.model.StringSetMap) HashSet(java.util.HashSet) Set(java.util.Set) ExportMask(com.emc.storageos.db.client.model.ExportMask) VPlexBackendManager(com.emc.storageos.vplexcontroller.VPlexBackendManager) StoragePort(com.emc.storageos.db.client.model.StoragePort) URI(java.net.URI) StoragePortsAssigner(com.emc.storageos.volumecontroller.placement.StoragePortsAssigner) Initiator(com.emc.storageos.db.client.model.Initiator) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) StringSetMap(com.emc.storageos.db.client.model.StringSetMap)

Example 10 with VPlexBackendManager

use of com.emc.storageos.vplexcontroller.VPlexBackendManager in project coprhd-controller by CoprHD.

the class VPlexXtremIOMaskingOrchestratorTest method main.

public static void main(String[] args) throws InterruptedException {
    VdcUtil.setDbClient(new DummyDbClient());
    PropertyConfigurator.configure("log4j.properties");
    _log.info("Beginning logging");
    PortAllocatorTestContext contextPrototype = new PortAllocatorTestContext();
    StoragePortsAllocator.setContextPrototype(contextPrototype);
    VplexXtremIOMaskingOrchestrator orca = new VplexXtremIOMaskingOrchestrator(null, null);
    VPlexBackendManager bemgr = new VPlexBackendManager();
    orca.setSimulation(true);
    URI arrayURI = URI.create("vmaxArray");
    Map<String, Set<String>> directorToInitiators = new HashMap<String, Set<String>>();
    Map<String, URI> initiatorIdToNetwork = new HashMap<String, URI>();
    Map<String, Initiator> initiatorMap = new HashMap<String, Initiator>();
    PortAllocationContext context = null;
    Map<URI, NetworkLite> networkMap = new HashMap<URI, NetworkLite>();
    Map<URI, List<StoragePort>> allocatablePorts = new HashMap<URI, List<StoragePort>>();
    URI varray1 = URI.create("varray1");
    // single VPLEX Engine
    /**
     * Single VPLEX Engine (2 Directors)
     * Single X-brick (2 SCs, 4 storage ports), 2 networks
     * SC ports spread across networks
     */
    context = getNet1Ports(networkMap, allocatablePorts);
    context = getNet2Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net1", "net2", null);
    Set<Map<String, Map<URI, Set<Initiator>>>> initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    // orca.getInitiatorGroups(directorToInitiators, initiatorIdToNetwork, initiatorMap);
    int directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    Set<Map<URI, List<List<StoragePort>>>> portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Single VPLEX Engine (2 Directors)
     * Dual X-bricks (4 SCs, 8 storage ports), 2 networks
     * ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet3Ports(networkMap, allocatablePorts);
    context = getNet4Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net3", "net4", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Single VPLEX Engine (2 Directors)
     * Dual X-bricks (4 SCs, 8 storage ports), 2 networks
     * network-1 has X-brick 1's ports; network-2 has X-brick 2's ports;
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet5Ports(networkMap, allocatablePorts);
    context = getNet6Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net5", "net6", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Single VPLEX Engine (2 Directors)
     * Quad X-bricks (8 SCs, 16 storage ports), 2 networks
     * ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet7Ports(networkMap, allocatablePorts);
    context = getNet8Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net7", "net8", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Single VPLEX Engine (2 Directors)
     * Dual X-bricks (4 SCs, 3 ports from X-brick 1, 3 ports from X-brick 2), 2 networks
     * ports spread across networks with second network having only 2 ports
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNetAPorts(networkMap, allocatablePorts);
    context = getNetBPorts(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1(directorToInitiators, initiatorIdToNetwork, initiatorMap, "netA", "netB", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    // Dual VPLEX Engine
    /**
     * Dual VPLEX Engine (4 Directors)
     * Single X-brick (2 SCs, 4 storage ports), 2 networks
     * SC ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet1Ports(networkMap, allocatablePorts);
    context = getNet2Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1DualEngines(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net1", "net2", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Dual VPLEX Engine (4 Directors)
     * Dual X-bricks (4 SCs, 8 storage ports), 2 networks
     * ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet3Ports(networkMap, allocatablePorts);
    context = getNet4Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1DualEngines(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net3", "net4", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Dual VPLEX Engine (4 Directors)
     * Quad X-bricks (8 SCs, 16 storage ports), 2 networks
     * ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet7Ports(networkMap, allocatablePorts);
    context = getNet8Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1DualEngines(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net7", "net8", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    // Quad VPLEX Engine
    /**
     * Quad VPLEX Engine (8 Directors)
     * Single X-brick (2 SCs, 4 storage ports), 2 networks
     * SC ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet1Ports(networkMap, allocatablePorts);
    context = getNet2Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1QuadEngines(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net1", "net2", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Quad VPLEX Engine (8 Directors)
     * Dual X-bricks (4 SCs, 8 storage ports), 2 networks
     * ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet3Ports(networkMap, allocatablePorts);
    context = getNet4Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1QuadEngines(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net3", "net4", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Quad VPLEX Engine (8 Directors)
     * Quad X-bricks (8 SCs, 16 storage ports), 2 networks
     * ports spread across networks
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    context = getNet7Ports(networkMap, allocatablePorts);
    context = getNet8Ports(networkMap, allocatablePorts);
    logNetworks(allocatablePorts);
    getInitiatorsVplex154Clus1QuadEngines(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net7", "net8", null);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), null, null, null);
    makeExportMasks(arrayURI, orca, portGroups, initiatorGroups, networkMap);
    /**
     * Switch affinity tests
     */
    context.reinitialize();
    networkMap.clear();
    allocatablePorts.clear();
    Map<URI, Map<String, List<StoragePort>>> portSwitchMap = new HashMap<URI, Map<String, List<StoragePort>>>();
    PortAllocationContext context1 = getNet3PortsSA(networkMap, allocatablePorts, portSwitchMap);
    PortAllocationContext context2 = getNet4PortsSA(networkMap, allocatablePorts, portSwitchMap);
    Map<URI, PortAllocationContext> contextMap = new HashMap<URI, PortAllocationContext>();
    contextMap.put(context1._initiatorNetwork.getId(), context1);
    contextMap.put(context2._initiatorNetwork.getId(), context2);
    logNetworks(allocatablePorts);
    Map<URI, String> initiatorSwitchMap = new HashMap<URI, String>();
    getInitiatorsVplex154Clus1DualEnginesSA(directorToInitiators, initiatorIdToNetwork, initiatorMap, "net3SA", "net4SA", initiatorSwitchMap);
    initiatorGroups = bemgr.getInitiatorGroups("test", directorToInitiators, initiatorIdToNetwork, initiatorMap, false, true);
    directorCount = bemgr.getVplexDirectorCount(initiatorGroups);
    orca.setVplexDirectorCount(directorCount);
    Map<URI, Map<String, Integer>> switchPortNumber = getSwitchToPortNumber(networkMap.keySet(), 2);
    portGroups = orca.getPortGroups(allocatablePorts, networkMap, varray1, initiatorGroups.size(), switchPortNumber, contextMap, null);
    makeExportMasksSA(arrayURI, orca, portGroups, initiatorGroups, networkMap, initiatorSwitchMap, portSwitchMap);
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) PortAllocatorTestContext(com.emc.storageos.volumecontroller.placement.PortAllocatorTestContext) HashMap(java.util.HashMap) URI(java.net.URI) Initiator(com.emc.storageos.db.client.model.Initiator) ArrayList(java.util.ArrayList) List(java.util.List) NetworkLite(com.emc.storageos.util.NetworkLite) VPlexBackendManager(com.emc.storageos.vplexcontroller.VPlexBackendManager) StoragePort(com.emc.storageos.db.client.model.StoragePort) DummyDbClient(com.emc.storageos.util.DummyDbClient) HashMap(java.util.HashMap) Map(java.util.Map) StringSetMap(com.emc.storageos.db.client.model.StringSetMap) PortAllocationContext(com.emc.storageos.volumecontroller.placement.StoragePortsAllocator.PortAllocationContext)

Aggregations

Initiator (com.emc.storageos.db.client.model.Initiator)11 StoragePort (com.emc.storageos.db.client.model.StoragePort)11 StringSetMap (com.emc.storageos.db.client.model.StringSetMap)11 VPlexBackendManager (com.emc.storageos.vplexcontroller.VPlexBackendManager)11 URI (java.net.URI)11 ArrayList (java.util.ArrayList)11 HashMap (java.util.HashMap)11 HashSet (java.util.HashSet)11 List (java.util.List)11 Map (java.util.Map)11 Set (java.util.Set)11 StoragePortsAssigner (com.emc.storageos.volumecontroller.placement.StoragePortsAssigner)7 ExportMask (com.emc.storageos.db.client.model.ExportMask)5 DummyDbClient (com.emc.storageos.util.DummyDbClient)4 NetworkLite (com.emc.storageos.util.NetworkLite)4 PortAllocatorTestContext (com.emc.storageos.volumecontroller.placement.PortAllocatorTestContext)4 PortAllocationContext (com.emc.storageos.volumecontroller.placement.StoragePortsAllocator.PortAllocationContext)4