Search in sources :

Example 61 with ResourceManager

use of org.ow2.proactive.resourcemanager.frontend.ResourceManager in project scheduling by ow2-proactive.

the class TestRMProxy method requestWithTwoUsers.

private void requestWithTwoUsers(RMProxy proxy1, RMProxy proxy2, ResourceManager rm) throws Exception {
    log("Request nodes for two users");
    NodeSet nodeSet1 = proxy1.getNodes(new Criteria(1));
    NodeSet nodeSet2 = proxy2.getNodes(new Criteria(2));
    waitWhenNodeSetAcquired(nodeSet1, 1);
    waitWhenNodeSetAcquired(nodeSet2, 2);
    assertEquals(NODES_NUMBER - 3, rm.getState().getFreeNodesNumber());
    proxy1.releaseNodes(nodeSet1);
    proxy2.releaseNodes(nodeSet2);
    waitWhenNodesAreReleased(3);
    assertEquals(NODES_NUMBER, rm.getState().getFreeNodesNumber());
}
Also used : NodeSet(org.ow2.proactive.utils.NodeSet) Criteria(org.ow2.proactive.utils.Criteria)

Example 62 with ResourceManager

use of org.ow2.proactive.resourcemanager.frontend.ResourceManager in project scheduling by ow2-proactive.

the class TestRMProxy method requestReleaseOneNode.

private void requestReleaseOneNode(RMProxy proxy, ResourceManager rm) throws Exception {
    log("Request and release single node");
    NodeSet nodeSet = proxy.getNodes(new Criteria(1));
    waitWhenNodeSetAcquired(nodeSet, 1);
    proxy.releaseNodes(nodeSet);
    waitWhenNodesAreReleased(1);
    assertEquals(NODES_NUMBER, rm.getState().getFreeNodesNumber());
}
Also used : NodeSet(org.ow2.proactive.utils.NodeSet) Criteria(org.ow2.proactive.utils.Criteria)

Example 63 with ResourceManager

use of org.ow2.proactive.resourcemanager.frontend.ResourceManager in project scheduling by ow2-proactive.

the class TestRMProxyRebind method testRebind.

