Search in sources :

Example 1 with RMDeployingNode

use of org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode in project scheduling by ow2-proactive.

the class RestartDownNodesPolicy method activate.

/**
 * Activates static policy. Register a listener in RMMonitoring
 */
@Override
public BooleanWrapper activate() {
    acquireAllNodes();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            int numberOfNodesToDeploy = 0;
            for (Node downNode : nodeSource.getDownNodes()) {
                String nodeUrl = downNode.getNodeInformation().getURL();
                logger.info("Removing down node " + nodeUrl);
                BooleanWrapper removed = nodeSource.getRMCore().removeNode(nodeUrl, true);
                if (removed.getBooleanValue()) {
                    logger.info("Down node removed " + nodeUrl);
                    numberOfNodesToDeploy++;
                }
            }
            for (RMDeployingNode lostNode : nodeSource.getDeployingAndLostNodes()) {
                if (!lostNode.isLost()) {
                    continue;
                }
                String nodeUrl = lostNode.getNodeURL();
                logger.info("Removing lost node " + nodeUrl);
                BooleanWrapper removed = nodeSource.getRMCore().removeNode(nodeUrl, true);
                if (removed.getBooleanValue()) {
                    logger.info("Lost node removed " + nodeUrl);
                    numberOfNodesToDeploy++;
                }
            }
            if (numberOfNodesToDeploy > 0) {
                logger.info("Acquiring " + numberOfNodesToDeploy + " nodes");
                acquireNodes(numberOfNodesToDeploy);
            }
        }
    }, checkNodeStateEach, checkNodeStateEach);
    return new BooleanWrapper(true);
}
Also used : BooleanWrapper(org.objectweb.proactive.core.util.wrapper.BooleanWrapper) TimerTask(java.util.TimerTask) RMDeployingNode(org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode) Node(org.objectweb.proactive.core.node.Node) RMDeployingNode(org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode)

Example 2 with RMDeployingNode

use of org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode in project scheduling by ow2-proactive.

the class InfrastructureManagerTest method testUpdateLostNodeKnownConflictingUrls.

@Test
public void testUpdateLostNodeKnownConflictingUrls() {
    RMDeployingNode deployingNode = new RMDeployingNode("deploying", nodeSource, "command", null);
    infrastructureManager.addDeployingNodeWithLockAndPersist(deployingNode.getNodeURL(), deployingNode);
    RMDeployingNode lostNode = new RMDeployingNode("deploying", nodeSource, "command", null);
    lostNode.setLost();
    infrastructureManager.addLostNodeWithLockAndPersist(lostNode.getNodeURL(), lostNode);
    assertThat(infrastructureManager.getDeployingNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedDeployingNodesUrl()).hasSize(1);
    assertThat(infrastructureManager.getLostNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedLostNodesUrl()).hasSize(1);
    RMDeployingNode lostNode2 = new RMDeployingNode("deploying", nodeSource, "command2", null);
    lostNode2.setLost();
    RMDeployingNode oldRmNode = infrastructureManager.update(lostNode2);
    assertThat(oldRmNode).isSameAs(lostNode);
    assertThat(oldRmNode).isNotSameAs(deployingNode);
    assertThat(infrastructureManager.getDeployingNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedDeployingNodesUrl()).hasSize(1);
    assertThat(infrastructureManager.getLostNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedLostNodesUrl()).hasSize(1);
    assertThat(infrastructureManager.getLostNodesWithLock()).contains(lostNode2);
    assertThat(infrastructureManager.getPersistedLostNodesUrl()).contains(lostNode.getNodeURL());
    assertThat(infrastructureManager.getPersistedLostNodesUrl()).contains(lostNode2.getNodeURL());
}
Also used : RMDeployingNode(org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode) Test(org.junit.Test)

Example 3 with RMDeployingNode

use of org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode in project scheduling by ow2-proactive.

the class InfrastructureManagerTest method testGetDeployingNodeLostStateKnow.

