Search in sources :

Example 26 with Node

use of org.objectweb.proactive.core.node.Node in project scheduling by ow2-proactive.

the class TestNSProviderPermissions method testNodeProviderMe.

@Test
public void testNodeProviderMe() throws Exception {
    RMTHelper.log("Test1 - node providers = ME");
    ResourceManager nsadmin = rmHelper.getResourceManager(TestUsers.NSADMIN);
    nsadmin.createNodeSource(nsName, DefaultInfrastructureManager.class.getName(), null, StaticPolicy.class.getName(), new Object[] { "ALL", "ME" }, NODES_NOT_RECOVERABLE);
    List<TestNode> nodePool = rmHelper.createNodes("node", 2);
    testNode = nodePool.get(0);
    rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_CREATED, nsName);
    Node node1 = nodePool.remove(0).getNode();
    Node node2 = nodePool.remove(0).getNode();
    nsadmin.addNode(node1.getNodeInformation().getURL(), nsName).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_ADDED);
    ResourceManager user = rmHelper.getResourceManager(TestUsers.RADMIN);
    try {
        // user does not allow to add nodes
        user.addNode(node2.getNodeInformation().getURL(), nsName).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    try {
        // user does not allow to remove nodes
        user.removeNode(node1.getNodeInformation().getURL(), true).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    // AllPermission user
    ResourceManager admin = rmHelper.getResourceManager(TestUsers.ADMIN);
    // user does not allow to add nodes
    admin.addNode(node2.getNodeInformation().getURL(), nsName).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_ADDED);
    // user does not allow to remove nodes
    admin.removeNode(node1.getNodeInformation().getURL(), true).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
    // user does not allow to remove nodes
    admin.removeNodeSource(nsName, true).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
    rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_REMOVED, nsName);
}
Also used : DefaultInfrastructureManager(org.ow2.proactive.resourcemanager.nodesource.infrastructure.DefaultInfrastructureManager) StaticPolicy(org.ow2.proactive.resourcemanager.nodesource.policy.StaticPolicy) TestNode(functionaltests.utils.TestNode) Node(org.objectweb.proactive.core.node.Node) TestNode(functionaltests.utils.TestNode) ResourceManager(org.ow2.proactive.resourcemanager.frontend.ResourceManager) RMFunctionalTest(functionaltests.utils.RMFunctionalTest) Test(org.junit.Test)

Example 27 with Node

use of org.objectweb.proactive.core.node.Node in project scheduling by ow2-proactive.

the class TestNSProviderPermissions method testSpecificUsers.

@Test
public void testSpecificUsers() throws Exception {
    RMTHelper.log("Test5.1 - specific users");
    admin = rmHelper.getResourceManager(TestUsers.ADMIN);
    admin.createNodeSource(nsName, DefaultInfrastructureManager.class.getName(), null, StaticPolicy.class.getName(), new Object[] { "ALL", "users=nsadmin" }, NODES_NOT_RECOVERABLE);
    rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_CREATED, nsName);
    List<TestNode> nodePool = rmHelper.createNodes("node", 3);
    testNode = nodePool.get(0);
    Node node1 = nodePool.remove(0).getNode();
    Node node2 = nodePool.remove(0).getNode();
    Node node3 = nodePool.remove(0).getNode();
    admin.addNode(node1.getNodeInformation().getURL(), nsName).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_ADDED);
    nsadmin = rmHelper.getResourceManager(TestUsers.NSADMIN);
    try {
        // nsadmin cannot remove node as he is not a node owner
        nsadmin.removeNode(node1.getNodeInformation().getURL(), true).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    nsadmin.addNode(node2.getNodeInformation().getURL(), nsName).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_ADDED);
    user = rmHelper.getResourceManager(TestUsers.RADMIN);
    try {
        // user cannot add new nodes
        user.addNode(node3.getNodeInformation().getURL(), nsName).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    try {
        // user cannot remove node as he is not a node owner
        user.removeNode(node2.getNodeInformation().getURL(), true).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    admin = rmHelper.getResourceManager(TestUsers.ADMIN);
    try {
        // user does not allow to remove nodes
        admin.removeNodeSource(nsName, true).getBooleanValue();
        rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
        rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
        rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_REMOVED, nsName);
    } catch (Exception e) {
        fail();
    }
}
Also used : DefaultInfrastructureManager(org.ow2.proactive.resourcemanager.nodesource.infrastructure.DefaultInfrastructureManager) StaticPolicy(org.ow2.proactive.resourcemanager.nodesource.policy.StaticPolicy) TestNode(functionaltests.utils.TestNode) Node(org.objectweb.proactive.core.node.Node) TestNode(functionaltests.utils.TestNode) RMFunctionalTest(functionaltests.utils.RMFunctionalTest) Test(org.junit.Test)

Example 28 with Node

use of org.objectweb.proactive.core.node.Node in project scheduling by ow2-proactive.

the class TestNSProviderPermissions method testAdminPriviledge.

