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);
}
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();
}
}
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);
}
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);
}
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();
}
Aggregations