private void testRebind(URI rmUri1, URI rmUri2, ResourceManager rm1, ResourceManager rm2, RMMonitorsHandler monitorsHandler1, RMMonitorsHandler monitorsHandler2, boolean singleConnection) throws Exception {
    RMProxiesManager proxiesManager;
    if (singleConnection) {
        proxiesManager = new SingleConnectionRMProxiesManager(rmUri1, schedulerProxyCredentials);
    } else {
        proxiesManager = new PerUserConnectionRMProxiesManager(rmUri1, schedulerProxyCredentials);
    }
    Credentials user1Credentials = Credentials.createCredentials(new CredData("admin", "admin"), helper1.getAuth().getPublicKey());
    RMProxy proxy1 = proxiesManager.getUserRMProxy("admin", user1Credentials);
    log("Get one node with RM1");
    NodeSet rm1NodeSet1 = proxy1.getNodes(new Criteria(1));
    waitWhenNodeSetAcquired(rm1NodeSet1, 1, monitorsHandler1);
    checkFreeNodes(rm1, NODES_NUMBER - 1);
    checkFreeNodes(rm2, NODES_NUMBER);
    assertEquals(NODES_NUMBER - 1, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    log("Get one node with RM1");
    NodeSet rm1NodeSet2 = proxy1.getNodes(new Criteria(1));
    waitWhenNodeSetAcquired(rm1NodeSet2, 1, monitorsHandler1);
    checkFreeNodes(rm1, NODES_NUMBER - 2);
    checkFreeNodes(rm2, NODES_NUMBER);
    assertEquals(NODES_NUMBER - 2, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    assertTrue(proxiesManager.getRmProxy().isActive().getBooleanValue());
    log("Rebinding to " + rmUri2);
    proxiesManager.rebindRMProxiesManager(rmUri2);
    assertEquals(NODES_NUMBER, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    assertTrue(proxiesManager.getRmProxy().isActive().getBooleanValue());
    waitWhenNodeSetReleased(2, monitorsHandler1);
    log("Get one node with RM2");
    NodeSet rm2NodeSet1 = proxy1.getNodes(new Criteria(1));
    waitWhenNodeSetAcquired(rm2NodeSet1, 1, monitorsHandler2);
    checkFreeNodes(rm1, NODES_NUMBER);
    checkFreeNodes(rm2, NODES_NUMBER - 1);
    assertEquals(NODES_NUMBER - 1, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    log("Get two nodes with RM2");
    NodeSet rm2NodeSet2 = proxy1.getNodes(new Criteria(2));
    waitWhenNodeSetAcquired(rm2NodeSet2, 2, monitorsHandler2);
    checkFreeNodes(rm1, NODES_NUMBER);
    checkFreeNodes(rm2, NODES_NUMBER - 3);
    assertEquals(NODES_NUMBER - 3, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    log("Release one node with RM2");
    proxy1.releaseNodes(rm2NodeSet1);
    waitWhenNodeSetReleased(1, monitorsHandler2);
    checkFreeNodes(rm1, NODES_NUMBER);
    checkFreeNodes(rm2, NODES_NUMBER - 2);
    assertEquals(NODES_NUMBER - 2, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    log("Kill RM1");
    PAFuture.waitFor(rm1.shutdown(true));
    helper1.kill();
    rm1 = null;
    assertEquals(NODES_NUMBER - 2, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    assertTrue(proxiesManager.getRmProxy().isActive().getBooleanValue());
    log("Release two nodes with RM2");
    proxy1.releaseNodes(rm2NodeSet2);
    waitWhenNodeSetReleased(2, monitorsHandler2);
    checkFreeNodes(rm2, NODES_NUMBER);
    assertEquals(NODES_NUMBER, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    assertTrue(proxiesManager.getRmProxy().isActive().getBooleanValue());
    log("Try to release node with terminated RM1");
    proxy1.releaseNodes(rm1NodeSet2);
    log("Try to release node with terminated RM1 one more time");
    proxy1.releaseNodes(rm1NodeSet2);
    assertEquals(NODES_NUMBER, proxiesManager.getRmProxy().getState().getFreeNodesNumber());
    assertTrue(proxiesManager.getRmProxy().isActive().getBooleanValue());
    log("Terminate all proxies");
    proxiesManager.terminateAllProxies();
}
Also used : NodeSet(org.ow2.proactive.utils.NodeSet) RMProxy(org.ow2.proactive.scheduler.core.rmproxies.RMProxy) PerUserConnectionRMProxiesManager(org.ow2.proactive.scheduler.core.rmproxies.PerUserConnectionRMProxiesManager) CredData(org.ow2.proactive.authentication.crypto.CredData) Criteria(org.ow2.proactive.utils.Criteria) SingleConnectionRMProxiesManager(org.ow2.proactive.scheduler.core.rmproxies.SingleConnectionRMProxiesManager) PerUserConnectionRMProxiesManager(org.ow2.proactive.scheduler.core.rmproxies.PerUserConnectionRMProxiesManager) SingleConnectionRMProxiesManager(org.ow2.proactive.scheduler.core.rmproxies.SingleConnectionRMProxiesManager) RMProxiesManager(org.ow2.proactive.scheduler.core.rmproxies.RMProxiesManager) Credentials(org.ow2.proactive.authentication.crypto.Credentials)

Example 64 with ResourceManager

use of org.ow2.proactive.resourcemanager.frontend.ResourceManager in project scheduling by ow2-proactive.

the class TestChildProcessOfNodeKilled method startSchedulerAndRMWithOneNode.

private TestNode startSchedulerAndRMWithOneNode() throws Exception {
    ResourceManager resourceManager = schedulerHelper.getResourceManager();
    testNode = schedulerHelper.createRMNodeStarterNodes("test1", 1).get(0);
    resourceManager.addNode(testNode.getNode().getNodeInformation().getURL());
    return testNode;
}
Also used : ResourceManager(org.ow2.proactive.resourcemanager.frontend.ResourceManager)

Aggregations

ResourceManager (org.ow2.proactive.resourcemanager.frontend.ResourceManager)45 NodeSet (org.ow2.proactive.utils.NodeSet)26 RMFunctionalTest (functionaltests.utils.RMFunctionalTest)25 Test (org.junit.Test)25 Node (org.objectweb.proactive.core.node.Node)16 File (java.io.File)14 Credentials (org.ow2.proactive.authentication.crypto.Credentials)14 Criteria (org.ow2.proactive.utils.Criteria)13 HashMap (java.util.HashMap)11 CredData (org.ow2.proactive.authentication.crypto.CredData)11 StaticPolicy (org.ow2.proactive.resourcemanager.nodesource.policy.StaticPolicy)11 RMAuthentication (org.ow2.proactive.resourcemanager.authentication.RMAuthentication)10 RMNodeEvent (org.ow2.proactive.resourcemanager.common.event.RMNodeEvent)10 TestNode (functionaltests.utils.TestNode)9 SelectionScript (org.ow2.proactive.scripting.SelectionScript)9 RMMonitorEventReceiver (functionaltests.monitor.RMMonitorEventReceiver)5 Path (javax.ws.rs.Path)5 Produces (javax.ws.rs.Produces)5 BooleanWrapper (org.objectweb.proactive.core.util.wrapper.BooleanWrapper)5 PublicKey (java.security.PublicKey)4