@Test
public void testAdminPriviledge() throws Exception {
    RMTHelper.log("Test4 - admin priviledges");
    nsadmin = rmHelper.getResourceManager(TestUsers.NSADMIN);
    nsadmin.createNodeSource(nsName, DefaultInfrastructureManager.class.getName(), null, StaticPolicy.class.getName(), new Object[] { "ALL", "ALL" }, NODES_NOT_RECOVERABLE);
    rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_CREATED, nsName);
    List<TestNode> nodePool = rmHelper.createNodes("node", 2);
    testNode = nodePool.get(0);
    Node node1 = nodePool.remove(0).getNode();
    nsadmin.addNode(node1.getNodeInformation().getURL(), nsName).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_ADDED);
    admin = rmHelper.getResourceManager(TestUsers.ADMIN);
    // admin can remove anything
    admin.removeNode(node1.getNodeInformation().getURL(), true).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
    admin.removeNodeSource(nsName, true);
    rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_REMOVED, nsName);
}
Also used : DefaultInfrastructureManager(org.ow2.proactive.resourcemanager.nodesource.infrastructure.DefaultInfrastructureManager) StaticPolicy(org.ow2.proactive.resourcemanager.nodesource.policy.StaticPolicy) TestNode(functionaltests.utils.TestNode) Node(org.objectweb.proactive.core.node.Node) TestNode(functionaltests.utils.TestNode) RMFunctionalTest(functionaltests.utils.RMFunctionalTest) Test(org.junit.Test)

Example 29 with Node

use of org.objectweb.proactive.core.node.Node in project scheduling by ow2-proactive.

the class TestNSProviderPermissions method testSpecificGroups.

@Test
public void testSpecificGroups() throws Exception {
    RMTHelper.log("Test5.2 - specific groups");
    admin = rmHelper.getResourceManager(TestUsers.ADMIN);
    admin.createNodeSource(nsName, DefaultInfrastructureManager.class.getName(), null, StaticPolicy.class.getName(), new Object[] { "ALL", "groups=nsadmins" }, NODES_NOT_RECOVERABLE).getBooleanValue();
    rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_CREATED, nsName);
    List<TestNode> nodePool = rmHelper.createNodes("node", 3);
    testNode = nodePool.get(0);
    Node node1 = nodePool.remove(0).getNode();
    Node node2 = nodePool.remove(0).getNode();
    Node node3 = nodePool.remove(0).getNode();
    admin.addNode(node1.getNodeInformation().getURL(), nsName).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_ADDED);
    nsadmin = rmHelper.getResourceManager(TestUsers.NSADMIN);
    try {
        // nsadmin cannot remove node as he is not a node owner
        nsadmin.removeNode(node1.getNodeInformation().getURL(), true).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    nsadmin.addNode(node2.getNodeInformation().getURL(), nsName).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_ADDED);
    user = rmHelper.getResourceManager(TestUsers.RADMIN);
    try {
        // user cannot add new nodes
        user.addNode(node3.getNodeInformation().getURL(), nsName).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    try {
        // user cannot remove node as he is not a node owner
        user.removeNode(node2.getNodeInformation().getURL(), true).getBooleanValue();
        fail();
    } catch (Exception expected) {
    }
    admin = rmHelper.getResourceManager(TestUsers.ADMIN);
    // user does not allow to remove nodes
    admin.removeNodeSource(nsName, true).getBooleanValue();
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
    rmHelper.waitForAnyNodeEvent(RMEventType.NODE_REMOVED);
    rmHelper.waitForNodeSourceEvent(RMEventType.NODESOURCE_REMOVED, nsName);
}
Also used : TestNode(functionaltests.utils.TestNode) Node(org.objectweb.proactive.core.node.Node) TestNode(functionaltests.utils.TestNode) RMFunctionalTest(functionaltests.utils.RMFunctionalTest) Test(org.junit.Test)

Example 30 with Node

use of org.objectweb.proactive.core.node.Node in project scheduling by ow2-proactive.

the class LocalSelectionTest method getNodesAndReleaseThem.

private void getNodesAndReleaseThem(int number, TopologyDescriptor descriptor, int expectedReceived, int expectedExtraNodesSize) {
    Criteria c = new Criteria(number);
    c.setTopology(descriptor);
    NodeSet ns = resourceManager.getNodes(c);
    Assert.assertEquals(expectedReceived, ns.size());
    Collection<Node> extra = ns.getExtraNodes();
    if (expectedExtraNodesSize == 0) {
        Assert.assertNull(extra);
    } else {
        Assert.assertEquals(expectedExtraNodesSize, extra.size());
    }
    resourceManager.releaseNodes(ns).getBooleanValue();
}
Also used : NodeSet(org.ow2.proactive.utils.NodeSet) Node(org.objectweb.proactive.core.node.Node) Criteria(org.ow2.proactive.utils.Criteria)

Aggregations

Node (org.objectweb.proactive.core.node.Node)80 Test (org.junit.Test)28 RMFunctionalTest (functionaltests.utils.RMFunctionalTest)21 NodeSet (org.ow2.proactive.utils.NodeSet)19 RMNode (org.ow2.proactive.resourcemanager.rmnode.RMNode)18 ResourceManager (org.ow2.proactive.resourcemanager.frontend.ResourceManager)16 HashMap (java.util.HashMap)15 TestNode (functionaltests.utils.TestNode)11 StaticPolicy (org.ow2.proactive.resourcemanager.nodesource.policy.StaticPolicy)11 NodeException (org.objectweb.proactive.core.node.NodeException)9 DefaultInfrastructureManager (org.ow2.proactive.resourcemanager.nodesource.infrastructure.DefaultInfrastructureManager)9 RMDeployingNode (org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode)9 Criteria (org.ow2.proactive.utils.Criteria)8 IOException (java.io.IOException)7 LinkedList (java.util.LinkedList)7 RMNodeEvent (org.ow2.proactive.resourcemanager.common.event.RMNodeEvent)7 RMException (org.ow2.proactive.resourcemanager.exception.RMException)7 BooleanWrapper (org.objectweb.proactive.core.util.wrapper.BooleanWrapper)6 InetAddress (java.net.InetAddress)5 ArrayList (java.util.ArrayList)5