@Test
public void testGetDeployingNodeLostStateKnow() {
    RMDeployingNode deployingNode = new RMDeployingNode("deploying", nodeSource, "command", null);
    infrastructureManager.addDeployingNodeWithLockAndPersist(deployingNode.getNodeURL(), deployingNode);
    RMDeployingNode lostNode = new RMDeployingNode("lost", nodeSource, "command", null);
    lostNode.setLost();
    infrastructureManager.addLostNodeWithLockAndPersist(lostNode.getNodeURL(), lostNode);
    assertThat(infrastructureManager.getDeployingNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedDeployingNodesUrl()).hasSize(1);
    assertThat(infrastructureManager.getLostNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedLostNodesUrl()).hasSize(1);
    RMDeployingNode rmNodeFound = infrastructureManager.getDeployingOrLostNode(lostNode.getNodeURL());
    assertThat(rmNodeFound).isSameAs(lostNode);
    assertThat(rmNodeFound).isNotSameAs(deployingNode);
    rmNodeFound = infrastructureManager.getDeployingOrLostNode(deployingNode.getNodeURL());
    assertThat(rmNodeFound).isSameAs(deployingNode);
    assertThat(rmNodeFound).isNotSameAs(lostNode);
}
Also used : RMDeployingNode(org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode) Test(org.junit.Test)

Example 4 with RMDeployingNode

use of org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode in project scheduling by ow2-proactive.

the class InfrastructureManagerTest method testGetDeployingNodeDeployingStateKnow.

@Test
public void testGetDeployingNodeDeployingStateKnow() {
    RMDeployingNode rmNode = new RMDeployingNode("deploying", nodeSource, "command", null);
    infrastructureManager.addDeployingNodeWithLockAndPersist(rmNode.getNodeURL(), rmNode);
    assertThat(infrastructureManager.getDeployingNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedDeployingNodesUrl()).hasSize(1);
    assertThat(infrastructureManager.getLostNodesWithLock()).hasSize(0);
    assertThat(infrastructureManager.getPersistedLostNodesUrl()).hasSize(0);
    RMDeployingNode rmNodeFound = infrastructureManager.getDeployingOrLostNode(rmNode.getNodeURL());
    assertThat(rmNodeFound).isSameAs(rmNode);
}
Also used : RMDeployingNode(org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode) Test(org.junit.Test)

Example 5 with RMDeployingNode

use of org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode in project scheduling by ow2-proactive.

the class InfrastructureManagerTest method testGetDeployingNodeConflictingUrls.

@Test
public void testGetDeployingNodeConflictingUrls() {
    RMDeployingNode deployingNode = new RMDeployingNode("deploying", nodeSource, "command", null);
    infrastructureManager.addDeployingNodeWithLockAndPersist(deployingNode.getNodeURL(), deployingNode);
    RMDeployingNode lostNode = new RMDeployingNode("deploying", nodeSource, "command", null);
    lostNode.setLost();
    infrastructureManager.addLostNodeWithLockAndPersist(lostNode.getNodeURL(), lostNode);
    assertThat(infrastructureManager.getDeployingNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedDeployingNodesUrl()).hasSize(1);
    assertThat(infrastructureManager.getLostNodesWithLock()).hasSize(1);
    assertThat(infrastructureManager.getPersistedLostNodesUrl()).hasSize(1);
    // deploying nodes have priority over lost nodes
    RMDeployingNode rmNodeFound = infrastructureManager.getDeployingOrLostNode(lostNode.getNodeURL());
    assertThat(rmNodeFound).isSameAs(deployingNode);
    assertThat(rmNodeFound).isNotSameAs(lostNode);
}
Also used : RMDeployingNode(org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode) Test(org.junit.Test)

Aggregations

RMDeployingNode (org.ow2.proactive.resourcemanager.rmnode.RMDeployingNode)23 Test (org.junit.Test)9 RMNodeEvent (org.ow2.proactive.resourcemanager.common.event.RMNodeEvent)6 RMException (org.ow2.proactive.resourcemanager.exception.RMException)4 Client (org.ow2.proactive.resourcemanager.authentication.Client)3 NodeState (org.ow2.proactive.resourcemanager.common.NodeState)3 RMNode (org.ow2.proactive.resourcemanager.rmnode.RMNode)3 VisibleForTesting (com.google.common.annotations.VisibleForTesting)2 Node (org.objectweb.proactive.core.node.Node)2 BooleanWrapper (org.objectweb.proactive.core.util.wrapper.BooleanWrapper)2 NodeSource (org.ow2.proactive.resourcemanager.nodesource.NodeSource)2 Function (com.google.common.base.Function)1 Predicate (com.google.common.base.Predicate)1 ImmutableSet (com.google.common.collect.ImmutableSet)1 File (java.io.File)1 Serializable (java.io.Serializable)1 URI (java.net.URI)1 URISyntaxException (java.net.URISyntaxException)1 Files (java.nio.file.Files)1 Paths (java.nio.file.Paths)1